/* assets/css/style.css
   Global styles for SD Film Academy
   Fonts: Playfair Display (headings) + Poppins (body)
*/

/* Reset + base */
:root{
  --accent:#c51b2f; /* cinematic red */
  --bg:#f7f3f0;     /* warm off-white */
  --muted:#6b6b6b;
  --dark:#0b0b0b;
  --card:#ffffff;
}

*{box-sizing:border-box}
html, body {
  overflow-x: hidden;
}
body{
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial;
  color:var(--dark);
  margin:0;
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.5;
  font-size:16px;
  padding: 0 !important;
}

/* Header */
.site-header{
  background:rgba(255,250,242,.96);
  padding:.9rem 1rem;
  transition:background .35s ease, box-shadow .35s ease, padding .25s ease;
  z-index:1100;
}
.site-header.scrolled{
  background:rgba(255,250,246,.98);
  box-shadow:0 6px 18px rgba(11,11,11,.06);
  padding:.6rem 1rem;
}
.site-header .logo{
  width: 50px;
}
.whitelogo{
    display:block;
}
.site-header.scrolled .whitelogo{
    display:none;
}
.blacklogo{
  display:none;
}
.site-header.scrolled .blacklogo{
    display:block;
}
.brand{ text-decoration:none; color:inherit; gap:.7rem }
.logo-img{ height:44px; width:auto; display:inline-block; object-fit:contain; }

/* nav */
.nav-desktop .nav-link{
  color:var(--dark);
  padding:.5rem 1rem;
  font-weight:600;
  transition: color .2s;
}
.nav-desktop .nav-link.active,
.nav-desktop .nav-link:hover{ color:var(--accent); text-decoration:none; }

/* Buttons */
.btn-accent{
  background:var(--accent);
  color:#fff;
  border:none;
  padding:.56rem .9rem;
  border-radius:40px;
  font-weight:600;
  transition:transform .18s ease, box-shadow .18s;
}
.btn-accent:hover,.btn-accent:focus{ transform:translateY(-3px); box-shadow:0 8px 20px rgba(197,27,47,.18); background:var(--accent);color:#fff;}
.btn-outline-dark{ border-radius:40px; }

/* Mobile drawer */
.mobile-drawer{
  position:fixed;
  top:0;
  left:0;
  width:320px;
  height:100vh;
  background:#fff;
  transform:translateX(-110%);
  transition:transform .35s cubic-bezier(.2,.9,.2,1);
  z-index:1200;
  padding:1.25rem;
  box-shadow: 12px 0 40px rgba(11,11,11,.12);
}
.mobile-drawer.open{ transform:translateX(0) }
.drawer-header{ border-bottom:1px solid #f0f0f0; padding-bottom:.5rem; margin-bottom:.8rem; }
.drawer-brand .logo-img{ height:36px; }
.drawer-nav ul{ list-style:none; padding:0; margin:1rem 0 }
.drawer-link{
  display:block;
  padding:.9rem .6rem;
  border-radius:8px;
  color:var(--dark);
  font-weight:600;
  text-decoration:none;
}
.drawer-link:focus,
.drawer-link:hover{ background:rgba(11,11,11,.04); color:var(--accent); outline:none; }
.drawer-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.45); opacity:0; transition:opacity .25s; z-index:1100;
  pointer-events:none;
}
.drawer-overlay.open{ opacity:1; pointer-events:auto }

/* Hero */
.hero{
  position:relative;
  background-size:cover;
  background-position:center;
  color:#fff;
  min-height:90vh;
  overflow:hidden;
}
.hero-overlay{
  position:absolute; inset:0; background:linear-gradient(to bottom right,rgba(6,6,6,.55),rgba(6,6,6,.6));
  pointer-events:none;
}
.hero .hero-title{
  font-family:'Playfair Display',serif;
  font-weight:700;
  font-size:3.1rem;
  line-height:1.02;
  letter-spacing:.2px;
}
.hero .lead{ color:rgba(255,255,255,.92) }
.hero-visual img{ width:100%; border-radius:12px; transform:scale(1.05); transition:transform 6s ease; object-fit:cover; height:360px; }

