/* =====================================================
   VIVA SANAT ÇAYYOLU — stylesheet
   Tokens: ink (curtain), canvas (paper), brass, wine
===================================================== */

:root{
  --ink:        #211B2E;
  --ink-2:      #322847;
  --ink-soft:   #4A3F63;
  --canvas:     #FBF7EF;
  --canvas-2:   #F3ECDC;
  --paper-line: #E6DCC5;
  --brass:      #B8863B;
  --brass-lt:   #D9AE6B;
  --wine:       #8C3B4E;
  --wine-lt:    #B65F72;
  --text:       #241E30;
  --text-soft:  #5B5470;
  --white:      #FFFFFF;
  --whatsapp:   #25D366;

  --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --sans: "Archivo", "Helvetica Neue", Arial, sans-serif;

  --maxw: 1180px;
  --radius: 3px;
  --shadow: 0 18px 40px -20px rgba(33,27,46,.35);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  background:var(--canvas);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  font-size:17px;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; margin:0 0 .5em; line-height:1.12; color:var(--ink); }
h1{ font-size:clamp(2.4rem,5vw,4.1rem); font-weight:560; letter-spacing:-.01em; }
h2{ font-size:clamp(1.7rem,3.2vw,2.5rem); letter-spacing:-.01em; }
h3{ font-size:1.28rem; }
p{ margin:0 0 1em; max-width:64ch; color:var(--text-soft); }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }
section{ padding:96px 0; }
@media (max-width:760px){ section{ padding:64px 0; } body{ font-size:16px; } }

