*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}

/* Layout: white page, clean centered sections, a soft blue diagonal panel behind the hero; navy + azure on white, pill buttons */
:root{
  --bg:#ffffff;
  --tint:#e8eef9;
  --tint-2:#f5f8fd;
  --ink:#1b2b5e;
  --muted:#4d5b7c;
  --line:#dfe6f2;
  --navy:#1b2b5e;
  --logo-ink:#1b2b5e;
  --azure:#2a4f9e;
  --azure-hover:#1b2b5e;
  --on-blue:#ffffff;
  --ok:#14967a;
  --warn-bg:#fff7e0;
  --warn-line:#e7bf45;
  --warn-ink:#5a4300;
  --shadow:0 24px 50px -28px rgba(20,39,94,.35);
  color-scheme:light;
  --font-display:"Outfit","Segoe UI",Arial,sans-serif;
  --font-body:"Nunito Sans","Segoe UI",Arial,sans-serif;
  --maxw:1180px;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:18px;line-height:1.75}
h1,h2,h3{font-family:var(--font-display);color:var(--ink);line-height:1.12;text-wrap:balance;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(2.3rem,5.2vw,3.9rem);font-weight:800}
h2{font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:800}
h3{font-size:1.3rem;font-weight:700}
p{margin:0}
a{color:var(--azure)}
:focus-visible{outline:3px solid var(--azure);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:20px}
.muted{color:var(--muted)}
.lead{font-size:1.15rem;color:var(--muted);max-width:52ch}
.prose{display:grid;gap:1rem;max-width:62ch}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-weight:700;color:var(--azure);font-size:1rem}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--azure)}
.section-head{display:grid;gap:.75rem;justify-items:center;text-align:center;margin-bottom:2.75rem}
.section-head p{max-width:58ch}
.ico{width:22px;height:22px;flex:none}