/* rounded media */
.rounded-media{ width:100%; max-width:520px; margin:auto; border-radius:28px; overflow:hidden; box-shadow:0 10px 30px rgba(11,11,11,.06) }
.rounded-media img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Sections */
.section-header{ margin-bottom:1.4rem; }
.section-sub{ color:var(--muted); font-weight:600 }
.section-title{ font-family:'Playfair Display',serif; font-weight:700; font-size:1.8rem; margin-top:.2rem }

/* Course cards */
.course-card{
  background:var(--card);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 6px 20px rgba(11,11,11,.04);
  transition:transform .25s ease, box-shadow .25s;
}
.course-card:hover{ transform:translateY(-8px); box-shadow:0 18px 40px rgba(11,11,11,.08) }
.card-media img{ width:100%; height:240px; object-fit:cover; display:block; transition:transform .4s ease }
.course-card:hover .card-media img{ transform:scale(1.05) }
.card-body{ padding:1.1rem }
.btn-link{ color:var(--accent); font-weight:700; text-decoration:none; }

/* Features */
.features .feature{ background:transparent; padding:1rem; border-radius:10px; text-align:left }
.features .feature-index{ font-weight:700; color:var(--accent); font-size:1.25rem }

/* Stats dark */
.stats-dark{ background:var(--dark); color:#fff; padding:3.5rem 0; }

/* Testimonials */
.testimonial-slider .slides{ display:flex; gap:1rem; overflow:hidden; scroll-behavior:smooth }
.testimonial{ background:#fff; padding:1.25rem; border-radius:12px; min-width:280px; max-width:370px; text-align:center; box-shadow:0 8px 30px rgba(11,11,11,.06) }
.testimonial img{ width:72px; height:72px; object-fit:cover; border-radius:50%; margin-bottom:.5rem }

/* Gallery */
.gallery-grid .gallery-item{ position:relative; overflow:hidden; border-radius:16px; cursor:pointer }
.gallery-grid img{ width:100%; height:160px; object-fit:cover; transition:transform .35s ease }
.gallery-item .overlay{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; opacity:0; background:linear-gradient(to top, rgba(0,0,0,.35), rgba(0,0,0,.05)); transition:opacity .22s }
.gallery-item:hover img{ transform:scale(1.06) }
.gallery-item:hover .overlay{ opacity:1 }

/* CTA hero */
.cta-hero{ position:relative; background-size:cover; min-height:300px; display:flex; align-items:center; justify-content:center; text-align:center; color:#fff; }
.cta-overlay{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.35), rgba(0,0,0,.5)); }

/* Footer */
.site-footer{ color:#fff; background:#0b0b0b }
.footer-links{ list-style:none; padding:0; margin:0 }
.footer-links a{ color:#fff; opacity:.85; text-decoration:none; display:block; padding:.2rem 0 }
.footer-bottom{ color:#9b9b9b; font-size:.95rem; margin-top:1rem }

/* WhatsApp floating */
.whatsapp-float{
  position:fixed; right:18px; bottom:96px; background:#25d366; color:#fff; width:52px; height:52px;
  border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.3rem; z-index:1400;
  box-shadow:0 8px 22px rgba(37,211,102,.18)
}

/* Back to top */
.back-to-top{
  position:fixed; right:18px; bottom:22px; background:var(--dark); color:#fff; width:44px; height:44px;
  border-radius:8px; display:flex; align-items:center; justify-content:center; z-index:1400; border:none;
  box-shadow:0 8px 20px rgba(11,11,11,.12)
}

/* masonry */
.masonry-grid{ column-count:4; column-gap:1rem }
.masonry-item{ break-inside:avoid; margin-bottom:1rem; position:relative; cursor:pointer; overflow:hidden; border-radius:12px }
.masonry-item img{ width:100%; height:auto; display:block; transition:transform .35s ease }
.masonry-item .caption{ position:absolute; bottom:6px; left:8px; color:#fff; background:rgba(0,0,0,.35); padding:.25rem .5rem; border-radius:6px }

/* contact card & form */
.contact-card{ background:#fff; box-shadow:0 8px 28px rgba(11,11,11,.04) }
.form-label{ font-weight:600 }

/* small utilities */
.small-label{ font-weight:700; color:var(--muted); letter-spacing:.08em; font-size:.85rem }
.red{ color:var(--accent) }

/* reveal animations (used with JS intersection observer) */
.reveal-up, .reveal-left, .reveal-right, .reveal-scale{ opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.9,.2,1) }
.reveal-left{ transform:translateX(-18px) }
.reveal-right{ transform:translateX(18px) }
.reveal-scale{ transform:scale(.98) }
.revealed{ opacity:1; transform:none }

/* timeline */
.timeline{ display:flex; flex-direction:column; gap:1rem }
.timeline-item{ display:flex; gap:1rem; align-items:flex-start }
.timeline-step{ font-weight:900; color:var(--accent); font-size:1.4rem }

/* Responsive */
@media (max-width:1199px){ .hero .hero-title{ font-size:2.6rem } .masonry-grid{ column-count:3 } }
@media (max-width:991px){ .nav-desktop{ display:none } .mobile-drawer{ width:86% } .masonry-grid{ column-count:2 } .hero-visual{ display:none } }
@media (max-width:575px){ .hero .hero-title{ font-size:2rem } .masonry-grid{ column-count:2 } .testimonial{ min-width:260px } .rounded-media{ border-radius:20px } }

/* Homepage redesign */
:root{
  --accent:#d21f3c;
  --gold:#f3b34c;
  --ink:#111114;
  --cream:#f7f1e8;
  --paper:#fffaf2;
}

.pt-6{ padding-top:5.5rem !important; }
.pb-6{ padding-bottom:5.5rem !important; }

.home-page{
  background:var(--paper);
}

.home-page .site-header{
  background:linear-gradient(to bottom, rgba(0,0,0,.72), rgba(0,0,0,0));
}

.home-page .site-header.scrolled{
  background:rgba(255,250,242,.96);
}

.home-page .site-header:not(.scrolled) .nav-desktop .nav-link,
.home-page .site-header:not(.scrolled) .brand-wordmark,
.home-page .site-header:not(.scrolled) .hamburger{
  color:#fff;
}

.brand-wordmark{
  gap:.7rem;
  color:var(--ink);
}

.brand-mark{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:2px solid currentColor;
  border-radius:50%;
  font-weight:800;
  letter-spacing:0;
}

.brand-copy{
  display:flex;
  flex-direction:column;
  line-height:1.1;
}

.brand-copy strong{
  font-size:.98rem;
}

.brand-copy small{
  color:inherit;
  opacity:.74;
  font-size:.72rem;
}

.hamburger{
  border:0;
  background:transparent;
  font-size:1.8rem;
  color:var(--ink);
}

.cinematic-hero{
  min-height:96vh;
  padding:9rem 0 6rem;
  background-image:url("../images/photo-1485846234645-a62644f84728.jfif?auto=format&fit=crop&w=1800&q=80");
  background-position:center;
}

.hero-slides,
.hero-slide{
  position:absolute;
  inset:0;
}

.hero-slides{
  z-index:0;
}

.hero-slide{
  background-size:cover;
  background-position:center;
  opacity:0;
  transform:scale(1.04);
  transition:opacity 1.1s ease, transform 6s ease;
}

.hero-slide.active{
  opacity:1;
  transform:scale(1);
}

.cinematic-hero .hero-overlay{
  background:
    radial-gradient(circle at 78% 25%, rgba(243,179,76,.22), transparent 24rem),
    linear-gradient(90deg, rgba(0,0,0,.86), rgba(0,0,0,.46) 52%, rgba(0,0,0,.72));
  z-index:1;
}

.cinematic-hero .container{
  z-index:2;
}

.hero-kicker{
  color:var(--gold);
  margin-bottom:1rem;
}

.hero .hero-title{
  max-width:850px;
  font-size:clamp(2.45rem, 6vw, 5.45rem);
  line-height:.98;
  letter-spacing:0;
}

.hero-content .lead{
  max-width:680px;
  font-size:1.18rem;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin-top:2rem;
}

.hero-panel{
  margin-left:auto;
  max-width:430px;
  padding:1.35rem;
  border:1px solid rgba(255,255,255,.25);
  border-radius:8px;
  background:rgba(10,10,12,.58);
  backdrop-filter:blur(12px);
  box-shadow:0 24px 70px rgba(0,0,0,.32);
}

.hero-panel h2{
  font-family:'Playfair Display',serif;
  margin:.5rem 0;
}

.panel-tag,
.course-pill{
  display:inline-flex;
  align-items:center;
  width:max-content;
  border-radius:999px;
  padding:.32rem .7rem;
  background:rgba(243,179,76,.14);
  color:var(--gold);
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
}

.panel-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.75rem;
  margin-top:1.2rem;
}

.panel-grid div{
  padding:.8rem .5rem;
  border-radius:8px;
  background:rgba(255,255,255,.09);
  text-align:center;
}

.panel-grid strong,
.stats-band h2{
  display:block;
  font-family:'Playfair Display',serif;
  font-size:2rem;
  color:#fff;
}

.panel-grid span{
  display:block;
  color:rgba(255,255,255,.7);
  font-size:.82rem;
}

.scroll-indicator{
  position:absolute;
  left:50%;
  bottom:1.5rem;
  transform:translateX(-50%);
}

.scroll-indicator span{
  display:block;
  width:24px;
  height:42px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:999px;
  position:relative;
}

.scroll-indicator span::after{
  content:"";
  position:absolute;
  top:8px;
  left:50%;
  width:4px;
  height:8px;
  border-radius:999px;
  background:#fff;
  transform:translateX(-50%);
}

.section-title{
  color:var(--ink);
  font-size:clamp(2rem, 4vw, 3.5rem);
  line-height:1;
}

.bg-dark .section-title,
.cta-hero .section-title{
  color:#fff;
}

.section-copy{
  max-width:620px;
}

.intro-section{
  background:linear-gradient(180deg, var(--paper), var(--cream));
}

.image-collage{
  min-height:520px;
  position:relative;
}

.image-collage img{
  width:100%;
  object-fit:cover;
  display:block;
  border-radius:8px;
  box-shadow:0 28px 80px rgba(22,17,12,.16);
}

.collage-main{
  height:500px;
}

.collage-small{
  position:absolute;
  right:-1rem;
  bottom:2rem;
  max-width:270px;
  height:190px;
  border:8px solid var(--paper);
}

.signature-list{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.2rem;
}

.signature-list span{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.62rem .82rem;
  border-radius:999px;
  background:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  font-weight:600;
}

.signature-list i,
.feature-icon{
  color:var(--accent);
}

.courses-showcase{
  background:#fff;
}

.course-card-rich{
  height:100%;
  border:1px solid rgba(0,0,0,.06);
  border-radius:8px;
}

.course-card-rich .card-media img{
  height:280px;
}

.course-card-rich .card-body{
  padding:1.35rem;
}

.course-card-rich h4{
  margin:.8rem 0 .55rem;
  font-family:'Playfair Display',serif;
  font-size:1.7rem;
}

.course-card-rich p{
  color:#555;
}

.course-list{
  padding-left:1.1rem;
  color:#555;
}

.course-list li{
  margin:.35rem 0;
}

.experience-section{
  background:
    linear-gradient(rgba(10,10,12,.92), rgba(10,10,12,.92)),
    url("../images/photo-1572177191856-3cde618dee1f.jfif?auto=format&fit=crop&w=1600&q=80") center/cover fixed;
}

.experience-section .feature{
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.055);
  padding:1.25rem;
  min-height:190px;
}

.feature-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(210,31,60,.14);
  margin-bottom:1rem;
  font-size:1.3rem;
}

.stats-band{
  padding:3rem 0;
  background:linear-gradient(90deg, #8f1527, #d21f3c 48%, #f3b34c);
  color:#fff;
}

.stats-band h2{
  font-size:clamp(2.2rem, 5vw, 4rem);
  margin:0;
}

.stats-band h2::after{
  content:"+";
}

.stats-band .col-6:nth-child(3) h2::after,
.stats-band .col-6:nth-child(4) h2::after{
  content:"";
}

.process-section{
  background:var(--cream);
}

.process-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:1rem;
}

.process-step{
  padding:1.35rem;
  border-radius:8px;
  background:#fff;
  box-shadow:0 16px 50px rgba(34,24,15,.08);
}

.process-step span{
  color:var(--accent);
  font-weight:800;
}

.process-step h4{
  margin:.7rem 0;
  font-family:'Playfair Display',serif;
}

.process-step p{
  margin:0;
  color:#5f5b55;
}

.gallery-preview{
  background:#fff;
}

.gallery-mosaic{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  grid-auto-rows:210px;
  gap:1rem;
}

.gallery-mosaic .gallery-item{
  margin:0;
  border-radius:8px;
}

.gallery-mosaic .wide{
  grid-row:span 2;
}

.gallery-mosaic .tall{
  grid-row:span 2;
}

.gallery-mosaic img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .45s ease;
}

.gallery-mosaic .gallery-item:hover img{
  transform:scale(1.06);
}

.testimonials-section{
  background:var(--paper);
}

.testimonial-slider .slides{
  padding:.6rem;
  justify-content:flex-start;
  overflow-x:hidden;
}

.testimonial{
  border-radius:8px;
  flex:0 0 calc(33.333% - .7rem);
  min-width:290px;
}

.testimonial p{
  color:#444;
}

.stars{
  color:var(--gold);
  letter-spacing:0;
}

.cta-cinematic{
  min-height:430px;
  background-image:url("../images/photo-1536440136628-849c177e76a1.jfif?auto=format&fit=crop&w=1800&q=80");
  background-position:center;
}

.cta-cinematic .cta-overlay{
  background:linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.48));
}