:focus-visible{ outline:3px solid var(--brass); outline-offset:3px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px; border-radius:var(--radius);
  font-family:var(--sans); font-weight:600; font-size:.98rem;
  border:1.5px solid transparent; cursor:pointer; transition:transform .18s ease, background .18s ease, border-color .18s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn-brass{ background:var(--brass); color:var(--white); }
.btn-brass:hover{ background:#a5762f; }
.btn-outline{ border-color:var(--ink); color:var(--ink); background:transparent; }
.btn-outline:hover{ background:var(--ink); color:var(--canvas); }
.btn-outline-light{ border-color:rgba(251,247,239,.55); color:var(--canvas); background:transparent; }
.btn-outline-light:hover{ background:var(--canvas); color:var(--ink); }
.btn-whatsapp{ background:var(--whatsapp); color:#fff; }
.btn-whatsapp:hover{ background:#1fb257; }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:8px; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(251,247,239,.97);
  border-bottom:1px solid var(--paper-line);
}
.header-row{ display:flex; align-items:center; justify-content:space-between; padding:16px 0; position:relative; gap:16px; }
.logo{ font-family:var(--serif); font-size:1.4rem; font-weight:650; color:var(--ink); letter-spacing:-.01em; flex-shrink:0; display:flex; align-items:center; }
.logo span{ color:var(--brass); }
.logo-img{ height:38px; width:auto; display:block; }
.main-nav{ display:flex; align-items:center; gap:30px; }
.main-nav ul{ display:flex; gap:26px; align-items:center; }
.main-nav a{ font-size:.95rem; font-weight:600; color:var(--text); position:relative; padding:4px 0; }
.main-nav a:hover{ color:var(--brass); }
.main-nav > ul > li > a:not(.has-drop > a)::after{
  content:""; position:absolute; left:0; right:100%; bottom:-3px; height:2px; background:var(--brass);
  transition:right .22s ease;
}
.main-nav > ul > li > a:not(.has-drop > a):hover::after{ right:0; }
.has-drop{ position:relative; }
.has-drop > a{ padding:28px 0; margin:-24px 0; display:inline-block; }
.has-drop > a::after{ content:"▾"; font-size:.7em; margin-left:5px; opacity:.6; }
.mega-dropdown{
  position:absolute; top:100%; left:0; margin-top:0; padding-top:14px;
  display:none; z-index:80; width:min(760px, 88vw);
}
.mega-dropdown-inner{
  background:var(--white); border:1px solid var(--paper-line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:30px;
}
.has-drop:hover .mega-dropdown, .has-drop.mega-open .mega-dropdown, .mega-dropdown:hover{ display:block; }
.mega-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:22px; }
.mega-col h5{ font-family:var(--sans); font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; margin:0 0 12px; font-weight:700; }
.mega-col h5 a{ color:var(--brass); }
.mega-col h5 a:hover{ text-decoration:underline; }
.mega-col a{ display:block; padding:7px 0; font-size:.89rem; font-weight:500; color:var(--text); }
.mega-col a:hover{ color:var(--brass); }
.header-cta{ display:flex; gap:10px; align-items:center; flex-shrink:0; }
.header-cta .btn{ padding:11px 18px; font-size:.9rem; }
.icon-btn-call{ width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--ink); color:var(--canvas); flex-shrink:0; }
.icon-btn-call:hover{ background:var(--brass); }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; margin:-8px 0 -8px -4px; flex-shrink:0; }
.nav-toggle span{ display:block; width:24px; height:2px; background:var(--ink); margin:6px 0; transition:transform .2s ease, opacity .2s ease; }

@media (max-width:920px){
  .header-row{ gap:8px; }
  .main-nav{ display:none; }
  .nav-toggle{ display:block; }
  .header-cta{ gap:8px; }
  .header-cta .btn-whatsapp{ width:40px; height:40px; padding:0; border-radius:50%; justify-content:center; }
  .header-cta .btn-whatsapp .btn-label{ display:none; }
  .icon-btn-call, .icon-btn-ig{ width:40px; height:40px; }
  body.nav-open .main-nav{
    display:flex; flex-direction:column; align-items:flex-start; gap:0;
    position:fixed; inset:0; top:73px; background:var(--canvas); padding:20px 28px 40px;
    overflow-y:auto; z-index:70;
  }
  body.nav-open .main-nav ul{ flex-direction:column; width:100%; gap:0; align-items:stretch; }
  body.nav-open .main-nav a{ display:block; padding:14px 0; margin:0; border-bottom:1px solid var(--paper-line); width:100%; }
  body.nav-open .has-drop > a::after{ float:right; }
  body.nav-open .mega-dropdown{
    position:static; margin-top:0; padding:0; width:auto; display:none;
  }
  body.nav-open .mega-dropdown-inner{ background:none; border:none; box-shadow:none; padding:0 0 8px 12px; }
  body.nav-open .has-drop.mega-open .mega-dropdown{ display:block; }
  body.nav-open .mega-grid{ grid-template-columns:1fr; gap:4px; }
  body.nav-open .mega-col h5{ margin-top:14px; }
}

/* ---------- hero ---------- */
.hero{ padding:70px 0 90px; overflow:hidden; position:relative; }
.hero::before, .hero::after{
  content:""; position:absolute; border-radius:50%; pointer-events:none; z-index:0;
  filter:blur(2px);
}
.hero::before{
  width:520px; height:520px; top:-220px; right:-140px;
  background:radial-gradient(circle, rgba(184,134,59,.16), transparent 70%);
  animation:blobDrift 19s ease-in-out infinite;
}
.hero::after{
  width:380px; height:380px; bottom:-180px; left:-120px;
  background:radial-gradient(circle, rgba(140,59,78,.10), transparent 70%);
  animation:blobDrift 15s ease-in-out infinite reverse;
}
.hero .container{ position:relative; z-index:1; }
@keyframes blobDrift{
  0%,100%{ transform:translate(0,0) scale(1); }
  50%{ transform:translate(-36px, 26px) scale(1.08); }
}
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.eyebrow{ display:inline-block; font-family:var(--serif); font-style:italic; color:var(--wine); font-size:1.05rem; margin-bottom:14px; }
.hero h1{ margin-bottom:22px; }
.hero-lead{ font-size:1.14rem; max-width:46ch; }
.hero-collage{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.hero-collage img{ border-radius:var(--radius); object-fit:cover; width:100%; box-shadow:var(--shadow); }
.hero-collage .c1{ height:230px; margin-top:46px; transform:rotate(-1.4deg); }
.hero-collage .c2{ height:180px; transform:rotate(1.6deg); }
.hero-collage .c3{ height:180px; grid-column:1/2; transform:rotate(1deg); }
.hero-collage .c4{ height:230px; grid-column:2/3; transform:rotate(-1.8deg); }
.hero-badge{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-6deg);
  background:var(--brass); color:var(--white); font-family:var(--serif); font-style:italic;
  width:118px; height:118px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  text-align:center; font-size:.92rem; line-height:1.2; box-shadow:0 14px 30px -10px rgba(184,134,59,.55); z-index:5;
}
@media (max-width:920px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-collage{ order:-1; }
  .hero-badge{ width:92px; height:92px; font-size:.78rem; }
}

/* ---------- trust strip ---------- */
.trust-strip{ background:var(--ink); color:var(--canvas); padding:26px 0; }
.trust-strip .container{ display:flex; flex-wrap:wrap; gap:14px 40px; justify-content:space-between; align-items:center; }
.trust-item{ display:flex; align-items:center; gap:10px; font-size:.92rem; font-weight:600; color:var(--canvas-2); }
.trust-item b{ color:var(--brass-lt); font-family:var(--serif); font-size:1.3rem; font-weight:600; }

/* ---------- section heads ---------- */
.section-head{ max-width:640px; margin-bottom:48px; }
.section-head .eyebrow{ margin-bottom:10px; }
.section-split{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:48px; }
.section-split .section-head{ margin-bottom:0; }

/* ---------- course index list ---------- */
.course-index{ border-top:1px solid var(--paper-line); }
.course-row{
  display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:24px;
  padding:22px 4px; border-bottom:1px solid var(--paper-line);
  position:relative; transition:background .2s ease;
}
.course-row:hover{ background:var(--canvas-2); }
.course-num{ font-family:var(--serif); font-style:italic; color:var(--brass); font-size:1.05rem; }
.course-row h3{ margin:0; font-size:1.32rem; }
.course-row .cat{ display:block; font-family:var(--sans); font-weight:600; font-size:.8rem; color:var(--text-soft); margin-top:3px; }
.course-arrow{ width:38px; height:38px; border-radius:50%; border:1.5px solid var(--ink); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .2s ease; }
.course-row:hover .course-arrow{ background:var(--ink); border-color:var(--ink); }
.course-row:hover .course-arrow svg{ stroke:var(--canvas); }
.course-thumb{
  position:absolute; right:120px; top:50%; transform:translateY(-50%) scale(.92) rotate(-2deg);
  width:120px; height:82px; border-radius:3px; overflow:hidden; opacity:0; pointer-events:none;
  transition:opacity .2s ease, transform .2s ease; box-shadow:var(--shadow); z-index:2;
}
.course-row:hover .course-thumb{ opacity:1; transform:translateY(-50%) scale(1) rotate(-2deg); }
.course-thumb img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:700px){ .course-thumb{ display:none; } .course-row{ grid-template-columns:40px 1fr auto; gap:14px; padding:18px 2px;} }