/* Header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;padding-block:.85rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.7rem;background:none;border:0;padding:0;cursor:pointer;color:var(--ink)}
.brand b{font-family:var(--font-display);font-weight:700;font-size:1.2rem}
.logo{display:block;flex:none;width:52px;height:40px;background:var(--logo-ink);-webkit-mask:url("images/logo-mark.png") center/contain no-repeat;mask:url("images/logo-mark.png") center/contain no-repeat}
.logo-full{display:block;width:230px;max-width:100%;aspect-ratio:644/440;height:auto;background:var(--logo-ink);-webkit-mask:url("images/logo-full.png") center/contain no-repeat;mask:url("images/logo-full.png") center/contain no-repeat}
footer .logo-full{width:170px;margin-bottom:.5rem}
nav.main{display:flex;gap:.2rem 1.4rem;flex-wrap:wrap}
.menu-toggle{display:none;align-items:center;gap:.6rem;font:inherit;font-family:var(--font-display);font-weight:700;font-size:1.05rem;background:var(--tint-2);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.55rem 1.1rem;cursor:pointer;min-height:48px}
.bars,.bars::before,.bars::after{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;position:relative}
.bars::before,.bars::after{content:"";position:absolute;left:0}
.bars::before{top:-6px}.bars::after{top:6px}
nav.main button{font:inherit;font-family:var(--font-display);font-weight:600;font-size:1.05rem;background:none;border:0;color:var(--ink);padding:.3rem 0;cursor:pointer}
nav.main button:hover,nav.main button[aria-current="page"]{color:var(--azure)}
.hphone{display:flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums}
.hphone .ico{width:18px;height:18px;color:var(--muted)}

.lang{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--tint-2);flex:none}
.lang button{font:inherit;font-family:var(--font-display);font-weight:600;font-size:.95rem;border:0;background:transparent;color:var(--muted);padding:.35rem .85rem;border-radius:999px;cursor:pointer;min-height:36px}
.lang button[aria-pressed="true"]{background:var(--navy);color:#fff}
header.site .wrap > nav.main{margin-left:auto}
/* Buttons */
.btns{display:flex;flex-wrap:wrap;gap:.9rem}
.btn{font:inherit;font-family:var(--font-display);font-weight:600;font-size:1.1rem;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.9rem 1.7rem;border-radius:999px;text-decoration:none;cursor:pointer;border:2px solid transparent;min-height:56px}
.btn .ico{width:20px;height:20px}
.btn-primary{background:var(--azure);color:var(--on-blue);box-shadow:0 12px 24px -14px rgba(27,43,94,.6)}
.btn-primary:hover{background:var(--azure-hover)}
.btn-outline{background:var(--bg);color:var(--ink);border-color:var(--line)}
.btn-outline:hover{border-color:var(--azure);color:var(--azure)}
.btn-navy{background:var(--navy);color:#fff;width:100%}
.btn-navy:hover{filter:brightness(1.15)}

/* Hero */
.hero{position:relative;overflow:hidden;background:var(--bg)}
.hero::before{content:"";position:absolute;inset:0 0 0 auto;width:52%;background:var(--tint);clip-path:polygon(28% 0,100% 0,100% 100%,0 100%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;padding-block:clamp(3rem,7vw,5.5rem)}
.hero-copy{display:grid;gap:1.4rem;justify-items:start;min-width:0}
.pill{display:inline-flex;align-items:center;gap:.6rem;border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:.45rem 1.1rem;font-weight:700;font-size:.95rem}
.pill .dot{width:9px;height:9px;border-radius:50%;background:var(--ok)}
.fine{font-size:.98rem;color:var(--muted)}
.hero-card{background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:2rem;box-shadow:var(--shadow);display:grid;gap:1.5rem;min-width:0}
.card-brand{display:grid;justify-items:center;text-align:center;gap:.9rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}
.card-brand em{font-family:var(--font-display);font-weight:700;color:var(--azure);font-size:1.15rem}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.5rem}
.stats div{display:grid}
.stats small{font-size:.9rem;color:var(--muted)}
.stats b{font-family:var(--font-display);font-size:1.15rem;font-weight:700}
.stats b.open{color:var(--ok)}

/* Sections */
section.band{padding-block:clamp(3.5rem,8vw,5.5rem)}
section.tinted{background:var(--tint-2)}

/* Feature tiles (Why choose us) */
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.feature{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;min-width:0}
.tile{width:54px;height:54px;border-radius:14px;background:linear-gradient(145deg,var(--azure),var(--navy));color:#fff;display:grid;place-items:center;flex:none}
.tile .ico{width:24px;height:24px}
.feature h3{font-size:1.25rem;margin-bottom:.25rem}
.feature p{color:var(--muted);font-size:1.02rem}

/* Service cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media (max-width:900px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}
.card{background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:1.6rem;display:grid;gap:.75rem;align-content:start;min-width:0}
.card:hover{border-color:var(--azure)}
.card p{color:var(--muted);font-size:1.02rem}

/* Two column */
.split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.split > *{min-width:0}
.panel{background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:2rem;box-shadow:var(--shadow);display:grid;gap:1rem}
.portrait{aspect-ratio:4/5;max-width:100%;background:var(--tint);border-radius:22px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:1.5rem;border:2px dashed var(--line)}

.notice{display:flex;gap:.8rem;background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:14px;padding:1rem 1.2rem;color:var(--warn-ink);font-weight:700}
.notice .ico{margin-top:.2rem}

.list{display:grid;gap:.6rem;padding:0;margin:0;list-style:none}
.list li{display:grid;grid-template-columns:1.6rem 1fr;gap:.5rem}
.list li::before{content:"";width:1.3rem;height:1.3rem;margin-top:.25rem;border-radius:50%;background:var(--tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a4f9e' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat}

/* Inner page header */
.page-hero{background:var(--tint-2);border-bottom:1px solid var(--line)}
.page-hero .wrap{display:grid;gap:.9rem;padding-block:clamp(2.75rem,6vw,4rem)}

/* Service details */
.svc{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;padding:2rem;border:1px solid var(--line);border-radius:20px;background:var(--bg)}
.svc > div{min-width:0;display:grid;gap:.75rem}
.svc-list{display:grid;gap:1.2rem}
.svc .who{color:var(--azure);font-weight:700;font-size:.98rem}

/* Contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:2.5rem;align-items:start}
.contact-grid > *{min-width:0}
.info{display:grid;gap:1rem}
.info-item{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.3rem;border:1px solid var(--line);border-radius:18px}
.info-item h3{font-size:1.1rem;margin-bottom:.2rem}
.phones{display:grid}
.phones a{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums}
.phones a:hover{color:var(--azure)}
table.hours{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
.hours td{padding:.3rem 0}
.hours td:last-child{text-align:right;font-weight:700}
.hours tr.today td{color:var(--azure)}
.map{border:1px solid var(--line);border-radius:18px;overflow:hidden}
.map-art{height:160px;max-width:100%;position:relative;background:
  linear-gradient(var(--line) 1px,transparent 1px) 0 0/36px 36px,
  linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/36px 36px,var(--tint)}
.map-art::after{content:"";position:absolute;left:50%;top:45%;width:24px;height:24px;background:var(--azure);border:3px solid #fff;border-radius:50% 50% 50% 0;transform:translate(-50%,-50%) rotate(-45deg);box-shadow:0 3px 8px rgba(0,0,0,.3)}
.map-body{padding:1rem 1.3rem;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem}
.map-body .btn{min-height:46px;padding:.5rem 1.2rem;font-size:1rem}
form{background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:2rem;box-shadow:var(--shadow);display:grid;gap:1.1rem}
.field{display:grid;gap:.35rem}
label{font-weight:700}
input,select,textarea{font:inherit;font-size:1.05rem;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--azure);box-shadow:0 0 0 4px var(--tint)}
textarea{min-height:130px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-msg{border-radius:12px;padding:.9rem 1rem;background:var(--tint);color:var(--ink)}
.err{color:#c0352b;font-weight:600}

/* CTA strip */
.cta{background:var(--navy);color:#fff;border-radius:24px;padding:clamp(2rem,5vw,3rem);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem}
.cta h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem)}
.cta p{color:rgba(255,255,255,.85)}
.cta .btn-primary{background:#fff;color:#1b2b5e}


/* How it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;counter-reset:step}
.step{border:1px solid var(--line);border-radius:18px;padding:1.6rem;display:grid;gap:.6rem;align-content:start;min-width:0;background:var(--bg)}
.step-num{width:44px;height:44px;border-radius:50%;background:var(--tint);color:var(--azure);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:1.2rem}
.step p{color:var(--muted);font-size:1.02rem}

/* Testimonials */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.review{border:1px solid var(--line);border-radius:18px;padding:1.6rem;display:grid;gap:1rem;align-content:start;background:var(--bg);min-width:0}
.stars{display:flex;gap:2px;color:#e3a21a}
.stars svg{width:20px;height:20px}
.review blockquote{margin:0;font-size:1.08rem;line-height:1.7}
.review footer{all:unset;display:grid;gap:.1rem}
.review cite{font-style:normal;font-family:var(--font-display);font-weight:700}
.review small{color:var(--muted)}
.sample-tag{justify-self:start;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--warn-ink);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:999px;padding:.15rem .7rem}
.review.placeholder blockquote{color:var(--muted)}

/* FAQ */
.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:2.5rem;align-items:start}
.faq-layout > *{min-width:0}
.faq-group{display:grid;gap:.75rem}
.faq-group + .faq-group{margin-top:2rem}
.faq-group h3{font-size:1.15rem;color:var(--azure)}
details{border:1px solid var(--line);border-radius:16px;background:var(--bg)}
details[open]{border-color:var(--azure)}
summary{cursor:pointer;list-style:none;padding:1.1rem 1.3rem;font-family:var(--font-display);font-weight:600;font-size:1.12rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";flex:none;width:32px;height:32px;border-radius:50%;background:var(--tint);color:var(--azure);display:grid;place-items:center;font-size:1.3rem;font-weight:700}
details[open] summary::after{content:"\2013"}
details .ans{padding:0 1.3rem 1.2rem;color:var(--muted);display:grid;gap:.6rem}
.side-card{position:sticky;top:110px}

/* Resources */
.res-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.dates{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.date{border:1px solid var(--line);border-radius:16px;padding:1.2rem;background:var(--bg);display:grid;gap:.3rem;min-width:0}
.date b{font-family:var(--font-display);font-weight:800;font-size:1.35rem;color:var(--azure);font-variant-numeric:tabular-nums}
.date span{color:var(--muted);font-size:1rem;line-height:1.5}
.links{display:grid;gap:.75rem}
.link-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--ink);background:var(--bg)}
.link-row:hover{border-color:var(--azure)}
.link-row small{display:block;color:var(--muted)}
.link-row b{font-family:var(--font-display)}
.link-row .arrow{color:var(--azure);font-weight:700;flex:none}

.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin-block:.5rem}
.facts > div{border:1px solid var(--line);border-radius:14px;padding:1rem;display:grid;gap:.15rem;align-content:start;background:var(--tint-2);min-width:0}
.facts small{color:var(--azure);font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.facts b{font-family:var(--font-display);font-size:1.05rem;line-height:1.3}
.facts span{color:var(--muted);font-size:.92rem;line-height:1.4}
@media (max-width:620px){.facts{grid-template-columns:1fr}}
.empty{border:2px dashed var(--line);border-radius:22px;padding:clamp(2rem,6vw,3.5rem) 1.5rem;display:grid;justify-items:center;text-align:center;gap:.8rem}
.empty h2{font-size:clamp(1.4rem,3vw,1.8rem)}
.split:has(.photos){align-items:start}
.photos{display:grid;gap:.9rem;min-width:0}
.photos figure{margin:0;border-radius:20px;overflow:hidden;background:var(--tint);box-shadow:var(--shadow)}
.photos img{display:block;width:100%;height:100%;object-fit:cover;max-width:100%}
.photo-main{aspect-ratio:4/5;max-width:100%}
.photo-main img{object-position:50% 20%}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.photo-pair figure{aspect-ratio:1/1;max-width:100%}
.photo-pair figure:first-child img{object-position:50% 25%}
.photo-pair figure:last-child img{object-position:50% 40%}
.photo-cap{text-align:center;color:var(--muted);font-size:.95rem}
.fax{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:.15rem}
.fax span{font-weight:700;color:var(--azure);margin-right:.25rem}
.team-note{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding:1.2rem 1.3rem;border:1px solid var(--line);border-radius:18px;background:var(--tint-2);margin-top:.5rem}
.team-note h3{font-size:1.1rem;margin-bottom:.2rem}
.photo-main{margin:0}
.photos .cap{margin-top:-.25rem}
.irs-office{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem;align-items:stretch;max-width:980px;margin:2.5rem auto 0;border:1px solid var(--line);border-radius:22px;padding:1.75rem;background:var(--bg);box-shadow:var(--shadow)}
.irs-office > *{min-width:0}
.irs-info{display:grid;gap:.75rem;align-content:start}
.irs-info h3{font-size:1.3rem}
.irs-map{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--ink)}
.zipmap{display:block;width:100%;max-width:100%;flex:1 1 auto;min-height:230px;height:100%;background:var(--tint)}
.irs-map .map-body{font-weight:600}
.irs-map .arrow{color:var(--azure)}
@media (max-width:760px){.irs-office{grid-template-columns:1fr;padding:1.3rem}}
.email{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--azure);text-decoration:none;overflow-wrap:anywhere}
.email:hover{text-decoration:underline}
.phones .email{margin-top:.35rem}
.foot-email{font-size:1rem;color:var(--muted);font-family:var(--font-body);font-weight:400}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
/* Footer */
footer{border-top:1px solid var(--line);padding-block:3rem 2rem;font-size:1rem}
footer .wrap{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem}
footer h3{font-size:1.05rem;margin-bottom:.5rem}
footer p{color:var(--muted)}
.fnav{display:grid;justify-items:start;gap:.2rem}
.fnav button{background:none;border:0;padding:0;font:inherit;color:var(--muted);cursor:pointer}
.fnav button:hover{color:var(--azure)}
footer .legal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:1.2rem;font-size:.92rem}