.cta-cinematic p{
  max-width:680px;
  margin:1rem auto 0;
  color:rgba(255,255,255,.78);
}

.site-footer a,
.social a{
  color:#fff;
}

.page-hero{
  min-height:430px;
  padding-top:6rem;
  position:relative;
  overflow:hidden;
  background-size:cover;
  background-position:center;
}

.page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.76), rgba(0,0,0,.32));
}

.page-hero .container{
  position:relative;
  z-index:1;
}

.page-hero h1{
  font-family:'Playfair Display',serif;
  font-weight:800;
  color:#fff;
}

.page-hero .muted{
  color:rgba(255,255,255,.78);
}

.bg-dark .muted,
.site-footer .muted{
  color:rgba(255,255,255,.68) !important;
}

/* About page enhancements */
.learning-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  grid-auto-rows:190px;
  gap:1rem;
}

.learning-grid img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:8px;
  box-shadow:0 14px 40px rgba(34,24,15,.1);
}

.learning-grid img:nth-child(1),
.learning-grid img:nth-child(6){
  grid-row:span 2;
}

.approach-section .timeline-item{
  padding:1rem;
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 42px rgba(34,24,15,.08);
}

.approach-image{
  height:560px;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 28px 80px rgba(34,24,15,.16);
}

.approach-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.journey-cta-section{
  background:
    linear-gradient(rgba(17,17,20,.86), rgba(17,17,20,.86)),
    url("../images/photo-1536440136628-849c177e76a1.jfif?auto=format&fit=crop&w=1800&q=80") center/cover;
}