/* ---------- department cards (home overview) ---------- */
.dept-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--paper-line); border:1px solid var(--paper-line); }
.dept-card{ background:var(--canvas); padding:38px 30px; }
.dept-card .dept-num{ font-family:var(--serif); font-style:italic; color:var(--brass); font-size:1.1rem; display:block; margin-bottom:18px; }
.dept-card p{ font-size:.96rem; margin-bottom:18px; }
.dept-card a{ font-weight:700; font-size:.9rem; color:var(--ink); border-bottom:2px solid var(--brass); padding-bottom:2px; }
@media (max-width:900px){ .dept-grid{ grid-template-columns:1fr; } }

/* ---------- dark band (why us) ---------- */
.band-ink{ background:var(--ink); color:var(--canvas-2); position:relative; overflow:hidden; }
.band-ink::before{
  content:""; position:absolute; width:480px; height:480px; border-radius:50%; pointer-events:none; z-index:0;
  top:-160px; right:-100px; filter:blur(2px);
  background:radial-gradient(circle, rgba(217,174,107,.14), transparent 70%);
  animation:blobDrift 20s ease-in-out infinite;
}
.band-ink .container{ position:relative; z-index:1; }
.band-ink h2{ color:var(--canvas); }
.band-ink p{ color:#C7BFDA; }
.why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:36px; margin-top:20px; }
.why-item .why-mark{ font-family:var(--serif); font-style:italic; color:var(--brass-lt); font-size:2.1rem; display:block; margin-bottom:12px; }
.why-item h3{ color:var(--canvas); font-size:1.08rem; }
.why-item p{ font-size:.93rem; }
@media (max-width:900px){ .why-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .why-grid{ grid-template-columns:1fr; } }

