:root{
  --ink:#0e0e0e; --ink-2:#181818; --yellow:#ffcb04; --yellow-2:#ffd000; --red:#c3251d;
  --paper:#faf8f2; --text:#333333;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Source Sans 3',system-ui,sans-serif;color:var(--text);background:var(--paper);line-height:1.7;overflow-x:hidden}
.font-display{font-family:'Archivo',system-ui,sans-serif;font-stretch:106%;letter-spacing:-.025em;line-height:1.02}
.t-hero{font-size:clamp(2.6rem,6.4vw,5.9rem)}
.t-h1{font-size:clamp(2.3rem,5vw,4.4rem)}
.t-h2{font-size:clamp(1.9rem,3.6vw,3.2rem)}
.t-h3{font-size:clamp(1.3rem,1.9vw,1.65rem)}
.t-lead{font-size:clamp(1.08rem,1.35vw,1.3rem);line-height:1.65}
.eyebrow{font-family:'Archivo',sans-serif;font-stretch:118%;font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.78rem}
.prose-sr p{margin:0 0 1.1em}
.prose-sr p:last-child{margin-bottom:0}

/* zigzag motif from the logo */
.zig{display:block;width:120px;height:22px;color:var(--red)}

/* header */
.site-header{background:rgba(14,14,14,.78);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px)}
.nav-link{position:relative}
.nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--yellow);transition:right .3s ease}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{right:0}
.dropdown{opacity:0;visibility:hidden;transform:translateY(8px);transition:all .2s ease}
.has-dd:hover .dropdown,.has-dd:focus-within .dropdown{opacity:1;visibility:visible;transform:none}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:'Archivo',sans-serif;font-stretch:110%;font-weight:700;border-radius:999px;padding:.95rem 1.6rem;transition:transform .2s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease;min-height:48px}
.btn:hover{transform:translateY(-2px)}
.btn-y{background:var(--yellow);color:var(--ink);box-shadow:0 10px 30px -10px rgba(255,203,4,.6)}
.btn-y:hover{background:#fff}
.btn-ghost{border:1.5px solid rgba(255,255,255,.45);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--red)}
.btn .arr{transition:transform .2s ease}
.btn:hover .arr{transform:translateX(4px)}

/* cards */
.card-img{overflow:hidden}
.card-img img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.group:hover .card-img img,.card-img:hover img{transform:scale(1.06)}
.lift{transition:transform .3s ease,box-shadow .3s ease}
.lift:hover{transform:translateY(-4px);box-shadow:0 24px 50px -24px rgba(0,0,0,.35)}

/* hero */
.hero-shade{background:linear-gradient(90deg,rgba(10,10,10,.92) 0%,rgba(10,10,10,.7) 34%,rgba(10,10,10,.12) 64%,rgba(10,10,10,0) 100%),linear-gradient(0deg,rgba(10,10,10,.8) 0%,rgba(10,10,10,0) 30%)}
@media (max-width:767px){.hero-shade{background:linear-gradient(180deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,.75) 45%,rgba(10,10,10,.96) 100%)}}
.slash{clip-path:polygon(0 0,100% 0,82% 100%,0 100%)}
.grain::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:4px 4px;pointer-events:none}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}

/* marquee of accreditations */
.logo-bar img{transition:transform .3s}
.logo-bar img:hover{transform:scale(1.05)}

/* faq */
.faq summary{list-style:none;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq .plus{transition:transform .3s ease}
.faq details[open] .plus{transform:rotate(45deg)}
.faq .ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.faq details[open] .ans{grid-template-rows:1fr}
.faq .ans>div{overflow:hidden}

/* testimonials */
.tslide{display:none}
.tslide.active{display:block;animation:fadeUp .6s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* lightbox */
#lightbox{position:fixed;inset:0;z-index:80;background:rgba(8,8,8,.94);display:none;align-items:center;justify-content:center;padding:4rem 1rem}
#lightbox.open{display:flex}
#lightbox img{max-width:min(1200px,100%);max-height:80vh;object-fit:contain;border-radius:6px}
#lightbox button{position:absolute;color:#fff;background:rgba(255,255,255,.1);border-radius:999px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;transition:background .2s}
#lightbox button:hover{background:var(--yellow);color:var(--ink)}
.lb-close{top:1rem;right:1rem}.lb-prev{left:1rem;top:50%;transform:translateY(-50%)}.lb-next{right:1rem;top:50%;transform:translateY(-50%)}
#lb-cap{position:absolute;bottom:1.2rem;left:1rem;right:1rem;text-align:center;color:#ddd;font-size:.95rem}

/* gallery filter */
.chip{border:1.5px solid rgba(14,14,14,.18);border-radius:999px;padding:.55rem 1.1rem;font-weight:600;min-height:44px;transition:all .2s}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--yellow);border-color:var(--ink)}
.g-item.hide{display:none}

/* forms */
.field{width:100%;border:1.5px solid rgba(14,14,14,.16);background:#fff;border-radius:14px;padding:.85rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s;min-height:50px}
.field:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(255,203,4,.45)}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.grecaptcha-badge{visibility:hidden}
.form-msg{display:none}
.form-msg.show{display:flex}
button[disabled]{opacity:.6;cursor:wait;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