.journey-cta-box{
  max-width:820px;
  margin:0 auto;
  padding:3rem 1.5rem;
  color:#fff;
}

.journey-cta-box h3{
  font-family:'Playfair Display',serif;
  font-size:clamp(2rem, 5vw, 3.8rem);
  font-weight:800;
  line-height:1;
}

.journey-cta-box p{
  color:rgba(255,255,255,.76);
  max-width:620px;
  margin:.85rem auto 0;
}

/* Course page enhancements */
.courses-detail-section{
  background:linear-gradient(180deg, var(--paper), #fff);
}

.course-detail-card{
  padding:1.25rem;
  border-radius:8px;
  background:#fff;
  box-shadow:0 22px 70px rgba(34,24,15,.1);
}

.course-detail-card .course-media{
  height:100%;
  min-height:460px;
  border-radius:8px;
  overflow:hidden;
}

.course-detail-card .course-media img{
  width:100%;
  height:100%;
  min-height:460px;
  object-fit:cover;
}

.course-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  margin:1rem 0 1.25rem;
}

.course-meta span{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.55rem .78rem;
  border-radius:999px;
  background:rgba(210,31,60,.08);
  color:#5e2a2f;
  font-weight:600;
  font-size:.88rem;
}

.course-meta i{
  color:var(--accent);
}