/* ---------- gallery ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.gallery-grid a{ display:block; overflow:hidden; border-radius:2px; }
.gallery-grid img{ width:100%; height:200px; object-fit:cover; border-radius:2px; transition:transform .5s cubic-bezier(.22,.61,.36,1); }
.gallery-grid a:hover img{ transform:scale(1.08); }
.gallery-grid a:nth-child(3n+1) img{ height:260px; }
@media (max-width:900px){ .gallery-grid{ grid-template-columns:1fr 1fr; } }

/* ---------- location / contact info (no form) ---------- */
.location-wrap{ display:grid; grid-template-columns:1fr 1.15fr; gap:0; border:1px solid var(--paper-line); }
.location-info{ padding:52px 44px; background:var(--canvas); }
.location-info .info-row{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--paper-line); }
.location-info .info-row:last-of-type{ border-bottom:none; }
.info-ic{ width:40px; height:40px; border-radius:50%; background:var(--canvas-2); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--brass); }
.info-row h4{ font-family:var(--sans); font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-soft); margin:0 0 4px; font-weight:700; }
.info-row p, .info-row a{ margin:0; font-weight:600; color:var(--ink); font-size:1rem; }
.location-map iframe{ width:100%; height:100%; min-height:420px; border:0; filter:grayscale(.15) contrast(1.05); }
@media (max-width:900px){ .location-wrap{ grid-template-columns:1fr; } .location-map iframe{ min-height:300px; } }