@media (max-width:1600px){ .hphone{display:none} }
@media (max-width:1440px) and (min-width:1121px){ nav.main{gap:.2rem 1rem} nav.main button{font-size:1rem} header.site .wrap{gap:1rem 1.25rem} .brand b{font-size:1.1rem} }
@media (max-width:1120px){
  .features{grid-template-columns:1fr 1fr}
  .menu-toggle{display:inline-flex}
  header.site .wrap > nav.main{display:none;width:100%;flex-direction:column;gap:.35rem;padding-block:.5rem;order:5;margin-left:0}
  header.site .wrap > .lang{margin-left:auto}
  nav.main button::after{display:none}
  header.site.open .wrap > nav.main{display:flex}
  nav.main button{text-align:left;padding:.75rem 1rem;border-radius:12px;background:var(--tint-2);font-size:1.1rem}
  nav.main button[aria-current="page"]{background:var(--tint)}
  .steps,.reviews,.dates{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .faq-layout,.res-grid{grid-template-columns:1fr}
  .hero .wrap,.split,.contact-grid{grid-template-columns:1fr}
  .hero::before{width:100%;top:auto;height:45%;clip-path:polygon(0 25%,100% 0,100% 100%,0 100%)}
  footer .wrap{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  body{font-size:17px}
  header.site{position:static}
  .steps,.reviews,.dates,.res-grid{grid-template-columns:1fr}
  .features,.row2,footer .wrap{grid-template-columns:1fr}
  .btns .btn{flex:1 1 100%}
  .svc{grid-template-columns:1fr;padding:1.5rem}
  .hero-card,form,.panel{padding:1.4rem}
}

/* ===== Motion: reveals, page transitions, hovers (all disabled for reduced motion) ===== */
:root{--ease:cubic-bezier(.22,.61,.36,1);--ease-soft:cubic-bezier(.4,0,.2,1)}
.progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--azure);transform-origin:0 50%;transform:scaleX(0);z-index:50;pointer-events:none;opacity:.85}
header.site{transition:box-shadow .3s var(--ease-soft)}
header.site.scrolled{box-shadow:0 8px 24px -18px rgba(27,43,94,.45)}
section.band,.page-hero,.hero{scroll-margin-top:90px}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  /* scroll reveal: hidden state only applies once JS has tagged the element */
  .rv{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease) var(--d,0ms),transform .8s var(--ease) var(--d,0ms);will-change:opacity,transform}
  .rv.in{opacity:1;transform:none}
  .rv.side-card{transform:none}
  /* page-to-page transition */
  main.leaving{opacity:0;transform:translateY(6px);transition:opacity .2s var(--ease-soft),transform .2s var(--ease-soft)}
  main.entering{animation:pageIn .55s var(--ease) both}
  @keyframes pageIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  /* language swap */
  main,footer{transition:opacity .18s var(--ease-soft)}
  body.lang-swap main,body.lang-swap footer{opacity:.25}
  /* hero entrance on first load */
  .hero-copy > *,.hero-card{animation:rise .8s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms + 80ms)}
  .hero::before{animation:panelIn 1.1s var(--ease) both}
  @keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes panelIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
  /* FAQ answers open softly */
  details[open] .ans{animation:ansIn .35s var(--ease) both}
  @keyframes ansIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  summary::after{transition:transform .3s var(--ease),background .2s}
  details[open] summary::after{transform:rotate(180deg)}
  details{transition:border-color .25s var(--ease-soft),box-shadow .25s var(--ease-soft)}
  /* mobile menu */
  header.site.open .wrap > nav.main{animation:menuIn .28s var(--ease) both}
  @keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
  /* hover + press feedback */
  .btn,.card,.step,.svc,.info-item,.date,.link-row,.panel,.facts > div,.tile,.lang button,.menu-toggle,input,select,textarea,.photos img,.link-row .arrow{
    transition:transform .35s var(--ease),box-shadow .35s var(--ease),background-color .25s var(--ease-soft),border-color .25s var(--ease-soft),color .2s var(--ease-soft)}
  .btn:active{transform:translateY(0) scale(.98)}
  nav.main button{position:relative}
  nav.main button::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--azure);transform:scaleX(0);transform-origin:50% 50%;transition:transform .3s var(--ease)}
  nav.main button[aria-current="page"]::after{transform:scaleX(1)}
  @media (hover:hover){
    .btn:hover{transform:translateY(-2px)}
    .btn-primary:hover{box-shadow:0 16px 28px -16px rgba(27,43,94,.7)}
    nav.main button:hover::after{transform:scaleX(1)}
    .card:hover,.step:hover,.svc:hover,.info-item:hover,.date:hover{transform:translateY(-4px);box-shadow:0 22px 40px -28px rgba(27,43,94,.45);border-color:#c5d3ec}
    .card:hover .tile,.svc:hover .tile,.info-item:hover .tile,.feature:hover .tile{transform:scale(1.06)}
    .link-row:hover{transform:translateX(4px);box-shadow:0 14px 28px -24px rgba(27,43,94,.5)}
    .link-row:hover .arrow{transform:translateX(4px)}
    details:not([open]):hover{border-color:#c5d3ec;box-shadow:0 12px 26px -24px rgba(27,43,94,.5)}
    .photos figure:hover img{transform:scale(1.035)}
    .photos img{transition:transform 1s var(--ease)}
  }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .progress{display:none}
}


.gmap{display:block;width:100%;height:260px;border:0;max-width:100%}