.syllabus-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:.85rem;
}

.syllabus-card{
  padding:1rem;
  border-radius:8px;
  border:1px solid #efe3d7;
  background:#fffdf9;
}

.syllabus-card h5{
  font-family:'Playfair Display',serif;
  font-weight:800;
  margin-bottom:.7rem;
}

.syllabus-card ul{
  margin:0;
  padding:0;
  list-style:none;
}

.syllabus-card li{
  position:relative;
  padding:.45rem 0 .45rem 1.55rem;
  color:#5f5b55;
  border-top:1px solid rgba(0,0,0,.06);
}

.syllabus-card li::before{
  content:"\F26A";
  font-family:"bootstrap-icons";
  position:absolute;
  left:0;
  color:var(--accent);
}

.course-seats-cta{
  background:
    linear-gradient(90deg, rgba(143,21,39,.92), rgba(17,17,20,.88)),
    url("../images/photo-1536440136628-849c177e76a1.jfif?auto=format&fit=crop&w=1800&q=80") center/cover;
}

/* Gallery page and lightbox */
.gallery-page-section{
  background:#fff;
}

.expanded-gallery .masonry-item{
  border-radius:8px;
  box-shadow:0 16px 45px rgba(34,24,15,.1);
}

.expanded-gallery .masonry-item img{
  min-height:220px;
  object-fit:cover;
}