/* ---------- FAQ ---------- */
.faq-list{ border-top:1px solid var(--paper-line); max-width:840px; }
.faq-item{ border-bottom:1px solid var(--paper-line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:24px 4px; font-family:var(--serif); font-size:1.14rem; color:var(--ink);
}
.faq-q .plus{ font-family:var(--sans); font-size:1.5rem; color:var(--brass); flex-shrink:0; transition:transform .2s ease; }
.faq-item[open] .plus{ transform:rotate(45deg); }
.faq-a{ padding:0 4px 24px; max-width:70ch; }
summary::-webkit-details-marker{ display:none; }

/* ---------- CTA band ---------- */
.cta-band{ background:linear-gradient(120deg,var(--wine),#6f2e3d); color:var(--white); text-align:center; padding:80px 0; }
.cta-band h2{ color:var(--white); }
.cta-band p{ color:#EBD3D8; margin-left:auto; margin-right:auto; }
.cta-band .btn-row{ justify-content:center; }

/* ---------- breadcrumb ---------- */
.breadcrumb{ padding:22px 0 0; font-size:.85rem; color:var(--text-soft); }
.breadcrumb a{ color:var(--text-soft); }
.breadcrumb a:hover{ color:var(--brass); }
.breadcrumb span{ margin:0 6px; }

/* ---------- course detail page ---------- */
.course-hero{ padding:36px 0 70px; }
.course-hero-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:52px; align-items:center; }
.course-hero img{ border-radius:3px; box-shadow:var(--shadow); width:100%; height:420px; object-fit:cover; }
.course-meta-tags{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.tag{ font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; background:var(--canvas-2); color:var(--ink); padding:6px 12px; border-radius:20px; border:1px solid var(--paper-line); }
@media (max-width:900px){ .course-hero-grid{ grid-template-columns:1fr; } .course-hero img{ height:280px; } }

.course-body{ display:grid; grid-template-columns:1.5fr .9fr; gap:64px; }
.course-body .col-side{ align-self:start; position:sticky; top:100px; background:var(--canvas-2); border:1px solid var(--paper-line); padding:32px; border-radius:3px; }
.col-side h3{ font-size:1.05rem; }
.col-side ul{ margin:16px 0 24px; }
.col-side li{ padding:9px 0; border-bottom:1px solid var(--paper-line); font-size:.94rem; color:var(--text-soft); display:flex; gap:10px; }
.col-side li:last-child{ border-bottom:none; }
.col-main h2{ margin-top:44px; }
.col-main h2:first-child{ margin-top:0; }
.col-main ul{ margin:0 0 24px; padding-left:0; }
.col-main li{ padding:8px 0 8px 26px; position:relative; color:var(--text-soft); }
.col-main li::before{ content:""; position:absolute; left:0; top:17px; width:8px; height:8px; background:var(--brass); border-radius:50%; }
@media (max-width:900px){ .course-body{ grid-template-columns:1fr; } .course-body .col-side{ position:static; order:-1; top:auto; } }

.related-courses{ margin-top:20px; }
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.related-card{ display:block; border:1px solid var(--paper-line); border-radius:3px; overflow:hidden; background:var(--white); transition:transform .18s ease, box-shadow .18s ease; }
.related-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.related-card img{ height:150px; object-fit:cover; width:100%; }
.related-card .rc-body{ padding:18px 20px; }
.related-card h4{ font-family:var(--serif); font-size:1.05rem; margin:0 0 4px; color:var(--ink); }
.related-card span{ font-size:.82rem; color:var(--text-soft); }
@media (max-width:760px){ .related-grid{ grid-template-columns:1fr; } }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:#C7BFDA; padding:70px 0 30px; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; margin-bottom:50px; }
.footer-logo{ font-family:var(--serif); font-size:1.5rem; color:var(--canvas); margin-bottom:14px; }
.footer-logo span{ color:var(--brass-lt); }
.site-footer p{ color:#A79DC0; font-size:.92rem; }
.site-footer h4{ color:var(--canvas); font-size:.86rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:16px; font-family:var(--sans); font-weight:700; }
.site-footer ul li{ margin-bottom:10px; }
.site-footer a{ font-size:.92rem; color:#C7BFDA; }
.site-footer a:hover{ color:var(--brass-lt); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-top:24px; display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:.82rem; color:#8B81A3; line-height:1.9; }
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }

/* ---------- floating action buttons ---------- */
.float-actions{ position:fixed; right:22px; bottom:22px; z-index:90; display:flex; flex-direction:column; gap:14px; }
.fab{
  width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 28px -8px rgba(33,27,46,.45); transition:transform .18s ease;
  color:#fff;
}
.fab:hover{ transform:scale(1.08); }
.fab-whatsapp{ background:var(--whatsapp); }
.fab-call{ background:var(--ink); }
.fab-label{
  position:absolute; right:72px; top:50%; transform:translateY(-50%);
  background:var(--ink); color:var(--canvas); font-size:.82rem; font-weight:600;
  padding:8px 14px; border-radius:4px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .18s ease;
}
.fab:hover .fab-label{ opacity:1; }
@media (max-width:560px){
  .float-actions{ right:14px; bottom:14px; gap:10px; }
  .fab{ width:52px; height:52px; }
  .fab-label{ display:none; }
}

/* ---------- ambient motion (always-on, subtle) ---------- */
@keyframes floatY{
  0%,100%{ transform:translateY(0) rotate(var(--r,0deg)); }
  50%{ transform:translateY(-14px) rotate(var(--r,0deg)); }
}
@keyframes badgeSway{
  0%,100%{ transform:translate(-50%,-50%) rotate(-6deg) scale(1); }
  50%{ transform:translate(-50%,-50%) rotate(-2deg) scale(1.04); }
}
@keyframes pulseRing{
  0%{ box-shadow:0 0 0 0 var(--ring-color, rgba(37,211,102,.55)); }
  70%{ box-shadow:0 0 0 16px rgba(0,0,0,0); }
  100%{ box-shadow:0 0 0 0 rgba(0,0,0,0); }
}
@keyframes shimmer{
  0%{ background-position:-200% 0; }
  100%{ background-position:200% 0; }
}

.hero-collage .c1{ animation:floatY 6.5s ease-in-out infinite; animation-delay:.2s; --r:-1.4deg; }
.hero-collage .c2{ animation:floatY 7.5s ease-in-out infinite; animation-delay:1s; --r:1.6deg; }
.hero-collage .c3{ animation:floatY 7s ease-in-out infinite; animation-delay:.6s; --r:1deg; }
.hero-collage .c4{ animation:floatY 8s ease-in-out infinite; animation-delay:1.4s; --r:-1.8deg; }
.hero-badge{ animation:badgeSway 4.5s ease-in-out infinite; }
.fab{ animation:pulseRing 2.8s ease-out infinite; }
.fab-whatsapp{ --ring-color:rgba(37,211,102,.55); animation-delay:0s; }
.fab-call{ --ring-color:rgba(33,27,46,.45); animation-delay:.5s; }
.fab-ig{ --ring-color:rgba(221,42,123,.45); animation-delay:1s; }

/* ---------- scroll reveal ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal-stagger > *{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal-stagger.in-view > *{ opacity:1; transform:translateY(0); }
.reveal-stagger.in-view > *:nth-child(1){ transition-delay:.02s; }
.reveal-stagger.in-view > *:nth-child(2){ transition-delay:.08s; }
.reveal-stagger.in-view > *:nth-child(3){ transition-delay:.14s; }
.reveal-stagger.in-view > *:nth-child(4){ transition-delay:.2s; }
.reveal-stagger.in-view > *:nth-child(5){ transition-delay:.26s; }
.reveal-stagger.in-view > *:nth-child(6){ transition-delay:.32s; }
.reveal-stagger.in-view > *:nth-child(n+7){ transition-delay:.36s; }

/* ---------- button micro-interactions ---------- */
.btn{ position:relative; overflow:hidden; }
.btn::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  background-size:250% 100%; background-position:150% 0;
  opacity:0; transition:opacity .2s ease;
  pointer-events:none;
}
.btn:hover::after{ opacity:1; animation:shimmer 1.1s ease; }
.btn:active{ transform:translateY(0) scale(.97); }
.course-arrow, .icon-btn-call, .icon-btn-ig{ transition:transform .25s cubic-bezier(.34,1.56,.64,1), background .2s ease; }
.course-row:hover .course-arrow{ transform:translateX(3px) scale(1.08); }
.icon-btn-call:hover, .icon-btn-ig:hover{ transform:translateY(-2px) scale(1.06); }
.dept-card{ transition:background .25s ease; }
.dept-card:hover{ background:var(--canvas-2); }
.related-card{ will-change:transform; }
.faq-q{ transition:color .2s ease; }
.faq-q:hover{ color:var(--brass); }

/* ---------- Instagram icon button ---------- */
.icon-btn-ig{ width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--ink); color:var(--canvas); }
.icon-btn-ig:hover{ background:var(--brass); }
.fab-ig{ background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af,#515bd4); }

/* ---------- hero quick social row ---------- */
.hero-quick{ display:flex; align-items:center; gap:12px; margin:20px 0 8px; }
.hero-quick a{ display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:50%; border:1.5px solid var(--paper-line); color:var(--ink); transition:all .2s ease; background:var(--white); }
.hero-quick a:hover{ transform:translateY(-2px); border-color:var(--brass); color:var(--brass); }
.hero-quick .hq-whatsapp:hover{ background:var(--whatsapp); border-color:var(--whatsapp); color:#fff; }
.hero-quick .hq-ig:hover{ background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af,#515bd4); border-color:transparent; color:#fff; }

/* ---------- service area chips ---------- */
.area-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.area-chips span{ font-size:.82rem; font-weight:600; padding:7px 14px; border-radius:20px; background:var(--canvas-2); border:1px solid var(--paper-line); color:var(--text-soft); }

/* ---------- legal page ---------- */
.legal-content h2{ margin-top:38px; }
.legal-content p, .legal-content li{ max-width:72ch; }
.legal-content ul{ margin:0 0 20px; padding-left:22px; list-style:disc; }

/* ---------- lightbox ---------- */
.lightbox-overlay{ position:fixed; inset:0; background:rgba(33,27,46,.92); display:none; align-items:center; justify-content:center; z-index:200; padding:32px; }
.lightbox-overlay.open{ display:flex; }
.lightbox-overlay img{ max-width:92vw; max-height:88vh; border-radius:4px; box-shadow:0 30px 70px rgba(0,0,0,.5); }
.lightbox-close{ position:absolute; top:22px; right:26px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; border:none; font-size:1.2rem; line-height:1; }
.lightbox-close:hover{ background:rgba(255,255,255,.26); }
.gallery-grid a{ cursor:zoom-in; }

/* ---------- misc ---------- */
.skip-link{ position:absolute; left:-999px; top:0; background:var(--brass); color:#fff; padding:12px 18px; z-index:999; }
.skip-link:focus{ left:12px; top:12px; }
.center{ text-align:center; }
.mx-auto{ margin-left:auto; margin-right:auto; }
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal, .reveal-stagger > *{ opacity:1 !important; transform:none !important; }
}
