@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700;800&display=swap');
 :root {
   --blue:#143fa3;
   --deep:#071b52;
   --sky:#edf4ff;
   --gold:#f1b72c;
   --ink:#132349;
   --white:#fff;
   --line:#dce7fc;
}
 * {
   box-sizing:border-box;
}
 html {
   scroll-behavior:smooth;
}
 body {
   margin:0;
   font-family:'DM Sans',sans-serif;
   color:var(--ink);
   background:#fff;
   overflow-x:hidden;
}
 a {
   color:inherit;
   text-decoration:none;
}
 img {
   max-width:100%;
   display:block;
}
 .container {
   width:min(1140px, calc(100% - 40px));
   margin:auto;
}
 .eyebrow {
   color:var(--blue);
   font-size:.76rem;
   font-weight:800;
   letter-spacing:.15em;
   text-transform:uppercase;
}
 .title {
   font-family:'Playfair Display',serif;
   font-size:clamp(2.15rem,4vw,3.6rem);
   line-height:1.06;
   margin:12px 0 18px;
   color:var(--deep);
}
 .lead {
   font-size:1.06rem;
   line-height:1.75;
   color:#536587;
   max-width:650px;
}
 .site-header {
   position:sticky;
   top:0;
   z-index:30;
   background:rgba(255,255,255,.92);
   backdrop-filter:blur(14px);
   border-bottom:1px solid rgba(20,63,163,.08);
}
 .nav {
   height:78px;
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:25px;
}
 .brand {
   display:flex;
   align-items:center;
   gap:11px;
   font-family:'Playfair Display',serif;
   font-weight:800;
   color:var(--deep);
   line-height:1;
}
 .brand img {
   width:52px;
   height:52px;
   border-radius:50%;
   object-fit:cover;
}
 .brand small {
   display:block;
   font-family:'DM Sans',sans-serif;
   font-size:.61rem;
   color:var(--blue);
   letter-spacing:.13em;
   margin-top:5px;
}
 .nav-links {
   display:flex;
   gap:26px;
   font-weight:700;
   font-size:.91rem;
}
 .nav-links a {
   padding:8px 0;
   border-bottom:2px solid transparent;
}
 .nav-links a:hover,.nav-links .active {
   color:var(--blue);
   border-color:var(--gold);
}
 .menu-button {
   display:none;
   border:0;
   background:none;
   font-size:1.5rem;
   color:var(--blue);
}
 .button {
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:9px;
   border-radius:7px;
   padding:14px 21px;
   background:var(--blue);
   color:white;
   border:1px solid var(--blue);
   font-weight:800;
   font-size:.9rem;
   transition:.25s ease;
}
 .button:hover {
   transform:translateY(-3px);
   box-shadow:0 12px 25px rgba(20,63,163,.23);
}
 .button.outline {
   background:transparent;
   color:var(--blue);
}
 .button.outline:hover {
   color:#fff;
   background:var(--blue);
}
 .button.gold {
   background:var(--gold);
   border-color:var(--gold);
   color:var(--deep);
}
 .hero {
   position:relative;
   min-height:620px;
   display:flex;
   align-items:center;
   background:linear-gradient(100deg,rgba(4,22,73,.94) 0%,rgba(7,29,92,.78) 47%,rgba(7,29,92,.18)), url(assets/30.jpeg) center/cover;
   color:white;
}
 .hero:after {
   content:'';
   position:absolute;
   right:-60px;
   bottom:-120px;
   width:450px;
   height:450px;
   border:60px solid rgba(255,255,255,.09);
   border-radius:50%;
}
 .hero-content {
   position:relative;
   z-index:1;
   padding:95px 0;
   max-width:760px;
}
 .hero .eyebrow {
   color:#ffcf53;
}
 .hero h1 {
   font-family:'Playfair Display',serif;
   font-size:clamp(3rem,6vw,5.5rem);
   line-height:.98;
   margin:15px 0 22px;
}
 .hero p {
   line-height:1.75;
   font-size:1.12rem;
   color:#e7edff;
   max-width:610px;
}
 .hero-actions {
   display:flex;
   flex-wrap:wrap;
   gap:13px;
   margin-top:34px;
}
 .hero .outline {
   border-color:rgba(255,255,255,.65);
   color:white;
}
 .hero .outline:hover {
   background:white;
   color:var(--blue);
}
 .stats {
   position:relative;
   z-index:2;
   margin-top:-75px;
   display:grid;
   grid-template-columns:repeat(4,1fr);
   background:#fff;
   box-shadow:0 20px 45px rgba(19,46,103,.14);
}
 .stat {
   padding:25px 20px;
   text-align:center;
   border-right:1px solid var(--line);
}
 .stat:last-child {
   border:0;
}
 .stat strong {
   display:block;
   color:var(--blue);
   font-size:1.8rem;
   font-family:'Playfair Display',serif;
}
 .stat span {
   font-size:.78rem;
   font-weight:700;
   color:#6c7b98;
}
 section {
   padding:100px 0;
}
 .intro-center {
   text-align:center;
}
 .intro-center .lead {
   margin:0 auto;
}
 .features {
   display:grid;
   grid-template-columns:repeat(3,1fr);
   gap:22px;
   margin-top:42px;
}
 .feature {
   padding:29px;
   border:1px solid var(--line);
   border-radius:11px;
   background:white;
   transition:.3s;
}
 .feature:hover {
   transform:translateY(-7px);
   box-shadow:0 18px 38px rgba(20,63,163,.1);
}
 .feature-icon {
   width:49px;
   height:49px;
   display:grid;
   place-items:center;
   background:var(--sky);
   color:var(--blue);
   font-size:1.4rem;
   border-radius:50%;
}
 .feature h3 {
   margin:20px 0 9px;
   font-family:'Playfair Display',serif;
   font-size:1.35rem;
}
 .feature p {
   margin:0;
   color:#637391;
   line-height:1.6;
   font-size:.93rem;
}
 .motivation {
   background:linear-gradient(#f8fbff,#fff);
}
 .story-grid {
   display:grid;
   gap:65px;
   margin-top:55px;
}
 .story {
   display:grid;
   grid-template-columns:1fr 1fr;
   gap:72px;
   align-items:center;
}
 .story.reverse .story-photo {
   order:2;
}
 .story-photo {
   height:350px;
   border-radius:8px;
   overflow:hidden;
   position:relative;
   box-shadow:18px 18px 0 var(--sky);
}
 .story-photo img {
   width:100%;
   height:100%;
   object-fit:cover;
   transition:transform .7s;
}
 .story:hover .story-photo img {
   transform:scale(1.07);
}
 .story-number {
   color:var(--gold);
   font-weight:800;
   letter-spacing:.13em;
}
 .story h3 {
   font-family:'Playfair Display',serif;
   font-size:2.05rem;
   line-height:1.15;
   margin:12px 0;
   color:var(--deep);
}
 .story p {
   color:#596a89;
   line-height:1.75;
}
 .section-cta {
   background:var(--deep);
   color:white;
   text-align:center;
   padding:78px 0;
}
 .section-cta h2 {
   font-family:'Playfair Display',serif;
   font-size:2.5rem;
   margin:0 0 13px;
}
 .section-cta p {
   color:#c9d6fc;
}
 .section-cta .button {
   margin-top:12px;
}
 .page-hero {
   padding:95px 0;
   background:linear-gradient(115deg,var(--deep),var(--blue));
   color:white;
   position:relative;
   overflow:hidden;
}
 .page-hero:after {
   content:'IM';
   position:absolute;
   font-family:'Playfair Display',serif;
   font-size:18rem;
   font-weight:800;
   opacity:.06;
   right:4%;
   top:-105px;
}
 .page-hero h1 {
   font-family:'Playfair Display',serif;
   font-size:clamp(2.8rem,5vw,4.7rem);
   margin:10px 0;
   position:relative;
}
 .page-hero p {
   position:relative;
   margin:0;
   color:#d5e0ff;
   font-size:1.07rem;
   max-width:580px;
   line-height:1.7;
}
 .page-hero .eyebrow {
   color:#ffd45d;
}
 .courses-layout {
   display:grid;
   grid-template-columns:250px 1fr;
   gap:35px;
   align-items:start;
}
 .course-filter {
   background:var(--sky);
   padding:24px;
   border-radius:8px;
   position:sticky;
   top:98px;
}
 .course-filter h3 {
   margin-top:0;
   font-family:'Playfair Display',serif;
}
 .filter-button {
   width:100%;
   text-align:left;
   background:transparent;
   border:0;
   padding:11px 0;
   color:#526281;
   font:inherit;
   font-weight:700;
   cursor:pointer;
   border-bottom:1px solid #d7e3f8;
}
 .filter-button.active,.filter-button:hover {
   color:var(--blue);
}
 .course-grid {
   display:grid;
   grid-template-columns:repeat(2,1fr);
   gap:19px;
}
 .course {
   padding:0;
   border:1px solid var(--line);
   border-radius:9px;
   overflow:hidden;
   background:#fff;
   transition:.25s;
}
 .course-image {
   height:170px;
   overflow:hidden;
   position:relative;
   background:var(--sky);
}
 .course-image::after {
   content:'';
   position:absolute;
   inset:0;
   background:linear-gradient(180deg, transparent 45%, rgba(7, 27, 82, .28));
}
 .course-image img {
   width:100%;
   height:100%;
   object-fit:cover;
   transition:transform .55s ease;
}
 .course:hover {
   border-color:var(--blue);
   transform:translateY(-4px);
   box-shadow:0 12px 28px rgba(20,63,163,.09);
}
 .course:hover .course-image img {
   transform:scale(1.08);
}
 .course-tag {
   display:block;
   margin:21px 24px 0;
   font-size:.72rem;
   font-weight:800;
   color:var(--blue);
   text-transform:uppercase;
   letter-spacing:.1em;
}
 .course h3 {
   font-family:'Playfair Display',serif;
   font-size:1.36rem;
   margin:10px 24px;
}
 .course p {
   color:#637391;
   margin:0 24px;
   line-height:1.55;
   font-size:.89rem;
}
 .course-footer {
   margin:20px 24px 24px;
   display:flex;
   justify-content:space-between;
   font-size:.8rem;
   color:var(--blue);
   font-weight:800;
}
 .gallery {
   display:grid;
   grid-template-columns:repeat(12,1fr);
   grid-auto-rows:115px;
   gap:14px;
}
 .gallery-item {
   overflow:hidden;
   border-radius:8px;
   position:relative;
   cursor:pointer;
}
 .gallery-item img {
   width:100%;
   height:100%;
   object-fit:cover;
   transition:.5s;
}
 .gallery-item:hover img {
   transform:scale(1.1);
}
 .gallery-item:after {
   content:attr(data-label);
   position:absolute;
   inset:auto 0 0;
   padding:24px 16px 14px;
   color:white;
   font-weight:800;
   font-size:.85rem;
   background:linear-gradient(transparent,rgba(0,0,0,.65));
   transform:translateY(100%);
   transition:.35s;
}
 .gallery-item:hover:after {
   transform:translateY(0);
}
 .g1 {
   grid-column:span 5;
   grid-row:span 3
}
 .g2 {
   grid-column:span 3;
   grid-row:span 2
}
 .g3 {
   grid-column:span 4;
   grid-row:span 2
}
 .g4 {
   grid-column:span 3;
   grid-row:span 2
}
 .g5 {
   grid-column:span 4;
   grid-row:span 3
}
 .g6 {
   grid-column:span 5;
   grid-row:span 2
}
 .contact-layout {
   display:grid;
   grid-template-columns:.85fr 1.15fr;
   gap:65px;
}
 .contact-info {
   background:var(--deep);
   padding:43px;
   color:white;
   border-radius:8px;
}
 .contact-info h2 {
   font-family:'Playfair Display',serif;
   font-size:2.3rem;
   margin-top:0;
}
 .contact-info p {
   line-height:1.7;
   color:#cbd7f8;
}
 .info-row {
   margin-top:27px;
   border-top:1px solid rgba(255,255,255,.16);
   padding-top:20px;
}
 .info-row strong {
   display:block;
   color:#ffcf53;
   font-size:.75rem;
   letter-spacing:.1em;
   text-transform:uppercase;
   margin-bottom:6px;
}
 .contact-form {
   padding:8px 0;
}
 .contact-form h2 {
   font-family:'Playfair Display',serif;
   font-size:2.3rem;
   margin-top:0;
}
 .field-row {
   display:grid;
   grid-template-columns:1fr 1fr;
   gap:15px;
}
 .field {
   margin-bottom:17px;
}
 .field label {
   display:block;
   font-size:.82rem;
   font-weight:800;
   margin-bottom:8px;
}
 .field input,.field select,.field textarea {
   width:100%;
   padding:13px 14px;
   border:1px solid #cfdcf4;
   border-radius:5px;
   font:inherit;
   color:var(--ink);
   outline-color:var(--blue);
}
 .field textarea {
   min-height:130px;
   resize:vertical;
}

.contact-actions {
   display:flex;
   flex-wrap:wrap;
   gap:12px;
 }
 .whatsapp {
   position:fixed;
   z-index:40;
   right:23px;
   bottom:23px;
   width:60px;
   height:60px;
   display:grid;
   place-items:center;
   border-radius:50%;
   background:#25d366;
   color:white;
   box-shadow:0 9px 23px rgba(0,0,0,.25);
   font-size:1.7rem;
   transition:.25s;
}
 .whatsapp:hover {
   transform:scale(1.1) rotate(-6deg);
}
 .footer {
   background:#06163f;
   color:#c9d4f2;
   padding:55px 0 22px;
}
 .footer-top {
   display:grid;
   grid-template-columns:1.2fr 1fr 1fr;
   gap:35px;
}
 .footer .brand {
   color:white;
}
 .footer p {
   font-size:.88rem;
   line-height:1.65;
}
 .footer h4 {
   color:white;
   margin-top:0;
}
 .footer a {
   display:block;
   margin:10px 0;
   font-size:.88rem;
}
 .copyright {
   padding-top:28px;
   margin-top:25px;
   border-top:1px solid rgba(255,255,255,.12);
   font-size:.78rem;
   text-align:center;
}
 .reveal {
   opacity:0;
   transform:translateY(24px);
   transition:opacity .7s ease,transform .7s ease;
}
 .reveal.visible {
   opacity:1;
   transform:none;
}
 @media(max-width:760px) {
   .nav {
     height:70px;
  }
   .menu-button {
     display:block;
  }
   .nav-links {
     display:none;
     position:absolute;
     top:70px;
     left:0;
     right:0;
     padding:17px 20px;
     background:white;
     box-shadow:0 12px 20px rgba(0,0,0,.09);
  }
   .nav-links.open {
     display:grid;
     gap:4px;
  }
   .hero {
     min-height:570px;
  }
   .stats {
     grid-template-columns:1fr 1fr;
     margin-top:-36px;
  }
   .stat:nth-child(2) {
     border-right:0;
  }
   .stat {
     border-bottom:1px solid var(--line);
  }
   .features,.story,.contact-layout,.footer-top,.courses-layout {
     grid-template-columns:1fr;
  }
   .story {
     gap:30px;
  }
   .story.reverse .story-photo {
     order:0;
  }
   .story-photo {
     height:270px;
  }
   .course-filter {
     position:static;
  }
   .course-grid {
     grid-template-columns:1fr;
  }
   .field-row {
     grid-template-columns:1fr;
     gap:0;
  }
   .gallery {
     grid-auto-rows:95px;
  }
   .g1,.g2,.g3,.g4,.g5,.g6 {
     grid-column:span 6;
     grid-row:span 2;
  }
   section {
     padding:70px 0;
  }
   .contact-info {
     padding:32px;
  }
}