.lightbox-modal{
  z-index:2200;
}

.modal-backdrop{
  z-index:2100;
}

.lightbox-modal .modal-content{
  background:transparent;
  border:0;
}
.lightbox-modal .modal-body{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:5rem 6rem;
  position:relative;
}

.lightbox-image{
  max-width:100%;
  max-height:82vh;
  object-fit:contain;
  border-radius:8px;
  box-shadow:0 24px 90px rgba(0,0,0,.5);
}

.lightbox-close,
.lightbox-nav{
  position:absolute;
  z-index:3;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.34);
  background:rgba(255,255,255,.12);
  color:#fff;
  backdrop-filter:blur(8px);
}

.lightbox-close{
  top:1.5rem;
  right:1.5rem;
  width:48px;
  height:48px;
  border-radius:50%;
}

.lightbox-nav{
  top:50%;
  width:56px;
  height:56px;
  border-radius:50%;
  transform:translateY(-50%);
  font-size:1.4rem;
}

.lightbox-nav:hover,
.lightbox-close:hover{
  background:var(--accent);
  border-color:var(--accent);
}

.prev-light{
  left:1.5rem;
}

.next-light{
  right:1.5rem;
}

/* Contact page */
.contact-page{
  background:var(--paper);
}

.contact-hero{
  min-height:720px;
  padding:8rem 0 6rem;
  position:relative;
  overflow:hidden;
  background:url("../images/photo-1516035069371-29a1b244cc32.jfif?auto=format&fit=crop&w=1800&q=80") center/cover;
}

.contact-hero-overlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 82% 18%, rgba(243,179,76,.26), transparent 22rem),
    linear-gradient(90deg, rgba(0,0,0,.86), rgba(0,0,0,.42) 55%, rgba(0,0,0,.76));
}

.contact-hero h1{
  font-family:'Playfair Display',serif;
  font-weight:900;
  line-height:.98;
  letter-spacing:0;
  max-width:780px;
}

.contact-hero .lead{
  max-width:650px;
  color:rgba(255,255,255,.86);
}

.contact-hero-actions,
.form-actions{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin-top:1.8rem;
}

.admission-note{
  border:1px solid rgba(255,255,255,.24);
  border-radius:8px;
  background:rgba(13,13,15,.64);
  backdrop-filter:blur(14px);
  padding:1.35rem;
  box-shadow:0 26px 80px rgba(0,0,0,.35);
}

.admission-note h2{
  margin:.8rem 0 .5rem;
  font-family:'Playfair Display',serif;
}

.admission-note p{
  color:rgba(255,255,255,.72);
}

.admission-note-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.75rem;
  margin-top:1.25rem;
}

.admission-note-grid div{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:86px;
  border-radius:8px;
  background:rgba(255,255,255,.09);
  text-align:center;
}

.admission-note-grid i{
  color:var(--gold);
  font-size:1.35rem;
  margin-bottom:.35rem;
}

.admission-note-grid span{
  font-weight:600;
  font-size:.86rem;
}

.contact-quick-strip{
  position:relative;
  z-index:2;
  margin-top:-3.2rem;
}

.quick-contact-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:1rem;
}

.quick-contact-card{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:1rem;
  row-gap:.15rem;
  align-items:center;
  padding:1.2rem;
  border-radius:8px;
  background:#fff;
  color:var(--ink);
  text-decoration:none;
  box-shadow:0 18px 55px rgba(25,16,10,.14);
  transition:transform .2s ease, box-shadow .2s ease;
}

.quick-contact-card:hover{
  color:var(--ink);
  transform:translateY(-4px);
  box-shadow:0 24px 70px rgba(25,16,10,.18);
}

.quick-contact-card i{
  grid-row:span 2;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(210,31,60,.1);
  color:var(--accent);
  font-size:1.35rem;
}

.quick-contact-card span{
  color:#746f68;
  font-size:.86rem;
}

.quick-contact-card strong{
  font-size:.98rem;
  word-break:break-word;
}

.contact-main-section{
  background:linear-gradient(180deg, var(--paper), #fff);
}

.contact-story-card,
.admission-form-card,
.contact-info-panel,
.visit-card,
.map-card{
  border-radius:8px;
  background:#fff;
  box-shadow:0 22px 70px rgba(34,24,15,.1);
}

.contact-story-card{
  overflow:hidden;
}

.contact-story-card img{
  width:100%;
  height:330px;
  display:block;
  object-fit:cover;
}

.contact-story-body{
  padding:1.4rem;
}

.contact-story-body h2,
.admission-form-card h2,
.visit-card h2{
  font-family:'Playfair Display',serif;
  font-weight:800;
  line-height:1;
}

.contact-story-body p{
  color:#625d56;
  margin-bottom:0;
}

.contact-info-panel{
  margin-top:1rem;
  padding:1.15rem;
}

.contact-info-row{
  display:flex;
  gap:1rem;
  padding:1rem 0;
  border-bottom:1px solid rgba(0,0,0,.07);
}

.contact-info-row:last-child{
  border-bottom:0;
}

.contact-info-row i{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(243,179,76,.18);
  color:#ad741f;
  font-size:1.25rem;
}

.contact-info-row strong,
.contact-info-row span{
  display:block;
}

.contact-info-row span{
  color:#625d56;
}

.admission-form-card{
  padding:1.6rem;
  position:relative;
  overflow:hidden;
}

.admission-form-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg, var(--accent), var(--gold));
}

.form-card-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.35rem;
}

.form-card-header > i{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--ink);
  color:#fff;
  font-size:1.4rem;
}

.contact-form .form-control,
.contact-form .form-select{
  min-height:52px;
  border-radius:8px;
  border:1px solid #e2d9cf;
  background:#fffdf9;
}

.contact-form textarea.form-control{
  min-height:150px;
}

.contact-form .form-control:focus,
.contact-form .form-select:focus{
  border-color:rgba(210,31,60,.55);
  box-shadow:0 0 0 .2rem rgba(210,31,60,.12);
}

.contact-map-section{
  background:#fff;
}

.map-card{
  height:100%;
  min-height:420px;
  overflow:hidden;
}

.map-card iframe{
  border:0;
  width:100%;
  height:100%;
  min-height:420px;
  display:block;
}

.visit-card{
  height:100%;
  padding:1.6rem;
  background:
    linear-gradient(rgba(17,17,20,.9), rgba(17,17,20,.9)),
    url("../images/photo-1574267432553-4b4628081c31.jfif?auto=format&fit=crop&w=900&q=80") center/cover;
  color:#fff;
}

.visit-card .section-title,
.visit-card h2{
  color:#fff;
}

.visit-card ul{
  margin:1.3rem 0 0;
  padding:0;
  list-style:none;
}

.visit-card li{
  position:relative;
  padding:.75rem 0 .75rem 2rem;
  border-bottom:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.78);
}

.visit-card li::before{
  content:"\F26A";
  font-family:"bootstrap-icons";
  position:absolute;
  left:0;
  color:var(--gold);
}

.contact-cta{
  min-height:380px;
  background-image:url("../images/photo-1536440136628-849c177e76a1.jfif?auto=format&fit=crop&w=1800&q=80");
  background-position:center;
}

.contact-cta .cta-overlay{
  background:linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.52));
}

.contact-cta p{
  max-width:640px;
  margin:1rem auto 0;
  color:rgba(255,255,255,.78);
}

@media (max-width:991px){
  .cinematic-hero{
    min-height:auto;
    padding:8rem 0 4rem;
  }

  .hero-panel{
    margin-left:0;
  }

  .image-collage{
    min-height:auto;
  }

  .collage-main{
    height:420px;
  }

  .collage-small{
    right:1rem;
  }

  .process-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .gallery-mosaic{
    grid-template-columns:1fr 1fr;
  }

  .learning-grid,
  .syllabus-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .approach-image,
  .course-detail-card .course-media,
  .course-detail-card .course-media img{
    min-height:auto;
    height:380px;
  }

  .contact-hero{
    min-height:auto;
    padding:8rem 0 4rem;
  }

  .quick-contact-grid{
    grid-template-columns:1fr;
  }

  .contact-quick-strip{
    margin-top:-2rem;
  }
}

@media (max-width:575px){
  .pt-6{ padding-top:3.5rem !important; }
  .pb-6{ padding-bottom:3.5rem !important; }

  .brand-copy small{
    display:none;
  }

  .brand-mark{
    width:40px;
    height:40px;
  }

  .hero-actions .btn{
    width:100%;
  }

  .hero-panel{
    padding:1rem;
  }

  .panel-grid{
    grid-template-columns:1fr;
  }

  .collage-main{
    height:330px;
  }

  .collage-small{
    position:relative;
    right:auto;
    bottom:auto;
    max-width:100%;
    height:210px;
    margin-top:1rem;
    border:0;
  }

  .signature-list span{
    width:100%;
  }

  .process-grid,
  .gallery-mosaic{
    grid-template-columns:1fr;
  }

  .gallery-mosaic .wide,
  .gallery-mosaic .tall{
    grid-row:span 1;
  }

  .gallery-mosaic{
    grid-auto-rows:240px;
  }

  .learning-grid,
  .syllabus-grid{
    grid-template-columns:1fr;
  }

  .learning-grid{
    grid-auto-rows:220px;
  }

  .learning-grid img:nth-child(1),
  .learning-grid img:nth-child(6){
    grid-row:span 1;
  }

  .course-detail-card{
    padding:.8rem;
  }

  .course-detail-card .course-media,
  .course-detail-card .course-media img{
    height:280px;
  }

  .course-meta span{
    width:100%;
  }

  .journey-cta-box{
    padding:2rem 0;
  }

  .lightbox-modal .modal-body{
    padding:4.5rem 1rem;
  }

  .lightbox-close{
    top:1rem;
    right:1rem;
  }

  .lightbox-nav{
    top:auto;
    bottom:1rem;
    transform:none;
    width:48px;
    height:48px;
  }

  .prev-light{
    left:calc(50% - 58px);
  }

  .next-light{
    right:calc(50% - 58px);
  }

  .contact-hero-actions .btn,
  .form-actions .btn{
    width:100%;
  }

  .admission-note-grid{
    grid-template-columns:1fr;
  }

  .admission-form-card,
  .visit-card{
    padding:1.15rem;
  }

  .form-card-header > i{
    display:none;
  }

  .quick-contact-card{
    grid-template-columns:auto 1fr;
  }
}
