/* =========================================================
   Atulya Consultancy Services — inner pages (About, Contact, Service details)
   Loads after style.css and reuses its tokens and components.
   Same rules: mobile-first, square corners, navy/azure/gold.
   ========================================================= */

:root{
  --hand:'Caveat','Segoe Print','Bradley Hand',cursive;
  --deva:'Tiro Devanagari Hindi','Nirmala UI','Mangal',serif;
  --err:#B42318;
}

.hand{font-family:var(--hand);font-weight:600;line-height:1.1;letter-spacing:0;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------- Breadcrumbs ---------- */
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;font-weight:600;line-height:1.4;}
.crumbs li{display:flex;align-items:center;gap:12px;}
.crumbs li + li::before{content:"";width:6px;height:6px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);opacity:.45;}
.crumbs a{opacity:.8;transition:opacity .2s,color .2s;}
.crumbs a:hover{opacity:1;color:var(--azure);}
.crumbs [aria-current]{color:var(--azure);}

/* Shared faint grid on dark bands */
.phero::before,.journey::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(80% 70% at 85% 0%,#000,transparent 75%);
  mask-image:radial-gradient(80% 70% at 85% 0%,#000,transparent 75%);
}

/* =========================================================
   ABOUT — HERO
   ========================================================= */
.phero{position:relative;overflow:hidden;background:var(--navy-900);color:var(--on-dark);}
.phero::after{
  content:"";position:absolute;right:-20%;top:-30%;width:80%;height:120%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(20,160,230,.26),transparent);
}
.phero__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);gap:48px;padding-block:22px 64px;}
.phero .crumbs a:hover,.phero .crumbs [aria-current]{color:var(--gold);}
.phero h1{margin:28px 0 18px;color:#fff;font-size:clamp(2.35rem,1.2rem + 4vw,4.6rem);line-height:1.02;letter-spacing:-.04em;}
.phero .hl{color:var(--gold);}
.phero .lead{color:#C4D1E0;}
.phero__cta{display:grid;gap:10px;margin-top:30px;}
@media (min-width:480px){ .phero__cta{display:flex;flex-wrap:wrap;} }
.phero__copy > *{animation:rise .7s var(--ease) both;}
.phero__copy > :nth-child(2){animation-delay:.06s;}
.phero__copy > :nth-child(3){animation-delay:.12s;}
.phero__copy > :nth-child(4){animation-delay:.18s;}
.phero__copy > :nth-child(5){animation-delay:.24s;}

/* dictionary entry */
.define{display:inline-grid;gap:4px;margin-top:30px;padding:14px 22px 14px 18px;background:rgba(255,255,255,.04);border-left:3px solid var(--gold);}
.define__word{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;}
.define__word [lang]{color:#fff;font-family:var(--deva);font-size:2.1rem;line-height:1.25;}
.define__say{color:var(--azure-300);font-size:13.5px;font-weight:700;letter-spacing:.1em;}
.define__pos{color:var(--gold-300);font-family:Georgia,'Times New Roman',serif;font-size:14px;font-style:italic;}
.define__mean{color:#E3EBF4;font-family:Georgia,'Times New Roman',serif;font-size:1.05rem;font-style:italic;}

/* photo collage */
.collage{position:relative;width:100%;max-width:540px;margin-inline:auto;padding-bottom:56px;animation:pop .9s .2s var(--ease) both;}
.collage figure{margin:0;}
.collage__main{position:relative;margin:0 14px 0 16%;aspect-ratio:4/5;}
.collage__main::before{content:"";position:absolute;inset:20px -14px -20px 20px;border:2px solid var(--gold);}
.collage__main img{position:relative;width:100%;height:100%;object-fit:cover;object-position:center 12%;box-shadow:0 30px 60px rgba(0,0,0,.35);}
.collage__sub{position:absolute;z-index:2;left:0;bottom:0;width:46%;aspect-ratio:1;border:6px solid var(--navy-900);background:var(--navy-800);box-shadow:0 24px 48px rgba(0,0,0,.35);}
.collage__sub img{width:100%;height:100%;object-fit:cover;object-position:60% center;}
.seal{
  position:absolute;z-index:3;top:-14px;left:2%;
  display:grid;place-items:center;width:96px;height:96px;
  background:var(--gold);color:var(--navy-900);box-shadow:0 16px 32px rgba(0,0,0,.3);
}
.seal svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 22s linear infinite;}
.seal text{fill:currentColor;font-family:'Plus Jakarta Sans',sans-serif;font-size:9.5px;font-weight:800;letter-spacing:.1em;}
.seal b{position:relative;font-size:1.05rem;font-weight:800;line-height:1;letter-spacing:-.02em;}
.collage .person{top:40%;right:0;bottom:auto;z-index:3;}
.collage__note{position:absolute;z-index:3;right:6px;bottom:2px;color:var(--gold-300);font-family:var(--hand);font-size:1.45rem;font-weight:600;line-height:1;transform:rotate(-5deg);}
@media (max-width:419px){ .collage__note{display:none;} }
@media (min-width:600px){
  .seal{width:124px;height:124px;}
  .seal b{font-size:1.35rem;}
  .collage__note{font-size:1.75rem;}
}
@media (min-width:960px){
  .phero__grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:72px;padding-block:36px 104px;}
  .collage{margin-top:40px;}
}

/* =========================================================
   ABOUT — TICKER
   ========================================================= */
.ticker{overflow:hidden;background:var(--gold);color:var(--navy-900);}
.ticker__track{display:flex;width:max-content;animation:marquee 42s linear infinite;}
.ticker ul{display:flex;flex:none;}
.ticker li{
  display:flex;align-items:center;gap:26px;padding:15px 0 15px 26px;
  font-size:clamp(.95rem,.8rem + .6vw,1.3rem);font-weight:800;letter-spacing:-.01em;white-space:nowrap;
}
.ticker li::after{content:"";flex:none;width:9px;height:9px;background:var(--navy-900);transform:rotate(45deg);}
@keyframes marquee{to{transform:translateX(-50%);}}
@media (hover:hover){ .ticker:hover .ticker__track{animation-play-state:paused;} }

/* =========================================================
   ABOUT — OUR STORY
   ========================================================= */
.origin__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;}
.bigyear{
  display:block;width:max-content;max-width:100%;
  font-size:clamp(6rem,2rem + 13vw,13rem);font-weight:800;line-height:.84;letter-spacing:-.04em;
  color:transparent;-webkit-text-stroke:2px var(--azure);
  background:linear-gradient(var(--gold),var(--gold)) left bottom / 100% 0 no-repeat;
  -webkit-background-clip:text;background-clip:text;
  transition:background-size 1.8s var(--ease);
}
.bigyear.is-lit{background-size:100% 56%;}
.origin__note{max-width:380px;margin-top:16px;color:var(--azure);font-size:1.65rem;transform:rotate(-2deg);transform-origin:left;}
.origin__copy h2{margin:16px 0 20px;font-size:clamp(1.75rem,1.1rem + 2.5vw,3rem);}
.origin__intro{margin-bottom:14px;color:var(--ink);font-size:1.12rem;font-weight:500;line-height:1.6;}
.origin__copy p + p{margin-top:14px;}
.figures{
  display:grid;grid-template-columns:1fr 1fr;margin-top:36px;
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
.figures li{position:relative;padding:22px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.figures li::before{content:"";position:absolute;left:-1px;top:-1px;width:28px;height:3px;background:var(--gold);}
.figures strong{display:block;color:var(--ink);font-size:clamp(1.8rem,1.2rem + 1.6vw,2.6rem);font-weight:800;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;}
.figures span{display:block;margin-top:8px;font-size:13px;line-height:1.3;}
@media (min-width:600px){ .figures{grid-template-columns:repeat(4,1fr);} }
@media (min-width:960px){
  .origin__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px;align-items:start;}
  .origin__year{position:sticky;top:calc(var(--appbar-h) + 48px);}
}

/* =========================================================
   ABOUT — JOURNEY TIMELINE
   ========================================================= */
.journey{position:relative;overflow:hidden;}
.journey .wrap{position:relative;}
.tl{position:relative;display:grid;gap:16px;padding-left:36px;--p:0;}
.tl::before,.tl::after{content:"";position:absolute;left:10px;top:8px;bottom:8px;width:2px;}
.tl::before{background:var(--line-dark);}
.tl::after{background:linear-gradient(var(--gold),var(--azure-300));transform-origin:top;transform:scaleY(var(--p));}
.tl__item{position:relative;}
.tl__mark{
  position:absolute;z-index:1;left:-35px;top:28px;width:20px;height:20px;
  background:var(--navy-900);border:2px solid rgba(255,255,255,.28);transform:rotate(45deg);
  transition:background-color .4s,border-color .4s,box-shadow .4s;
}
.tl__card{
  position:relative;padding:24px 22px 26px;
  background:rgba(255,255,255,.03);border:1px solid var(--line-dark);
  transition:border-color .4s,background-color .4s;
}
.tl__when{display:inline-block;padding:4px 10px;background:rgba(242,177,52,.12);color:var(--gold-300);font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.tl__ico{
  position:absolute;right:20px;top:20px;display:grid;place-items:center;width:46px;height:46px;
  background:rgba(108,199,245,.1);color:var(--azure-300);font-size:18px;
  transition:background-color .4s,color .4s;
}
.tl__card h3{margin:18px 60px 8px 0;font-size:1.25rem;letter-spacing:-.015em;}
.tl__card p{font-size:14.5px;}
.tl__item.is-past .tl__mark{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 6px rgba(242,177,52,.16);}
.tl__item.is-past .tl__card{border-color:rgba(242,177,52,.32);}
.tl__item.is-past .tl__ico{background:var(--gold);color:var(--navy-900);}
@media (hover:hover){ .tl__card:hover{background:rgba(255,255,255,.06);} }

@media (min-width:960px){
  /* two staggered columns around a centre line */
  .tl{grid-template-columns:1fr 1fr;gap:0;padding-left:0;}
  .tl::before,.tl::after{left:50%;margin-left:-1px;}
  .tl__item{grid-column:1;padding:0 64px 36px 0;}
  .tl__item:nth-child(even){grid-column:2;padding:0 0 36px 64px;}
  .tl__item:nth-child(1){grid-row:1 / 3;}
  .tl__item:nth-child(2){grid-row:2 / 4;}
  .tl__item:nth-child(3){grid-row:3 / 5;}
  .tl__item:nth-child(4){grid-row:4 / 6;}
  .tl__item:nth-child(5){grid-row:5 / 7;}
  .tl__item:nth-child(6){grid-row:6 / 8;}
  .tl__mark{left:auto;right:-10px;}
  .tl__item:nth-child(even) .tl__mark{left:-10px;right:auto;}
  .tl__card{padding:34px 36px 36px;}
  .tl__card::before{content:"";position:absolute;top:37px;right:-65px;width:64px;height:1px;background:var(--line-dark);}
  .tl__item:nth-child(even) .tl__card::before{right:auto;left:-65px;}
  .tl__ico{right:30px;top:28px;width:52px;height:52px;font-size:20px;}
  .tl__card h3{font-size:1.45rem;}
  .tl__card p{font-size:15px;}
}

/* =========================================================
   ABOUT — VALUES ACROSTIC
   ========================================================= */
.acro{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.acro li{
  position:relative;display:flex;align-items:center;gap:20px;padding:22px 20px;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  transition:background-color .4s;
}
.acro li::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease);
}
.acro__l{
  flex:none;width:1em;font-size:4.2rem;font-weight:800;line-height:.8;letter-spacing:-.05em;
  color:var(--ink);transition:color .4s,transform .5s var(--ease);
}
.acro li:last-child .acro__l::after{content:".";color:var(--azure-500);}
.acro h3{margin-bottom:4px;font-size:1.15rem;letter-spacing:-.015em;transition:color .4s;}
.acro p{font-size:14px;line-height:1.55;transition:color .4s;}
@media (hover:hover){
  .acro li:hover{background:var(--navy-900);}
  .acro li:hover::before{transform:scaleX(1);}
  .acro li:hover .acro__l{color:var(--gold);transform:translateY(-4px);}
  .acro li:hover .acro__l::after{color:var(--gold);}
  .acro li:hover h3{color:#fff;}
  .acro li:hover p{color:var(--on-dark);}
}
@media (min-width:600px){ .acro{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1000px){
  .acro{grid-template-columns:repeat(3,minmax(0,1fr));}
  .acro li{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:40px;min-height:340px;padding:36px 32px 34px;}
  .acro__l{width:auto;font-size:clamp(6rem,1rem + 8vw,10rem);}
  .acro h3{font-size:1.2rem;margin-bottom:8px;}
  .acro li > div{min-height:104px;}
}
@media (min-width:1280px){
  .acro{grid-template-columns:repeat(6,minmax(0,1fr));}
  .acro li{min-height:400px;padding-inline:26px;}
  .acro li > div{min-height:128px;}
}

/* =========================================================
   ABOUT — CEO NOTE + MISSION
   ========================================================= */
.purpose__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;}
.letter{
  position:relative;overflow:hidden;padding:34px 24px 30px;
  background:#fff;border:1px solid var(--line-warm);border-top:3px solid var(--gold);box-shadow:var(--sh-1);
}
.letter::after{
  content:"\201C";position:absolute;right:18px;top:-6px;pointer-events:none;
  font:800 160px/1 Georgia,serif;color:var(--azure-50);
}
.letter > :not(.sr){position:relative;z-index:1;}
.letter__hi{margin:22px 0 14px;color:var(--azure);font-size:2.1rem;}
.letter > p:not(.letter__hi){color:var(--ink);font-size:1.06rem;line-height:1.75;}
.letter > p + p:not(.letter__hi){margin-top:14px;}
.letter__sign{display:flex;align-items:center;gap:16px;margin-top:30px;padding-top:24px;border-top:1px dashed var(--line-warm);}
.letter__sign img{flex:none;width:72px;height:72px;object-fit:cover;border:3px solid var(--gold-50);}
.letter__sign strong{display:block;color:var(--ink);font-size:15px;line-height:1.3;}
.letter__sign small{display:block;color:var(--muted);font-size:12.5px;line-height:1.3;}
.sig{display:block;margin-bottom:4px;color:var(--navy-900);font-family:var(--hand);font-size:2.2rem;font-weight:700;line-height:.9;transform:rotate(-3deg);transform-origin:left;}

.pillars{display:grid;gap:1px;background:var(--line-warm);border:1px solid var(--line-warm);}
.pillar{display:flex;align-items:flex-start;gap:18px;padding:28px 22px;background:#fff;transition:background-color .35s;}
.pillar__ico{display:grid;place-items:center;flex:none;width:54px;height:54px;background:var(--azure-50);color:var(--azure);font-size:21px;transition:background-color .35s,color .35s;}
.pillar h3{margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;}
.pillar p{color:var(--ink);font-size:1.08rem;font-weight:600;line-height:1.5;letter-spacing:-.005em;}
.pillar--dark{background:var(--navy-900);}
.pillar--dark .pillar__ico{background:var(--gold);color:var(--navy-900);}
.pillar--dark h3{color:var(--azure-300);}
.pillar--dark p{color:#fff;font-size:1.35rem;font-weight:800;line-height:1.3;}
.pillar--dark .hl{color:var(--gold);}
@media (hover:hover){
  .pillar:not(.pillar--dark):hover{background:var(--ivory);}
  .pillar:not(.pillar--dark):hover .pillar__ico{background:var(--navy-900);color:var(--gold);}
}
@media (min-width:960px){
  .purpose__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:stretch;}
  .letter{padding:52px 56px 44px;}
  .letter__hi{font-size:2.5rem;}
  .letter > p:not(.letter__hi){font-size:1.2rem;}
  .pillars{grid-template-rows:1fr 1fr 1fr;}
  .pillar{align-items:center;padding:32px 34px;}
  .pillar--dark p{font-size:1.6rem;}
}

/* =========================================================
   ABOUT — COMPARISON TABLE
   ========================================================= */
.vs-wrap{border:1px solid var(--line);}
.vs{width:100%;border-collapse:collapse;}
.vs thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.vs,.vs tbody,.vs tr,.vs th,.vs td{display:block;}
.vs tr{padding-bottom:16px;border-bottom:1px solid var(--line);}
.vs tr:last-child{border-bottom:0;}
.vs tbody th{display:flex;align-items:center;gap:14px;padding:20px 18px 14px;color:var(--ink);font-size:1.05rem;font-weight:800;text-align:left;}
.vs tbody th i{display:grid;place-items:center;flex:none;width:40px;height:40px;background:var(--azure-50);color:var(--azure);font-size:15px;}
.vs td{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 12px;padding:8px 18px 14px;font-size:14.5px;line-height:1.5;}
.vs td::before{content:attr(data-label);flex:0 0 100%;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.vs td > span:last-child{flex:1;min-width:0;}
.vs td.is-us{margin:0 12px;padding:14px 16px;background:var(--navy-900);color:#fff;font-weight:600;}
.vs td.is-us::before{color:var(--gold);}
.mk{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;margin-top:-1px;font-size:11px;}
.mk--no{background:#FBEDE8;color:#B4452F;}
.mk--yes{background:var(--gold);color:var(--navy-900);}
@media (min-width:800px){
  .vs{display:table;}
  .vs thead{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;display:table-header-group;}
  .vs tbody{display:table-row-group;}
  .vs tr{display:table-row;padding:0;border:0;}
  .vs th,.vs td{display:table-cell;}
  .vs thead th{
    padding:22px 28px;border-bottom:1px solid var(--line);
    color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.14em;text-align:left;text-transform:uppercase;
  }
  .vs thead th.is-us{background:var(--navy-900);color:var(--gold);border-bottom-color:var(--line-dark);box-shadow:inset 0 3px 0 var(--gold);}
  .vs tbody th,.vs td{padding:22px 28px;border-top:1px solid var(--line);vertical-align:middle;transition:background-color .25s;}
  .vs tbody tr:first-child > *{border-top:0;}
  .vs tbody th{display:table-cell;width:24%;white-space:nowrap;}
  .vs tbody th i{display:inline-grid;margin-right:14px;vertical-align:middle;}
  .vs td{display:table-cell;width:38%;}
  .vs td::before{content:none;}
  .vs td > span{display:inline;vertical-align:middle;}
  .vs td .mk{display:inline-grid;margin:0 12px 0 0;}
  .vs td.is-us{margin:0;padding:22px 28px;border-top-color:var(--line-dark);}
  .vs tbody tr:hover > :not(.is-us){background:var(--ivory);}
  .vs tbody tr:hover > .is-us{background:var(--navy-800);}
}

/* =========================================================
   CONTACT — HERO + CHANNELS
   ========================================================= */
.chero{position:relative;overflow:hidden;background:#fff;}
.chero::before{
  content:"";position:absolute;top:0;right:0;width:min(640px,80%);height:420px;pointer-events:none;
  background-image:radial-gradient(var(--azure-100) 1.4px,transparent 1.6px);background-size:22px 22px;
  -webkit-mask-image:linear-gradient(225deg,#000 10%,transparent 70%);
  mask-image:linear-gradient(225deg,#000 10%,transparent 70%);
}
.chero__wm{
  position:absolute;right:-.04em;top:70px;pointer-events:none;user-select:none;
  font-family:var(--deva);font-size:clamp(6rem,2rem + 16vw,19rem);line-height:1;
  color:transparent;-webkit-text-stroke:1.5px var(--azure-100);
}
.chero .wrap{position:relative;padding-top:22px;}
.chero__top{display:grid;gap:24px;align-items:end;padding:34px 0 40px;}
.chero__copy > *{animation:rise .7s var(--ease) both;}
.chero__copy > :nth-child(2){animation-delay:.06s;}
.chero__copy > :nth-child(3){animation-delay:.12s;}
.chero h1{max-width:900px;margin-bottom:18px;font-size:clamp(2.4rem,1.2rem + 4.3vw,5rem);line-height:1.02;letter-spacing:-.045em;}
.chero h1 .hl{display:block;}
.chero .lead{max-width:600px;margin-bottom:0;}
.status.is-closed .greet__pulse{background:#FBEDE8;}
.status.is-closed .greet__pulse::before{background:#D14343;}
.status.is-closed .greet__pulse::after{display:none;}
.status.is-soon .greet__pulse{background:var(--gold-50);}
.status.is-soon .greet__pulse::before,.status.is-soon .greet__pulse::after{background:var(--gold);}
.chero__note{display:none;}
@media (min-width:1000px){
  .chero__top{grid-template-columns:1fr auto;padding:44px 0 56px;}
  .chero__note{
    display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0 60px 4px 0;
    color:var(--azure);font-size:2.2rem;transform:rotate(-4deg);
    animation:pop .8s .5s var(--ease) both;
  }
  .chero__note svg{width:110px;height:auto;margin-left:40px;color:var(--gold);}
}

.chans{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding-bottom:56px;}
.chan{
  position:relative;display:flex;flex-direction:column;padding:26px 22px 22px;
  background:#fff;border:1px solid var(--line);
  transition:background-color .4s,border-color .4s;
}
.chan::before{
  content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease);
}
.chan__ico{display:grid;place-items:center;width:56px;height:56px;margin-bottom:24px;background:var(--navy-900);color:var(--gold);font-size:21px;transition:background-color .4s,color .4s;}
.chan--wa .chan__ico{background:#25D366;color:#fff;font-size:26px;}
.chan h3{color:var(--muted);font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;transition:color .4s;}
.chan__value{margin:8px 0 6px;color:var(--ink);font-size:1.3rem;font-weight:800;line-height:1.25;letter-spacing:-.02em;overflow-wrap:anywhere;transition:color .4s;}
.chan__hint{font-size:13.5px;line-height:1.5;transition:color .4s;}
.chan__hint a{color:var(--azure);font-weight:600;}
.chan__actions{display:flex;gap:8px;margin-top:auto;padding-top:22px;}
.chan__go{
  flex:1;display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;padding:0 16px;
  background:var(--ivory);color:var(--ink);font-size:14px;font-weight:700;
  transition:background-color .3s,color .3s;
}
.chan__go i{font-size:12px;transition:transform .3s var(--ease);}
.chan__go::after{content:"";position:absolute;inset:0;}
.chan__copy{
  position:relative;z-index:1;display:grid;place-items:center;flex:none;width:46px;height:46px;
  border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;font-size:15px;
  transition:background-color .3s,color .3s,border-color .3s;
}
.chan__copy.is-done,[data-copy].is-done{background:var(--ok);border-color:var(--ok);color:#fff;}
@media (hover:hover){
  .chan:hover{background:var(--navy-900);border-color:var(--navy-900);}
  .chan:hover::before{transform:scaleX(1);}
  .chan:hover .chan__ico{background:var(--gold);color:var(--navy-900);}
  .chan--wa:hover .chan__ico{background:#25D366;color:#fff;}
  .chan:hover h3{color:var(--azure-300);}
  .chan:hover .chan__value{color:#fff;}
  .chan:hover .chan__hint{color:var(--on-dark);}
  .chan:hover .chan__hint a{color:var(--gold-300);}
  .chan:hover .chan__go{background:var(--gold);color:var(--navy-900);}
  .chan:hover .chan__go i{transform:translateX(4px);}
  .chan:hover .chan__copy{background:transparent;border-color:var(--line-dark);color:#fff;}
  .chan .chan__copy:hover{background:#fff;color:var(--navy-900);}
}
.chan__hint a{position:relative;z-index:1;}
@media (min-width:600px){ .chans{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1100px){
  .chans{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding-bottom:84px;}
  .chan{padding:34px 30px 30px;}
  .chan + .chan{border-left:0;}
  .chan__value{font-size:1.4rem;}
}

/* =========================================================
   CONTACT — ENQUIRY FORM + LIVE PREVIEW
   ========================================================= */
.form{display:grid;grid-template-columns:minmax(0,1fr);}
.form__fields,.form__submit{background:#fff;border:1px solid var(--line-warm);}
.form__fields{padding:8px 20px;border-top:3px solid var(--gold);}
.form__submit{padding:22px 20px 24px;}

.field{min-width:0;margin:0;padding:24px 0 26px;border:0;}
.field + .field{border-top:1px dashed var(--line-warm);}
.field legend{
  float:left;width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;
  margin-bottom:16px;padding:0;color:var(--ink);font-size:1.05rem;font-weight:800;line-height:1.3;letter-spacing:-.01em;
}
.field legend ~ *{clear:both;} /* ~ not +: the next sibling may be a hidden input */
.field legend em{color:var(--muted);font-size:12.5px;font-style:normal;font-weight:500;letter-spacing:0;}
.field__n{display:grid;place-items:center;flex:none;width:32px;height:32px;background:var(--navy-900);color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.04em;}
.field__err{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--err);font-size:13px;font-weight:600;line-height:1.4;}

/* chip pickers */
.pick{display:flex;flex-wrap:wrap;gap:8px;}
.pick label{position:relative;display:flex;cursor:pointer;}
.pick input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;}
.pick span{
  display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 16px 0 12px;
  background:#fff;border:1px solid var(--line);
  color:var(--ink);font-size:14px;font-weight:600;line-height:1.25;
  transition:background-color .2s,border-color .2s,color .2s;
}
.pick span i{color:var(--azure);font-size:14px;transition:color .2s;}
.pick:not(.pick--radio) span::before{
  content:"";display:grid;place-items:center;flex:none;width:18px;height:18px;
  border:1.5px solid #B9C4D2;background:#fff;
  font:900 10px/1 'Font Awesome 6 Free';color:transparent;
  transition:background-color .2s,border-color .2s,color .2s;
}
.pick input:checked + span{background:var(--navy-900);border-color:var(--navy-900);color:#fff;}
.pick input:checked + span i{color:var(--gold);}
.pick:not(.pick--radio) input:checked + span::before{content:"\f00c";background:var(--gold);border-color:var(--gold);color:var(--navy-900);}
.pick input:focus-visible + span{outline:3px solid rgba(20,160,230,.55);outline-offset:2px;}
.pick--radio span{padding:0 18px;}
@media (hover:hover){ .pick label:hover input:not(:checked) + span{border-color:var(--navy-900);} }
.pick.is-invalid span{border-color:rgba(180,35,24,.45);}
.pick--seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;}
.pick--seg label + label span{border-left:0;}
.pick--seg span{justify-content:center;width:100%;padding:0 8px;font-size:13.5px;}
@media (max-width:399px){ .pick--seg span i{display:none;} }

/* text inputs */
.inputs{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;}
.input{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0;}
.input label{color:var(--ink);font-size:13.5px;font-weight:700;}
.input label b{color:var(--err);}
.input label small{color:var(--muted);font-size:12px;font-weight:500;}
.input input,.input textarea{
  width:100%;min-height:52px;padding:13px 16px;
  background:var(--ivory);border:1px solid var(--line-warm);border-bottom:2px solid #C9D2DE;border-radius:0;
  font:inherit;font-size:16px;color:var(--ink);
  -webkit-appearance:none;appearance:none;
  transition:border-color .2s,background-color .2s,box-shadow .2s;
}
.input textarea{min-height:128px;padding-bottom:30px;resize:vertical;line-height:1.55;}
.input ::placeholder{color:#8C99AA;}
.input input:focus,.input textarea:focus{outline:0;background:#fff;border-color:var(--azure);box-shadow:0 0 0 3px rgba(20,160,230,.15);}
.input [aria-invalid="true"]{border-color:rgba(180,35,24,.55);border-bottom-color:var(--err);background:#FFF8F7;}
.input__pre{display:flex;}
.input__pre span{
  display:grid;place-items:center;flex:none;padding:0 14px;
  background:var(--navy-900);color:var(--gold);font-size:14px;font-weight:800;
}
.input__pre input{min-width:0;}
.input__count{position:absolute;right:12px;bottom:10px;color:var(--muted);font-size:11.5px;font-weight:600;pointer-events:none;font-variant-numeric:tabular-nums;}
.input__count.is-near{color:var(--gold-ink);}
@media (min-width:600px){
  .inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
  .input--wide{grid-column:1 / -1;}
}

.form__actions{display:grid;gap:10px;}
.form__actions .btn--dark{background:#128C4B;}
@media (hover:hover){ .form__actions .btn--dark:hover{background:var(--navy-900);} }
.form__note{display:flex;gap:10px;margin-top:16px;color:var(--muted);font-size:12.5px;line-height:1.55;}
.form__note i{margin-top:3px;color:var(--azure);}
@media (min-width:480px){ .form__actions{display:flex;flex-wrap:wrap;} }

/* live WhatsApp-style preview */
.preview{padding:28px 0;}
.preview__label{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.preview__label span{position:relative;width:10px;height:10px;background:var(--ok);}
.preview__label span::after{content:"";position:absolute;inset:0;background:var(--ok);animation:ping 2s var(--ease) infinite;}
.chat{overflow:hidden;background:#fff;border:1px solid var(--line-warm);box-shadow:var(--sh-2);}
.chat__bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--navy-900);color:#fff;}
.chat__bar img{flex:none;width:42px;height:42px;padding:3px;background:#fff;object-fit:contain;}
.chat__bar span{flex:1;min-width:0;}
.chat__bar strong{display:block;overflow:hidden;font-size:14px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;}
.chat__bar small{display:block;color:var(--on-dark);font-size:11.5px;line-height:1.3;}
.chat__bar > i{color:var(--gold);}
.chat__body{
  display:flex;flex-direction:column;gap:10px;min-height:300px;padding:16px 16px 22px;
  background-color:#EFE9DD;
  background-image:radial-gradient(rgba(7,28,51,.07) 1px,transparent 1.2px);background-size:14px 14px;
}
.chat__day{align-self:center;padding:3px 10px;background:rgba(255,255,255,.9);color:var(--muted);font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;}
.bubble{
  position:relative;max-width:90%;padding:9px 12px 22px;
  color:#1C2B3A;font-size:13.5px;line-height:1.5;overflow-wrap:anywhere;
  box-shadow:0 1px 1px rgba(7,28,51,.1);
}
.bubble::before{content:"";position:absolute;top:0;width:0;height:0;border-top:9px solid;}
.bubble--in{align-self:flex-start;background:#fff;}
.bubble--in::before{left:-9px;border-top-color:#fff;border-left:9px solid transparent;}
.bubble--in{padding-bottom:9px;}
.bubble--out{align-self:flex-end;min-width:60%;background:#D9F6E3;animation:pop .4s var(--ease) both;}
.bubble--out::before{right:-9px;border-top-color:#D9F6E3;border-right:9px solid transparent;}
.bubble p + p{margin-top:1px;}
.bubble b{font-weight:700;}
.bubble .ph{padding:0 4px;background:rgba(7,28,51,.06);color:#7D8B9C;font-style:italic;}
.bubble__greet{margin-bottom:6px;}
.bubble__msg{margin-top:8px!important;white-space:pre-wrap;}
.bubble__time{position:absolute;right:10px;bottom:4px;display:flex;align-items:center;gap:4px;color:#6B7B8C;font-size:10.5px;}
.bubble__time i{color:#34B7F1;font-size:10px;}
.chat__input{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#F6F2EA;border-top:1px solid var(--line-warm);}
.chat__input span:first-child{flex:1;padding:10px 14px;background:#fff;color:var(--muted);font-size:13px;}
.chat__send{display:grid;place-items:center;flex:none;width:42px;height:42px;background:#25D366;color:#fff;font-size:15px;}
.preview__tip{margin-top:16px;color:var(--azure);font-size:1.45rem;text-align:center;transform:rotate(-2deg);}

@media (min-width:1000px){
  .form{grid-template-columns:minmax(0,1fr) minmax(340px,420px);column-gap:48px;align-items:start;}
  .form__fields{grid-column:1;grid-row:1;padding:12px 40px;border-bottom:0;}
  .form__submit{grid-column:1;grid-row:2;padding:26px 40px 32px;border-top:1px dashed var(--line-warm);}
  .preview{grid-column:2;grid-row:1 / 3;align-self:stretch;padding:0;}
  .preview__in{position:sticky;top:calc(var(--appbar-h) + 28px);}
  .chat__body{min-height:380px;}
  .field{padding:30px 0 32px;}
}

/* sent state */
.sent{
  max-width:720px;margin-inline:auto;padding:44px 24px;text-align:center;
  background:#fff;border:1px solid var(--line-warm);border-top:3px solid var(--gold);
  animation:rise .5s var(--ease);
}
.sent:focus{outline:0;}
.sent__ico{display:inline-grid;place-items:center;width:72px;height:72px;margin-bottom:20px;background:#E6F4EE;color:#0F7B55;font-size:28px;}
.sent h3{margin-bottom:10px;font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem);}
.sent p{max-width:520px;margin-inline:auto;}
.sent p a{color:var(--azure);font-weight:700;white-space:nowrap;}
.sent__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px;}

/* =========================================================
   CONTACT — VISIT
   ========================================================= */
.visit__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;}
.map{position:relative;display:flex;flex-direction:column;background:var(--azure-50);border:1px solid var(--line);}
.map__frame{position:relative;flex:1;min-height:320px;}
.map::before,.map::after{content:"";position:absolute;z-index:2;width:44px;height:44px;pointer-events:none;}
.map::before{left:-7px;top:-7px;border-left:3px solid var(--gold);border-top:3px solid var(--gold);}
.map::after{right:-7px;bottom:-7px;border-right:3px solid var(--gold);border-bottom:3px solid var(--gold);}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.9);}
.map__bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;padding:14px 16px;background:var(--navy-900);color:var(--on-dark);}
.map__bar-ico{display:grid;place-items:center;flex:none;width:40px;height:40px;background:var(--gold);color:var(--navy-900);font-size:16px;}
.map__bar p{flex:1 1 180px;min-width:0;font-size:12.5px;line-height:1.4;}
.map__bar strong{display:block;color:#fff;font-size:14px;}
.map__bar a{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:13px;font-weight:700;white-space:nowrap;transition:background-color .2s,color .2s,border-color .2s;}
.map__bar a i{color:var(--gold);font-size:11px;transition:color .2s;}
.map__bar a:hover{background:var(--gold);border-color:var(--gold);color:var(--navy-900);}
.map__bar a:hover i{color:var(--navy-900);}
.visit__info h2{margin:16px 0 14px;font-size:clamp(1.75rem,1.1rem + 2.5vw,3rem);}
.addr{
  display:flex;align-items:flex-start;gap:14px;margin:26px 0 20px;padding:18px;
  background:var(--ivory);border:1px solid var(--line-warm);font-style:normal;line-height:1.55;
}
.addr__ico{display:grid;place-items:center;flex:none;width:46px;height:46px;background:var(--navy-900);color:var(--gold);font-size:18px;}
.addr > span:nth-child(2){flex:1;min-width:0;font-size:14.5px;}
.addr strong{display:block;color:var(--ink);font-size:15.5px;}
.addr__near{display:flex;gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line-warm);color:var(--gold-ink);font-size:13px;font-weight:600;line-height:1.45;}
.addr__near i{margin-top:3px;}
.hours{border:1px solid var(--line);}
.hours__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line);}
.hours__head h3{display:flex;align-items:center;gap:10px;font-size:1.02rem;letter-spacing:-.01em;}
.hours__head h3 i{color:var(--azure);}
.pill{padding:4px 10px;font-size:12px;font-weight:700;line-height:1.4;}
.pill--open{background:#E6F4EE;color:#0F7B55;}
.pill--soon{background:var(--gold-50);color:var(--gold-ink);}
.pill--closed{background:#FBEDE8;color:#B4452F;}
.hours__table{width:100%;border-collapse:collapse;font-size:14.5px;}
.hours__table th,.hours__table td{padding:10px 20px;border-bottom:1px solid var(--line);font-weight:500;line-height:1.4;}
.hours__table th{text-align:left;}
.hours__table td{color:var(--ink);font-weight:600;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.hours__table tr:last-child > *{border-bottom:0;}
.hours__table tr.is-closed td{color:#B4452F;}
.hours__table tr.is-today{background:var(--gold-50);box-shadow:inset 3px 0 0 var(--gold);}
.hours__table tr.is-today th{color:var(--ink);font-weight:800;}
.today-tag{display:inline-block;margin-left:10px;padding:2px 7px;background:var(--navy-900);color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;vertical-align:1px;}
.visit__cta{display:grid;gap:10px;margin-top:26px;}
@media (min-width:480px){ .visit__cta{display:flex;flex-wrap:wrap;} }
@media (min-width:960px){
  .visit__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:stretch;}
  .map{min-height:640px;}
  .map__bar{padding:16px 20px;}
  .map__bar-ico{width:46px;height:46px;font-size:18px;}
  .map__bar strong{font-size:15px;}
}

/* =========================================================
   CONTACT — DOCUMENT CHECKLIST
   ========================================================= */
.prep__box{border:1px solid var(--line-dark);}
.prep__tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--line-dark);scrollbar-width:none;}
.prep__tabs::-webkit-scrollbar{display:none;}
.prep__tabs button{
  position:relative;flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:60px;padding:0 20px;border:0;background:none;cursor:pointer;
  color:var(--on-dark);font-size:14.5px;font-weight:700;white-space:nowrap;
  transition:background-color .25s,color .25s;
}
.prep__tabs button + button{border-left:1px solid var(--line-dark);}
.prep__tabs button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--gold);transform:scaleX(0);transition:transform .35s var(--ease);}
.prep__tabs button i{color:var(--azure-300);font-size:14px;transition:color .25s;}
.prep__tabs button:hover{color:#fff;}
.prep__tabs button[aria-selected="true"]{background:rgba(255,255,255,.06);color:#fff;}
.prep__tabs button[aria-selected="true"]::after{transform:scaleX(1);}
.prep__tabs button[aria-selected="true"] i{color:var(--gold);}
.prep__body{display:grid;grid-template-columns:minmax(0,1fr);}
.prep__panel{animation:rise .45s var(--ease);}
.docs{display:grid;grid-template-columns:minmax(0,1fr);counter-reset:doc;}
.docs li{counter-increment:doc;border-bottom:1px solid var(--line-dark);}
.docs label{position:relative;display:flex;align-items:flex-start;gap:14px;padding:18px 20px;cursor:pointer;transition:background-color .25s;}
.docs label::before{content:counter(doc,decimal-leading-zero);flex:none;width:22px;padding-top:4px;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.06em;}
.docs input{position:absolute;opacity:0;width:1px;height:1px;}
.docs__box{
  display:grid;place-items:center;flex:none;width:28px;height:28px;
  border:1.5px solid rgba(255,255,255,.3);color:transparent;font-size:12px;
  transition:background-color .25s,border-color .25s,color .25s,transform .25s var(--ease);
}
.docs strong{display:block;color:#fff;font-size:15px;line-height:1.35;transition:color .25s;}
.docs small{display:block;margin-top:2px;color:var(--on-dark);font-size:13px;line-height:1.45;}
.docs input:checked ~ .docs__box{background:var(--gold);border-color:var(--gold);color:var(--navy-900);transform:scale(1.06);}
.docs input:checked ~ span strong{color:var(--gold-300);text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:rgba(248,205,111,.6);}
.docs input:focus-visible ~ .docs__box{outline:3px solid rgba(108,199,245,.6);outline-offset:2px;}
@media (hover:hover){ .docs label:hover{background:rgba(255,255,255,.04);} .docs label:hover .docs__box{border-color:var(--gold);} }

.prep__side{
  position:relative;overflow:hidden;padding:30px 22px;color:#D6E9F8;
  background:linear-gradient(150deg,#14A0E6 0%,#0873B5 50%,#0B2847 100%);
}
.prep__side::after{content:"";position:absolute;right:-70px;bottom:-70px;width:220px;height:220px;border:30px solid rgba(255,255,255,.07);pointer-events:none;}
.prep__side > *{position:relative;z-index:1;}
.prep__label{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#fff;}
.meter{display:flex;align-items:baseline;gap:10px;margin:14px 0 12px;}
.meter b{color:#fff;font-size:4rem;font-weight:800;line-height:.9;letter-spacing:-.05em;font-variant-numeric:tabular-nums;}
.meter > span{font-size:15px;font-weight:600;}
.meter__bar{display:block;height:6px;background:rgba(255,255,255,.18);}
.meter__bar i{display:block;width:100%;height:100%;background:var(--gold);transform-origin:left;transform:scaleX(0);transition:transform .5s var(--ease);}
.prep__tip{margin:22px 0 24px;font-size:14.5px;}
@media (min-width:760px){
  .docs{grid-template-columns:repeat(2,minmax(0,1fr));}
  .docs li:nth-child(odd){border-right:1px solid var(--line-dark);}
}
@media (min-width:1100px){
  .prep__body{grid-template-columns:minmax(0,1fr) 360px;}
  .prep__panels{border-right:1px solid var(--line-dark);}
  .docs label{padding:24px 28px;}
  .prep__side{display:flex;flex-direction:column;padding:44px 36px;}
  .prep__side .btn{margin-top:auto;}
  .meter b{font-size:5.5rem;}
}

/* =========================================================
   CONTACT — FAQ
   ========================================================= */
.faq__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;}
.faq__intro h2{margin:16px 0 14px;font-size:clamp(1.75rem,1.1rem + 2.5vw,3rem);}
.faq__card{margin-top:30px;padding:28px 24px;background:var(--navy-900);color:var(--on-dark);border-top:3px solid var(--gold);}
.faq__card-ico{display:grid;place-items:center;width:50px;height:50px;margin-bottom:18px;background:var(--gold);color:var(--navy-900);font-size:19px;}
.faq__card strong{display:block;color:#fff;font-size:1.25rem;line-height:1.3;}
.faq__card p{margin:6px 0 20px;}
.faq__card-btns{display:flex;flex-wrap:wrap;gap:10px;}
.faq__card-btns .btn{flex:1 1 140px;}
.faq__list{border-top:1px solid var(--line-warm);}
.faq details{border-bottom:1px solid var(--line-warm);}
.faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;cursor:pointer;list-style:none;
  color:var(--ink);font-size:1.06rem;font-weight:700;line-height:1.4;letter-spacing:-.01em;transition:color .2s;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary i{
  display:grid;place-items:center;flex:none;width:40px;height:40px;
  background:#fff;border:1px solid var(--line-warm);color:var(--ink);font-size:13px;
  transition:background-color .3s,color .3s,border-color .3s;
}
.faq summary i::before{display:inline-block;transition:transform .35s var(--ease);}
.faq summary:hover{color:var(--azure);}
.faq details[open] summary i{background:var(--navy-900);border-color:var(--navy-900);color:var(--gold);}
.faq details[open] summary i::before{transform:rotate(45deg);}
.faq details > div{padding:0 60px 24px 0;}
.faq details[open] > div{animation:rise .4s var(--ease);}
.faq details a{color:var(--azure);font-weight:700;}
.faq details > div p + p{margin-top:12px;}
.faq__more{
  display:inline-flex;align-items:center;gap:10px;margin-top:18px;
  color:var(--azure);font-size:14.5px;font-weight:700;
}
.faq__more i{font-size:12px;transition:transform .3s var(--ease);}
.faq__more:hover i{transform:translateX(4px);}
@media (min-width:960px){
  .faq__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:88px;align-items:start;}
  .faq__intro{position:sticky;top:calc(var(--appbar-h) + 40px);}
  .faq summary{padding:28px 0;font-size:1.2rem;}
  .faq details > div{font-size:15.5px;}
}

/* =========================================================
   CONTACT — REVIEW BAND
   ========================================================= */
.rate{background:#fff;border-top:1px solid var(--line);}
.rate__in{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;padding-block:48px 56px;}
.rate__qr{justify-self:start;padding:12px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);box-shadow:var(--sh-1);}
.rate__qr img{width:130px;height:auto;}
.rate h2{margin:12px 0 10px;font-size:clamp(1.5rem,1.1rem + 1.6vw,2.4rem);}
.rate__copy p{max-width:520px;}
.rate__copy .stars{font-size:15px;}
.rate__links{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:18px;}
.rate__social p{margin-bottom:12px;color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;}
.rate .social a{border-color:var(--line);color:var(--ink);}
.rate .social a:hover{background:var(--navy-900);border-color:var(--navy-900);color:var(--gold);}
@media (min-width:900px){
  .rate__in{grid-template-columns:auto 1fr auto;align-items:center;gap:56px;padding-block:72px;}
  .rate__qr img{width:150px;}
}

/* =========================================================
   TOAST
   ========================================================= */
.toast{
  position:fixed;z-index:120;left:50%;bottom:calc(var(--tabbar-h) + 18px + env(safe-area-inset-bottom,0px));
  display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:12px 18px;
  background:var(--navy-900);border-left:3px solid var(--gold);box-shadow:var(--sh-2);
  color:#fff;font-size:14px;font-weight:600;white-space:nowrap;
  opacity:0;visibility:hidden;transform:translate(-50%,10px);
  transition:opacity .25s,transform .3s var(--ease),visibility .25s;
}
.toast::before{content:"\f00c";font:900 12px/1 'Font Awesome 6 Free';color:var(--gold);}
.toast.is-warn::before{content:"\f071";}
.toast.is-on{opacity:1;visibility:visible;transform:translate(-50%,0);}
@media (min-width:900px){ .toast{bottom:32px;} }

/* main.js scroll reveal: keep its transition on elements that set their own */
.reveal,.acro li.reveal{transition:opacity .7s ease,transform .7s var(--ease);}

/* =========================================================
   SERVICE DETAILS — current-page states in shared navigation
   ========================================================= */
@media (min-width:1100px){
  .menu__drop.is-current .menu__toggle{color:var(--azure);}
  .menu__drop.is-current .menu__toggle::after{transform:scaleX(1);}
}
.mega__grid a[aria-current]{background:var(--ivory);}
.mega__grid a[aria-current] .mega__ico{background:var(--navy-900);color:var(--gold);}
.chip[aria-current]{background:var(--navy-900);border-color:var(--navy-900);color:#fff;}
.footer__col a[aria-current]{color:var(--gold-300);}

/* =========================================================
   SERVICE DETAILS — HERO
   ========================================================= */
.shero__wm{
  position:absolute;z-index:0;left:-.06em;bottom:-.2em;pointer-events:none;user-select:none;
  font-size:clamp(9rem,3rem + 24vw,27rem);font-weight:800;line-height:1;letter-spacing:-.07em;
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.07);
}
.shero .phero__copy > :nth-child(6){animation-delay:.3s;}

.svctag{display:inline-flex;align-items:center;gap:14px;margin-top:30px;}
.svctag__ico{display:grid;place-items:center;flex:none;width:52px;height:52px;background:var(--gold);color:var(--navy-900);font-size:20px;}
.svctag__txt{color:#fff;font-size:1.05rem;font-weight:700;line-height:1.25;}
.svctag__txt small{display:block;margin-bottom:2px;color:var(--azure-300);font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;}

.hfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:36px;border-top:1px solid var(--line-dark);}
.hfacts li{display:flex;flex-direction:column;gap:10px;padding:18px 10px 0 0;}
.hfacts li + li{padding-left:14px;border-left:1px solid var(--line-dark);}
.hfacts i{color:var(--gold);font-size:18px;}
.hfacts span{color:var(--on-dark);font-size:12.5px;line-height:1.35;}
.hfacts b{display:block;color:#fff;font-size:1.12rem;font-weight:800;letter-spacing:-.02em;}
@media (min-width:600px) and (max-width:959px),(min-width:1280px){
  .hfacts li{flex-direction:row;align-items:center;gap:14px;padding-right:14px;}
  .hfacts i{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid var(--line-dark);}
}

/* photo + filing tracker + stamp */
.svis{position:relative;width:100%;max-width:560px;margin-inline:auto;padding-bottom:150px;animation:pop .9s .2s var(--ease) both;}
.svis__photo{position:relative;margin:0 0 0 20%;aspect-ratio:643/603;}
.svis__photo::before{content:"";position:absolute;inset:18px -14px -18px 18px;border:2px solid var(--gold);}
.svis__photo img{position:relative;width:100%;height:100%;object-fit:cover;box-shadow:0 30px 60px rgba(0,0,0,.35);}

.dash{
  position:absolute;z-index:2;left:0;bottom:0;width:min(290px,74%);padding:14px 14px 12px;
  background:#fff;border-top:3px solid var(--gold);box-shadow:0 30px 60px rgba(0,0,0,.4);color:var(--text);
}
.dash__top{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.dash__badge{display:grid;place-items:center;flex:none;width:38px;height:38px;background:var(--navy-900);color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.06em;}
.dash__id{flex:1;min-width:0;overflow:hidden;color:var(--ink);font-size:12.5px;font-weight:800;letter-spacing:.04em;line-height:1.25;text-overflow:ellipsis;white-space:nowrap;}
.dash__id small{display:block;color:var(--muted);font-size:9.5px;letter-spacing:.14em;}
.dash__live{display:inline-flex;align-items:center;gap:6px;flex:none;padding:3px 8px;background:#E6F4EE;color:#0F7B55;font-size:10.5px;font-weight:800;}
.dash__live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);animation:blink 1.6s ease-in-out infinite;}
@keyframes blink{50%{opacity:.25;}}
.dash__mid{display:flex;align-items:center;gap:14px;padding:12px 0 10px;}
.dash__ring{flex:none;width:56px;height:56px;transform:rotate(-90deg);}
.dash__ring circle{fill:none;stroke-width:7;}
.dash__ring circle:first-child{stroke:var(--azure-50);}
.dash__ring circle:last-child{stroke:var(--gold);stroke-dasharray:100;stroke-dashoffset:100;animation:ring 1.4s .7s var(--ease) forwards;}
@keyframes ring{to{stroke-dashoffset:0;}}
.dash__score b{display:block;color:var(--ink);font-size:1.45rem;font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;}
.dash__score small{display:block;margin-top:4px;color:var(--muted);font-size:11.5px;line-height:1.3;}
.dash__list{display:grid;border-top:1px dashed var(--line);}
.dash__list li{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);color:var(--ink);font-size:12.5px;font-weight:700;line-height:1.3;animation:rise .5s var(--ease) both;}
.dash__list li:nth-child(1){animation-delay:.9s;}
.dash__list li:nth-child(2){animation-delay:1.05s;}
.dash__list li:nth-child(3){animation-delay:1.2s;}
.dash__list i{display:grid;place-items:center;flex:none;width:20px;height:20px;background:var(--gold);color:var(--navy-900);font-size:9px;}
.dash__list span{flex:1;min-width:0;}
.dash__list small{color:#0F7B55;font-size:11px;font-weight:700;}
.dash__foot{display:flex;align-items:center;gap:8px;margin-top:10px;padding:9px 10px;background:var(--navy-900);color:var(--on-dark);font-size:11.5px;line-height:1.3;}
.dash__foot i{color:var(--gold);}
.dash__foot b{margin-left:auto;color:#fff;font-size:12px;white-space:nowrap;}

.stamp{
  position:absolute;z-index:3;top:5%;left:0;
  display:flex;flex-direction:column;align-items:center;padding:8px 14px 9px;
  background:rgba(7,28,51,.6);border:4px double var(--gold);color:var(--gold);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  font-size:1.05rem;font-weight:800;line-height:1;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
  transform:rotate(-14deg);animation:stamp .55s 1.4s cubic-bezier(.3,1.5,.5,1) both;
}
.stamp small{margin-bottom:4px;color:var(--gold-300);font-size:.62em;letter-spacing:.34em;}
@keyframes stamp{from{opacity:0;transform:rotate(-14deg) scale(2.4);}}
.svis__note{display:none;}
@media (min-width:600px){
  .svis{padding-bottom:80px;}
  .dash{width:300px;padding:16px 16px 14px;}
  .stamp{top:8%;padding:10px 18px 11px;font-size:1.35rem;}
  .svis__note{
    display:block;position:absolute;z-index:3;right:0;bottom:4px;max-width:calc(100% - 330px);
    color:var(--gold-300);font-family:var(--hand);font-size:1.6rem;line-height:1.05;text-align:right;transform:rotate(-4deg);
  }
}
@media (min-width:960px){
  .svis{margin-top:24px;}
}
@media (min-width:960px) and (max-width:1279px){
  .svis{padding-bottom:140px;}
  .dash{width:280px;}
  .svis__note{max-width:calc(100% - 300px);}
}

/* =========================================================
   SERVICE DETAILS — STICKY SECTION NAV
   ========================================================= */
html:has(.subnav){scroll-padding-top:calc(var(--appbar-h) + 76px);}
.subnav{
  position:sticky;top:var(--appbar-h);z-index:45;
  background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);
  -webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);
}
.subnav__in{display:flex;align-items:center;gap:20px;}
.subnav__name,.subnav__cta{display:none;}
.subnav__links{
  position:relative;display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;
  margin-inline:calc(var(--gutter) * -1);padding-inline:calc(var(--gutter) - 14px);
  scroll-padding-inline:var(--gutter);
}
.subnav__links::-webkit-scrollbar{display:none;}
.subnav__links a{
  position:relative;display:flex;align-items:center;height:56px;padding:0 14px;
  color:var(--muted);font-size:14px;font-weight:700;white-space:nowrap;transition:color .2s;
}
.subnav__links a::after{
  content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;background:var(--azure);
  transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);
}
.subnav__links a:hover,.subnav__links a.is-active{color:var(--ink);}
.subnav__links a.is-active::after{transform:scaleX(1);}
.subnav__bar{position:absolute;left:0;right:0;top:0;height:2px;pointer-events:none;}
.subnav__bar i{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;}
@media (min-width:1100px){
  .subnav__name{
    display:flex;align-items:center;gap:12px;flex:none;padding-right:22px;border-right:1px solid var(--line);
    color:var(--ink);font-size:15px;font-weight:800;white-space:nowrap;
  }
  .subnav__name i{display:grid;place-items:center;width:34px;height:34px;background:var(--navy-900);color:var(--gold);font-size:13px;}
  .subnav__links{margin:0;padding:0;}
  .subnav__links a{height:64px;}
  .subnav__cta{display:inline-flex;min-height:42px;padding:0 18px;font-size:13.5px;}
}

/* =========================================================
   SERVICE DETAILS — OVERVIEW + ELIGIBILITY CHECKER
   ========================================================= */
.ov__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:48px;}
.ov__copy h2{margin:16px 0 20px;font-size:clamp(1.75rem,1.1rem + 2.5vw,3rem);}
.ov__intro{margin-bottom:14px;color:var(--ink);font-size:1.12rem;font-weight:500;line-height:1.6;}
.ov__sub{margin:40px 0 16px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;}
.limits{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.limits li{
  position:relative;display:flex;align-items:center;gap:18px;padding:20px 18px;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
}
.limits li::before{content:"";position:absolute;left:-1px;top:-1px;width:28px;height:3px;background:var(--gold);}
.limits__num{flex:none;min-width:108px;color:var(--ink);font-size:2.3rem;font-weight:800;line-height:1;letter-spacing:-.04em;}
.limits__num small{margin-left:5px;color:var(--muted);font-size:.34em;font-weight:800;letter-spacing:.1em;text-transform:uppercase;}
.limits span{font-size:13.5px;line-height:1.45;}
.limits strong{display:block;color:var(--ink);font-size:15px;}
.limits__hot{background:var(--navy-900);}
.limits__hot .limits__num{color:var(--gold);}
.limits__hot .limits__num small{color:var(--azure-300);}
.limits__hot span{color:var(--on-dark);}
.limits__hot strong{color:#fff;}
.ov__fine{display:flex;gap:10px;margin-top:16px;color:var(--muted);font-size:13px;line-height:1.55;}
.ov__fine i{margin-top:3px;color:var(--azure);}
@media (min-width:600px){
  .limits{grid-template-columns:repeat(3,minmax(0,1fr));}
  .limits li{flex-direction:column;align-items:flex-start;gap:14px;padding:24px 20px;}
}

.checker{padding:24px 20px;background:#fff;border:1px solid var(--line-warm);border-top:3px solid var(--gold);box-shadow:var(--sh-2);}
.checker__head{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px dashed var(--line-warm);}
.checker__ico{display:grid;place-items:center;flex:none;width:52px;height:52px;background:var(--navy-900);color:var(--gold);font-size:20px;}
.checker__head h3{font-size:1.2rem;letter-spacing:-.015em;}
.checker__head p{font-size:13.5px;}
.cq{min-width:0;margin:0;padding:20px 0 0;border:0;}
.cq legend{
  float:left;width:100%;display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:0;
  color:var(--ink);font-size:14.5px;font-weight:800;line-height:1.3;
}
.cq legend + *{clear:both;}
.cq .field__n{width:28px;height:28px;font-size:11px;}
.cq.is-shown{animation:rise .4s var(--ease);}
.pick--seg span{text-align:center;}
.pick--two{grid-template-columns:repeat(2,minmax(0,1fr));}

/* turnover gauge */
.gauge{position:relative;height:60px;margin-top:14px;--t:33.333%;--m:50%;}
.gauge::before{content:"";position:absolute;left:0;right:0;top:24px;height:8px;background:var(--azure-50);}
.gauge__zone{
  position:absolute;top:24px;right:0;left:var(--t);height:8px;
  background:repeating-linear-gradient(-45deg,var(--gold) 0 5px,var(--gold-300) 5px 10px);
  transition:left .45s var(--ease),opacity .3s;
}
.gauge__flag{position:absolute;top:4px;height:36px;left:var(--t);width:2px;margin-left:-1px;background:var(--navy-900);transition:left .45s var(--ease),opacity .3s;}
.gauge__flag small{
  position:absolute;top:-4px;left:4px;padding:1px 6px;background:var(--navy-900);color:var(--gold);
  font-size:9.5px;font-weight:800;letter-spacing:.12em;line-height:1.5;text-transform:uppercase;white-space:nowrap;
}
.gauge__pin{
  position:absolute;top:20px;left:var(--m);width:16px;height:16px;margin-left:-8px;
  background:var(--navy-900);border:3px solid #fff;box-shadow:0 0 0 1px var(--navy-900),0 4px 10px rgba(7,28,51,.25);
  transform:rotate(45deg);opacity:0;transition:left .45s var(--ease),opacity .3s,background-color .3s;
}
.gauge:not(.has-limit) .gauge__zone,.gauge:not(.has-limit) .gauge__flag{opacity:0;}
.gauge.has-pin .gauge__pin{opacity:1;}
.gauge.is-over .gauge__pin{background:var(--gold);box-shadow:0 0 0 1px var(--gold-ink),0 4px 10px rgba(7,28,51,.25);}
.gauge__ticks i{position:absolute;bottom:0;color:var(--muted);font-size:11px;font-style:normal;font-weight:700;line-height:1;white-space:nowrap;}
.gauge__ticks i:nth-child(1){left:0;}
.gauge__ticks i:nth-child(2){left:33.333%;transform:translateX(-50%);}
.gauge__ticks i:nth-child(3){left:66.667%;transform:translateX(-50%);}
.gauge__ticks i:nth-child(4){right:0;}

/* verdict */
.verdict{
  display:flex;align-items:flex-start;gap:14px;margin:22px 0 14px;padding:16px;
  background:var(--ivory);border-left:3px solid #C9D2DE;
  transition:background-color .3s,border-color .3s;
}
.verdict.is-new{animation:pop .4s var(--ease);}
.verdict__ico{display:grid;place-items:center;flex:none;width:40px;height:40px;background:#fff;color:var(--muted);font-size:16px;transition:background-color .3s,color .3s;}
.verdict strong{display:block;color:var(--ink);font-size:15.5px;line-height:1.3;}
.verdict p{margin-top:3px;font-size:13.5px;line-height:1.5;}
.verdict[data-verdict="must"]{background:var(--gold-50);border-color:var(--gold);}
.verdict[data-verdict="must"] .verdict__ico{background:var(--gold);color:var(--navy-900);}
.verdict[data-verdict="close"]{background:var(--azure-50);border-color:var(--azure);}
.verdict[data-verdict="close"] .verdict__ico{background:var(--azure);color:#fff;}
.verdict[data-verdict="optional"]{background:#E6F4EE;border-color:var(--ok);}
.verdict[data-verdict="optional"] .verdict__ico{background:#0F7B55;color:#fff;}
.checker .btn--dark{background:#128C4B;}
@media (hover:hover){ .checker .btn--dark:hover{background:var(--navy-900);} }
.checker__note{margin-top:12px;color:var(--muted);font-size:12px;line-height:1.5;text-align:center;}

@media (min-width:960px){
  .ov__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:start;}
  .checker{padding:30px 30px 26px;}
}
/* only pin the checker when the whole card fits on screen */
@media (min-width:960px) and (min-height:980px){
  .checker{position:sticky;top:calc(var(--appbar-h) + 88px);}
}

/* =========================================================
   SERVICE DETAILS — WHAT'S INCLUDED
   ========================================================= */
.incl{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;background:var(--line-warm);border:1px solid var(--line-warm);}
.inc{position:relative;display:flex;flex-direction:column;padding:26px 22px;background:#fff;transition:background-color .4s;}
.inc::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease);
}
.inc__top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px;}
.inc__ico{display:grid;place-items:center;width:54px;height:54px;background:var(--azure-50);color:var(--azure);font-size:21px;transition:background-color .4s,color .4s;}
.inc__n{
  font-size:2.4rem;font-weight:800;line-height:.9;letter-spacing:-.04em;
  color:transparent;-webkit-text-stroke:1.2px #C6CFDB;transition:-webkit-text-stroke-color .4s;
}
.inc h3{margin-bottom:8px;font-size:1.15rem;letter-spacing:-.015em;transition:color .4s;}
.inc p{margin-bottom:18px;font-size:14px;transition:color .4s;}
.codes{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;}
.codes li{
  padding:3px 8px;border:1px dashed #B9C4D2;color:var(--navy-700);
  font-size:11.5px;font-weight:800;letter-spacing:.06em;line-height:1.5;
  transition:border-color .4s,color .4s;
}
@media (hover:hover){
  .inc:hover{background:var(--navy-900);}
  .inc:hover::before{transform:scaleX(1);}
  .inc:hover h3{color:#fff;}
  .inc:hover p{color:var(--on-dark);}
  .inc:hover .inc__ico{background:var(--gold);color:var(--navy-900);}
  .inc:hover .inc__n{-webkit-text-stroke-color:rgba(255,255,255,.28);}
  .inc:hover .codes li{border-color:rgba(255,255,255,.25);color:var(--gold-300);}
}
@media (min-width:600px){ .incl{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1100px){
  .incl{grid-template-columns:repeat(4,minmax(0,1fr));}
  .inc{padding:36px 30px 32px;}
  .inc__ico{width:60px;height:60px;font-size:23px;}
}

/* =========================================================
   SERVICE DETAILS — PROCESS ROUTE
   ========================================================= */
.process{position:relative;overflow:hidden;}
.process::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(80% 70% at 15% 100%,#000,transparent 75%);
  mask-image:radial-gradient(80% 70% at 15% 100%,#000,transparent 75%);
}
.process .wrap{position:relative;}
.route{position:relative;display:grid;gap:14px;padding-left:48px;--p:0;}
.route::before,.route::after{content:"";position:absolute;left:17px;top:32px;bottom:var(--end,32px);width:2px;}
.route::before{background:var(--line-dark);}
.route::after{background:linear-gradient(var(--gold),var(--azure-300));transform-origin:top;transform:scaleY(var(--p));}
.route__step{
  position:relative;padding:20px 20px 22px;
  background:rgba(255,255,255,.03);border:1px solid var(--line-dark);
  transition:border-color .4s,background-color .4s;
}
.route__node{
  position:absolute;z-index:1;left:-48px;top:14px;display:grid;place-items:center;width:36px;height:36px;
  background:var(--navy-900);border:1px solid rgba(255,255,255,.22);color:var(--on-dark);font-size:14px;
  transition:background-color .4s,border-color .4s,color .4s,box-shadow .4s;
}
.route__n{display:inline-block;color:var(--azure-300);font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;}
.route__step h3{margin:8px 0 6px;font-size:1.2rem;letter-spacing:-.015em;}
.route__step p{font-size:14.5px;}
.route__out{
  display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:5px 10px;
  background:rgba(255,255,255,.05);color:#D5DEEA;font-size:12.5px;font-weight:700;line-height:1.4;
  transition:background-color .4s,color .4s;
}
.route__out i{color:var(--on-dark);font-size:10px;transition:color .4s;}
.route__step.is-past{border-color:rgba(242,177,52,.32);}
.route__step.is-past .route__node{background:var(--gold);border-color:var(--gold);color:var(--navy-900);box-shadow:0 0 0 6px rgba(242,177,52,.16);}
.route__step.is-past .route__out{background:rgba(242,177,52,.12);color:var(--gold-300);}
.route__step.is-past .route__out i{color:var(--gold);}
@media (hover:hover) and (max-width:959px){ .route__step:hover{background:rgba(255,255,255,.06);} }

@media (min-width:960px){
  .route{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:0;}
  .route::before,.route::after{left:10%;right:10%;top:39px;bottom:auto;width:auto;height:2px;}
  .route::after{background:linear-gradient(90deg,var(--gold),var(--azure-300));transform-origin:left;transform:scaleX(var(--p));transition:transform .2s linear;}
  .route__step{display:flex;flex-direction:column;align-items:center;padding:0 18px;background:none;border:0;text-align:center;}
  .route__node{position:relative;left:auto;top:auto;width:80px;height:80px;margin-bottom:28px;font-size:26px;}
  .route__node::after{content:"";position:absolute;inset:-9px;border:1px dashed rgba(255,255,255,.14);transition:border-color .4s;}
  .route__step.is-past .route__node{box-shadow:0 0 0 9px rgba(242,177,52,.14);}
  .route__step.is-past .route__node::after{border-color:rgba(242,177,52,.45);}
  .route__step h3{font-size:1.25rem;}
  .route__out{margin-top:18px;}
}

/* =========================================================
   SERVICE DETAILS — MONTH CALENDAR + LATE-FEE ESTIMATOR
   ========================================================= */
.cal__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;}

.month{padding:22px 18px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);}
.month__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;}
.month__label{display:block;color:var(--azure);font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;}
.month__name{display:block;color:var(--ink);font-size:1.5rem;font-weight:800;line-height:1.2;letter-spacing:-.025em;}
.month__ico{display:grid;place-items:center;flex:none;width:48px;height:48px;background:var(--navy-900);color:var(--gold);font-size:19px;}
.month__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:20px;}
.month__grid:empty{display:none;}
.month__dow{padding-bottom:4px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-align:center;}
.month__day{
  position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  aspect-ratio:1;background:var(--ivory);color:var(--ink);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;
}
.month__day b{font-weight:inherit;line-height:1;}
.month__day small{display:none;}
.month__day.is-pad{background:none;}
.month__day.is-past{color:#A3AEBD;}
.month__day.is-today{box-shadow:inset 0 0 0 2px var(--azure);color:var(--azure);font-weight:800;}
.month__day.is-monthly{background:var(--navy-900);color:#fff;font-weight:800;}
.month__day.is-qrmp{background:var(--gold);color:var(--navy-900);font-weight:800;}
.month__day.is-due.is-past{opacity:.45;}
.month__day.is-today.is-due{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px var(--azure);}
.month__day.is-next::after{content:"";position:absolute;inset:-3px;border:2px solid var(--gold);animation:fab-ping 2.4s var(--ease) infinite;pointer-events:none;}
.month__day.is-qrmp.is-next::after{border-color:var(--navy-900);}
@media (min-width:600px){
  .month__day small{display:block;font-size:9px;font-weight:800;letter-spacing:.03em;line-height:1;opacity:.85;}
}
.month__list{display:grid;border-top:1px solid var(--line);}
.month__list li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);transition:opacity .3s;}
.month__list b{display:grid;place-items:center;flex:none;width:44px;height:44px;font-size:1.05rem;font-weight:800;}
.month__list [data-kind="monthly"] b{background:var(--navy-900);color:#fff;}
.month__list [data-kind="qrmp"] b{background:var(--gold);color:var(--navy-900);}
.month__list li > span:nth-child(2){flex:1;min-width:0;}
.month__list strong{display:block;color:var(--ink);font-size:14.5px;line-height:1.3;}
.month__list small{display:block;font-size:12.5px;line-height:1.4;}
.month__left{flex:none;padding:4px 9px;background:var(--ivory);color:var(--muted);font-size:11.5px;font-weight:700;white-space:nowrap;}
.month__list li.is-over{opacity:.55;}
.month__list li.is-next .month__left{background:var(--gold-50);color:var(--gold-ink);}
.month__list li.is-today .month__left{background:#FBEDE8;color:#B4452F;}
.month__note{display:flex;gap:10px;margin-top:16px;color:var(--muted);font-size:12.5px;line-height:1.55;}
.month__note i{margin-top:3px;color:var(--azure);}

.fee{position:relative;overflow:hidden;padding:26px 20px;background:var(--navy-900);color:var(--on-dark);}
.fee::after{content:"";position:absolute;right:-80px;top:-80px;width:240px;height:240px;border:34px solid rgba(255,255,255,.04);pointer-events:none;}
.fee > *{position:relative;z-index:1;}
.fee__head h3{margin-top:14px;color:#fff;font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem);letter-spacing:-.025em;}
.fee__head .hl{color:var(--gold);}
.fee__q{min-width:0;margin:22px 0 0;padding:0;border:0;}
.fee__q legend,.fee__label{
  display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-bottom:10px;padding:0;
  color:#fff;font-size:12px;font-weight:800;letter-spacing:.12em;line-height:1.4;text-transform:uppercase;
}
.fee__q legend{float:left;}
.fee__q legend + *{clear:both;}
.fee__label output{flex:none;padding:3px 10px;background:var(--gold);color:var(--navy-900);font-size:13px;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums;}
.fee__chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
.fee__chips label{position:relative;display:flex;cursor:pointer;}
.fee__chips input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;}
.fee__chips span{
  display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;padding:6px 10px;
  border:1px solid var(--line-dark);color:#D5DEEA;font-size:13px;font-weight:700;line-height:1.3;text-align:center;
  transition:background-color .2s,border-color .2s,color .2s;
}
.fee__chips input:checked + span{background:var(--gold);border-color:var(--gold);color:var(--navy-900);}
.fee__chips input:focus-visible + span{outline:3px solid rgba(108,199,245,.6);outline-offset:2px;}
@media (hover:hover){ .fee__chips label:hover input:not(:checked) + span{border-color:rgba(255,255,255,.45);color:#fff;} }
@media (min-width:600px) and (max-width:959px),(min-width:1280px){ .fee__chips{grid-template-columns:repeat(4,minmax(0,1fr));} }

.fee input[type="range"]{-webkit-appearance:none;appearance:none;display:block;width:100%;height:28px;margin:0;background:transparent;cursor:pointer;--fill:16.2%;}
.fee input[type="range"]::-webkit-slider-runnable-track{height:6px;background:linear-gradient(90deg,var(--gold) var(--fill),rgba(255,255,255,.16) var(--fill));}
.fee input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-9px;background:#fff;border:5px solid var(--gold);box-shadow:0 4px 12px rgba(0,0,0,.35);}
.fee input[type="range"]::-moz-range-track{height:6px;background:rgba(255,255,255,.16);}
.fee input[type="range"]::-moz-range-progress{height:6px;background:var(--gold);}
.fee input[type="range"]::-moz-range-thumb{width:14px;height:14px;background:#fff;border:5px solid var(--gold);border-radius:0;box-shadow:0 4px 12px rgba(0,0,0,.35);}
.fee input[type="range"]:focus-visible{outline:3px solid rgba(108,199,245,.6);outline-offset:4px;}
.fee__scale{display:flex;justify-content:space-between;margin-top:2px;color:rgba(255,255,255,.4);font-size:11px;font-weight:700;}
.fee__scale i{font-style:normal;}

.fee__money{display:flex;background:rgba(255,255,255,.05);border:1px solid var(--line-dark);transition:border-color .2s;}
.fee__money:focus-within{border-color:var(--gold);}
.fee__money > span{display:grid;place-items:center;flex:none;width:48px;background:var(--gold);color:var(--navy-900);font-size:17px;font-weight:800;}
.fee__money input{
  flex:1;min-width:0;height:52px;padding:0 16px;border:0;border-radius:0;outline:0;background:none;
  color:#fff;font:inherit;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;
}

.fee__out{margin:24px 0 20px;padding:20px 18px;background:rgba(255,255,255,.05);border:1px solid var(--line-dark);border-top:3px solid var(--gold);}
.fee__total small{display:block;color:var(--on-dark);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.fee__total b{display:block;margin-top:6px;color:#fff;font-size:clamp(2.4rem,1.6rem + 2.6vw,3.6rem);font-weight:800;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;}
.fee__split{display:flex;height:8px;margin:16px 0 14px;background:rgba(255,255,255,.1);}
.fee__split i{display:block;flex:0 0 0%;height:100%;transition:flex-basis .4s var(--ease);}
.fee__split [data-fee-bar-late],.fee__key--late{background:var(--gold);}
.fee__split [data-fee-bar-int],.fee__key--int{background:var(--azure-300);}
.fee__rows{display:grid;gap:12px;margin:0;}
.fee__rows > div{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.fee__rows dt{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;color:#fff;font-size:14px;font-weight:700;}
.fee__rows dt small{flex-basis:100%;padding-left:20px;color:var(--on-dark);font-size:12px;font-weight:500;}
.fee__key{flex:none;width:10px;height:10px;}
.fee__rows dd{margin:0;color:#fff;font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;}
.fee__note{margin-top:14px;color:rgba(167,182,201,.85);font-size:12px;line-height:1.55;}

@media (min-width:960px){
  .cal__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px;align-items:stretch;}
  .month{display:flex;flex-direction:column;padding:30px 32px;}
  .month__grid{flex:1;grid-template-rows:auto;grid-auto-rows:minmax(clamp(48px,4.4vw,66px),1fr);}
  .month__day{aspect-ratio:auto;font-size:14px;}
  .month__list{grid-template-columns:1fr 1fr;column-gap:28px;}
  .fee{padding:34px 34px 30px;}
}

/* =========================================================
   SERVICE DETAILS — PLANS
   ========================================================= */
.plans{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;}
.plan{
  position:relative;overflow:hidden;display:flex;flex-direction:column;padding:30px 24px 26px;
  background:#fff;border:1px solid var(--line-warm);
  transition:transform .35s var(--ease),box-shadow .35s;
}
.plan__word{
  position:absolute;right:-.05em;top:-.14em;pointer-events:none;user-select:none;
  font-size:5.5rem;font-weight:800;line-height:1;letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1.2px var(--line-warm);
}
.plan__tag{position:relative;align-self:flex-start;padding:4px 10px;background:var(--azure-50);color:var(--azure);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.plan h3{position:relative;margin:18px 0 8px;font-size:1.55rem;letter-spacing:-.025em;}
.plan > p{position:relative;font-size:14.5px;}
.plan__list{display:grid;margin:22px 0;border-top:1px solid var(--line);}
.plan__list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:14.5px;font-weight:600;line-height:1.4;}
.plan__list i{display:grid;place-items:center;flex:none;width:24px;height:24px;background:var(--gold-50);color:var(--gold-ink);font-size:11px;}
.plan > .plan__price{display:flex;align-items:center;gap:10px;margin:auto 0 16px;color:var(--ink);font-size:14px;font-weight:700;}
.plan__price i{color:var(--azure);}
.plan__ribbon{position:absolute;z-index:1;top:0;left:0;right:0;padding:6px;background:var(--gold);color:var(--navy-900);font-size:11px;font-weight:800;letter-spacing:.16em;text-align:center;text-transform:uppercase;}
.plan--star{padding-top:54px;background:var(--navy-900);border-color:var(--navy-900);color:var(--on-dark);box-shadow:var(--sh-2);}
.plan--star .plan__word{top:20px;-webkit-text-stroke-color:rgba(255,255,255,.1);}
/* gold at 14% over navy, but opaque so the outlined word doesn't show through */
.plan--star .plan__tag{background:#283133;color:var(--gold-300);}
.plan--star h3{color:#fff;}
.plan--star .plan__list{border-color:var(--line-dark);}
.plan--star .plan__list li{border-color:var(--line-dark);color:#fff;}
.plan--star .plan__list i{background:var(--gold);color:var(--navy-900);}
.plan--star > .plan__price{color:#fff;}
.plan--star .plan__price i{color:var(--gold);}
@media (hover:hover){ .plan:hover{transform:translateY(-6px);box-shadow:var(--sh-2);} }
@media (min-width:900px){
  .plans{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;}
  .plan{padding:44px 34px 36px;}
  .plan + .plan{border-left:0;}
  .plan--star{z-index:1;margin-block:-24px;padding:78px 38px 60px;}
  .plan--star .plan__word{top:26px;}
  .plan__word{font-size:6.5rem;}
}

/* =========================================================
   SERVICE DETAILS — RELATED SERVICES "ASK" CARD
   ========================================================= */
.svc--ask{background:linear-gradient(150deg,#14A0E6 0%,#0873B5 50%,#0B2847 100%);border-color:transparent;}
.svc--ask .svc__ico{margin-bottom:30px;background:var(--gold);color:var(--navy-900);}
.svc--ask h3{color:#fff;}
.svc--ask p{color:#D6E9F8;}
.svc--ask .svc__go{border-color:rgba(255,255,255,.2);color:#fff;}
.svc--ask .svc__go i{background:var(--gold);color:var(--navy-900);}
/* The ask card closes a service grid, so it stretches across whatever is left
   of the last row and the grid never ends on empty cells, however many
   services there are. (.svc-wall is 2 columns up to 1099px, 3 after; a plain
   .svc-grid is 3 columns from 900px and a sideways rail below that.) */
@media (min-width:900px){
  .svc-grid:not(.svc-wall) > .svc--ask:nth-child(3n+2){grid-column:span 2;}
  .svc-grid:not(.svc-wall) > .svc--ask:nth-child(3n+1){grid-column:1 / -1;}
}
@media (min-width:600px) and (max-width:1099px){ .svc-wall > .svc--ask:nth-child(odd){grid-column:1 / -1;} }
@media (min-width:1100px){
  .svc-wall > .svc--ask:nth-child(3n+2){grid-column:span 2;}
  .svc-wall > .svc--ask:nth-child(3n+1){grid-column:1 / -1;}
}

/* Contact form — image captcha */
.a-captcha-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.a-captcha-row img{flex:none;width:160px;height:52px;border:1px solid var(--line);background:var(--ivory);}
.a-captcha-row .icon-btn{width:52px;height:52px;}
.a-captcha-row input{flex:1 1 150px;width:auto;min-width:0;text-transform:uppercase;letter-spacing:.12em;}
.a-captcha-row input::placeholder{text-transform:none;letter-spacing:0;}

/* =========================================================
   SERVICES LISTING (/services)
   Hero stage cards, sticky category nav + filter, and the
   grouped catalogue of every service.
   ========================================================= */
.phero__grid--wide{gap:40px;}

/* Hero — the four business stages as stacked cards */
.stagecards{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  width:100%;max-width:560px;margin-inline:auto;
  background:var(--line-dark);border:1px solid var(--line-dark);
  animation:pop .9s .2s var(--ease) both;
}
.stagecard{
  display:flex;flex-direction:column;gap:10px;
  padding:24px 20px;background:rgba(255,255,255,.03);
}
.stagecard i{color:var(--gold);font-size:22px;}
.stagecard b{color:#fff;font-size:1.05rem;font-weight:800;letter-spacing:-.02em;line-height:1.2;}
.stagecard small{color:var(--on-dark);font-size:12.5px;font-weight:600;}
.stagecard--1{background:rgba(242,177,52,.10);}
.stagecard--4{background:rgba(108,199,245,.08);}
@media (min-width:600px){ .stagecard{padding:30px 26px;} }

/* Sticky nav — same bar as a service detail page, plus a filter box */
.catfilter{display:none;}
.catnav .subnav__links a.is-active::after{background:var(--gold);}
@media (min-width:1100px){
  .catfilter{
    position:relative;display:flex;align-items:center;flex:none;width:240px;
    border:1px solid var(--line);background:#fff;
  }
  .catfilter i{position:absolute;left:12px;color:var(--muted);font-size:13px;pointer-events:none;}
  .catfilter input{
    width:100%;height:42px;padding:0 12px 0 34px;
    font:inherit;font-size:13.5px;color:var(--ink);background:transparent;border:0;
  }
  .catfilter input::-webkit-search-cancel-button{cursor:pointer;}
  .catfilter input:focus{outline:0;}
  .catfilter:focus-within{border-color:var(--azure);}
}

/* Core practice areas — a real grid here, never a swipe rail */
.svc-wall{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;overflow:visible;margin:0;padding:0;background:var(--line-warm);border:1px solid var(--line-warm);}
.svc-wall .svc{border:0;}
@media (min-width:600px){ .svc-wall{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1100px){ .svc-wall{grid-template-columns:repeat(3,minmax(0,1fr));} }

/* Catalogue */
.cat__count{margin-bottom:22px;color:var(--muted);font-size:14px;font-weight:700;}
.catgroup + .catgroup{margin-top:44px;}
.catgroup__head{
  display:flex;align-items:center;gap:16px;
  padding-bottom:18px;margin-bottom:22px;border-bottom:2px solid var(--navy-900);
}
.catgroup__head h3{font-size:clamp(1.3rem,1.05rem + 1vw,1.85rem);letter-spacing:-.03em;}
.catgroup__head p{margin-top:4px;font-size:14px;line-height:1.45;}
.catgroup__n{
  margin-left:auto;flex:none;
  color:transparent;-webkit-text-stroke:1.2px #C6CFDB;
  font-size:clamp(2.2rem,1.4rem + 2.4vw,3.4rem);font-weight:800;line-height:.9;letter-spacing:-.05em;
}
.catlist{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;background:var(--line-warm);border:1px solid var(--line-warm);}
.catlist__item{background:#fff;}
.catlist__item > a{
  position:relative;display:flex;align-items:center;gap:16px;height:100%;
  padding:18px 20px;transition:background-color .35s;
}
.catlist__ico{
  display:grid;place-items:center;flex:none;width:46px;height:46px;
  background:var(--azure-50);color:var(--azure);font-size:18px;
  transition:background-color .35s,color .35s;
}
.catlist__txt{min-width:0;}
.catlist__txt strong{display:block;color:var(--ink);font-size:15.5px;font-weight:700;line-height:1.3;letter-spacing:-.015em;transition:color .35s;}
.catlist__txt small{display:block;margin-top:3px;color:var(--muted);font-size:13px;line-height:1.45;transition:color .35s;}
.catlist__go{
  flex:none;margin-left:auto;color:var(--muted);font-size:13px;
  transition:transform .35s var(--ease),color .35s;
}
@media (hover:hover){
  .catlist__item > a:hover{background:var(--navy-900);}
  .catlist__item > a:hover .catlist__ico{background:var(--gold);color:var(--navy-900);}
  .catlist__item > a:hover .catlist__txt strong{color:#fff;}
  .catlist__item > a:hover .catlist__txt small{color:var(--on-dark);}
  .catlist__item > a:hover .catlist__go{color:var(--gold);transform:translateX(4px);}
}
@media (min-width:700px){ .catlist{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1200px){ .catlist{grid-template-columns:repeat(3,minmax(0,1fr));} }

/* Filter "no results" card */
.cat__empty{
  display:flex;flex-direction:column;align-items:flex-start;gap:16px;
  padding:34px 26px;background:#fff;border:1px solid var(--line-warm);
}
.cat__empty p{color:var(--text);font-size:15px;}
.cat__empty p strong{display:block;margin-bottom:4px;color:var(--ink);font-size:1.15rem;}

/* =========================================================
   SITEMAP (/sitemap)
   ========================================================= */
.smap.section{padding-top:40px;}
.smap-jump{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
.smap-jump .chip{gap:7px;}
.smap-jump .chip i{color:var(--azure);}
.smap-sec{padding-top:56px;scroll-margin-top:calc(var(--appbar-h) + 16px);}
.smap-sec__head{margin-bottom:24px;}
.smap-sec__head h2{margin-top:14px;font-size:clamp(1.6rem,1.1rem + 1.8vw,2.4rem);}

.smap-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;background:var(--azure-50);color:var(--azure);font-size:17px;transition:background-color .2s,color .2s;}
.smap strong{display:block;color:var(--ink);font-size:15px;line-height:1.3;}
.smap small{display:block;margin-top:2px;color:var(--muted);font-size:13px;line-height:1.4;}

/* Big clickable tiles — main pages and FAQ topics */
.smap-tiles{display:grid;grid-template-columns:1fr;gap:12px;}
.smap-tiles a{display:flex;align-items:center;gap:14px;height:100%;padding:16px;background:#fff;border:1px solid var(--line-warm);transition:border-color .2s,box-shadow .25s,transform .25s var(--ease);}
.smap-go{margin-left:auto;color:var(--muted);font-size:13px;transition:transform .25s var(--ease),color .2s;}
@media (hover:hover){
  .smap-tiles a:hover{border-color:var(--navy-900);box-shadow:var(--sh-1);transform:translateY(-2px);}
  .smap-tiles a:hover .smap-ico,.smap-card__head:hover .smap-ico{background:var(--navy-900);color:var(--gold);}
  .smap-tiles a:hover .smap-go{color:var(--azure);transform:translateX(4px);}
}

/* Group cards — services by category, articles by topic */
.smap-grid{display:grid;grid-template-columns:1fr;gap:16px;align-items:start;}
.smap-card{background:#fff;border:1px solid var(--line-warm);border-top:3px solid var(--gold);}
.smap-card__head{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line);}
.smap-card__head:hover strong{color:var(--azure);}
.smap-list{padding:10px 20px 16px;}
.smap-list li + li{border-top:1px dashed var(--line);}
.smap-list a{position:relative;display:block;padding:10px 0 10px 18px;color:var(--text);font-size:14.5px;line-height:1.45;transition:color .2s;}
.smap-list a::before{content:"";position:absolute;left:0;top:1.05em;width:7px;height:7px;border-top:2px solid var(--gold);border-right:2px solid var(--gold);transform:rotate(45deg);}
.smap-list a:hover{color:var(--azure);}

@media (min-width:600px){
  .smap-tiles{grid-template-columns:repeat(2,1fr);}
  .smap-grid{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:1000px){
  .smap-tiles{grid-template-columns:repeat(3,1fr);}
  .smap-grid{grid-template-columns:repeat(3,1fr);}
}

/* =========================================================
   GET A QUOTE POPUP (dialog#quote in _Layout, logic in main.js)
   Bottom sheet on phones, centred two-column modal from 900px.
   ========================================================= */
.quote{
  position:fixed;inset:auto 0 0 0;width:100%;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;
  background:#fff;border-top:3px solid var(--gold);
}
.quote[open]{animation:sheet-up .4s var(--ease);}
.quote.is-closing{animation:sheet-down .26s ease-in forwards;}
.quote__side{display:none;}
.quote__main{padding:18px 18px calc(20px + env(safe-area-inset-bottom,0px));}
.quote__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;}
.quote__head h2{margin-top:6px;font-size:clamp(1.35rem,1.1rem + 1vw,1.7rem);}
.quote__form{display:grid;gap:16px;}
.quote__form[hidden],.quote__done[hidden]{display:none;}
.quote__row{display:grid;gap:16px;}
.input select{
  width:100%;min-height:52px;padding:13px 44px 13px 16px;
  background:var(--ivory) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23071C33' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center;
  border:1px solid var(--line-warm);border-bottom:2px solid #C9D2DE;border-radius:0;
  font:inherit;font-size:16px;color:var(--ink);cursor:pointer;
  -webkit-appearance:none;appearance:none;
  transition:border-color .2s,background-color .2s,box-shadow .2s;
}
.input select:focus{outline:0;background-color:#fff;border-color:var(--azure);box-shadow:0 0 0 3px rgba(20,160,230,.15);}
.input select:invalid{color:#8C99AA;}
.input select option{color:var(--ink);}
.quote__captcha{display:flex;align-items:center;gap:8px;}
.quote__captcha img{flex:none;width:130px;height:52px;object-fit:cover;border:1px solid var(--line);background:var(--ivory);}
.quote__captcha input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.12em;}
.quote__captcha input::placeholder{text-transform:none;letter-spacing:0;}
.quote__alert{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#FFF1EF;border-left:3px solid var(--err);color:var(--err);font-size:13.5px;font-weight:600;line-height:1.45;}
.quote__alert::before{content:"\f071";font:900 13px/1 'Font Awesome 6 Free';}
.quote__alert[hidden]{display:none;}
.quote__form .btn.is-busy{pointer-events:none;opacity:.75;}
.quote__form .btn.is-busy i{animation:spin 1s linear infinite;}
.quote__form .btn.is-busy i::before{content:"\f110";font-family:'Font Awesome 6 Free';font-weight:900;}
.quote__alt{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding-top:14px;border-top:1px dashed var(--line-warm);color:var(--muted);font-size:13.5px;}
.quote__alt a{display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-weight:700;}
.quote__alt a i{color:var(--azure);}
@media (hover:hover){ .quote__alt a:hover{color:var(--azure);} }
.quote__done{padding:18px 0 6px;text-align:center;}
.quote__done:focus{outline:0;}
.quote__done-ico{display:inline-grid;place-items:center;width:68px;height:68px;margin-bottom:18px;background:#E6F4EE;color:#0F7B55;font-size:26px;}
.quote__done h3{margin-bottom:10px;font-size:1.4rem;}
.quote__done p{max-width:420px;margin-inline:auto;}
.quote__done p strong{color:var(--ink);white-space:nowrap;}
.quote__done-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;}

@media (min-width:600px){
  .quote{left:50%;right:auto;bottom:16px;width:580px;translate:-50% 0;}
  .quote__main{padding:24px 28px 26px;}
  .quote__row{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:900px){
  .quote{
    inset:0;display:none;width:min(900px,calc(100% - 48px));height:fit-content;max-height:calc(100dvh - 48px);
    margin:auto;translate:none;border-top:0;box-shadow:var(--sh-2);
  }
  .quote[open]{display:grid;grid-template-columns:300px minmax(0,1fr);animation:pop-in .3s var(--ease);}
  .quote.is-closing{animation:pop-out .2s ease-in forwards;}
  .quote__side{
    position:relative;display:flex;flex-direction:column;gap:22px;padding:34px 30px;overflow:hidden;
    background:var(--navy-900);border-top:3px solid var(--gold);color:var(--on-dark);
  }
  .quote__side::after{
    content:"";position:absolute;right:-70px;bottom:-70px;width:220px;height:220px;
    border:36px solid rgba(242,177,52,.08);border-radius:50%;pointer-events:none;
  }
  .quote__pitch{color:#fff;font-size:1.45rem;font-weight:800;line-height:1.25;letter-spacing:-.02em;}
  .quote__points{display:grid;gap:14px;font-size:14px;line-height:1.45;}
  .quote__points li{display:flex;gap:12px;}
  .quote__points i{display:grid;place-items:center;flex:none;width:22px;height:22px;background:var(--gold);color:var(--navy-900);font-size:11px;}
  .quote__hours{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line-dark);font-size:13px;}
  .quote__hours i{color:var(--gold);}
  .quote__main{padding:28px 32px 28px;border-top:3px solid var(--gold);overflow-y:auto;max-height:calc(100dvh - 48px);}
}

/* Compact sizing so the whole quote form fits without scrolling */
.quote__main{padding-top:14px;}
.quote__head{align-items:center;margin-bottom:12px;}
.quote__head .eyebrow{display:none;}
.quote__head h2{margin-top:0;font-size:1.25rem;}
.quote__head .icon-btn{width:40px;height:40px;}
.quote__form{gap:10px;}
.quote__row{gap:10px;}
.quote__row--pair{grid-template-columns:repeat(2,minmax(0,1fr));}
.quote .input{gap:5px;}
.quote .input label{font-size:12.5px;}
.quote .input input,.quote .input select{min-height:44px;padding-top:9px;padding-bottom:9px;}
.quote .input__pre span{padding:0 10px;font-size:13px;}
.quote .field__err{gap:6px;margin-top:0;font-size:11.5px;line-height:1.3;}
.quote__captcha img{width:118px;height:44px;}
.quote__captcha .icon-btn{width:44px;height:44px;}
.quote__form .btn{min-height:50px;margin-top:2px;}
.quote__alt{padding-top:10px;font-size:12.5px;line-height:1.5;}
.quote__alert{padding:9px 12px;font-size:13px;}
@media (min-width:600px){
  .quote__main{padding:20px 26px 22px;}
  .quote__head .eyebrow{display:inline-flex;}
  .quote__head h2{margin-top:4px;font-size:1.4rem;}
  .quote__form,.quote__row{gap:12px;}
}
@media (min-width:900px){
  .quote__main{padding:26px 30px 24px;}
  .quote__side{padding:30px 28px;}
}

/* Quote popup: multi-select services (button + checklist laid over the popup body) */
.quote__main{position:relative;}
.quote__pick{
  display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:9px 16px;
  background:var(--ivory);border:1px solid var(--line-warm);border-bottom:2px solid #C9D2DE;border-radius:0;
  font:inherit;font-size:16px;color:var(--ink);text-align:left;cursor:pointer;
  transition:border-color .2s,background-color .2s,box-shadow .2s;
}
.quote__pick span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.quote__pick span.is-empty{color:#8C99AA;}
.quote__pick i{flex:none;color:var(--ink);font-size:12px;}
.quote__pick:focus-visible{outline:0;background:#fff;border-color:var(--azure);box-shadow:0 0 0 3px rgba(20,160,230,.15);}
.quote__pick[aria-invalid="true"]{border-color:rgba(180,35,24,.55);border-bottom-color:var(--err);background:#FFF8F7;}
.quote__panel{
  position:absolute;z-index:3;inset:0;display:flex;flex-direction:column;gap:12px;
  padding:16px 18px calc(18px + env(safe-area-inset-bottom,0px));background:#fff;
}
.quote__panel[hidden]{display:none;}
.quote__panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:2px solid var(--navy-900);}
.quote__panel-head strong{color:var(--ink);font-size:1.15rem;font-weight:800;}
.quote__panel-head small{color:var(--muted);font-size:12.5px;font-weight:600;}
.quote__panel-list{flex:1;min-height:0;display:grid;align-content:start;gap:6px;overflow-y:auto;overscroll-behavior:contain;}
.quote__opt{position:relative;display:flex;cursor:pointer;}
.quote__opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;}
.quote__opt span{
  display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:8px 14px;
  background:#fff;border:1px solid var(--line);color:var(--ink);font-size:14.5px;font-weight:600;line-height:1.3;
  transition:background-color .2s,border-color .2s,color .2s;
}
.quote__opt span::before{
  content:"";display:grid;place-items:center;flex:none;order:2;width:20px;height:20px;margin-left:auto;
  border:1.5px solid #B9C4D2;background:#fff;font:900 11px/1 'Font Awesome 6 Free';color:transparent;
  transition:background-color .2s,border-color .2s,color .2s;
}
.quote__opt span i{flex:none;width:18px;color:var(--azure);text-align:center;}
.quote__opt input:checked + span{background:var(--navy-900);border-color:var(--navy-900);color:#fff;}
.quote__opt input:checked + span i{color:var(--gold);}
.quote__opt input:checked + span::before{content:"\f00c";background:var(--gold);border-color:var(--gold);color:var(--navy-900);}
.quote__opt input:focus-visible + span{outline:3px solid rgba(20,160,230,.55);outline-offset:-3px;}
@media (hover:hover){ .quote__opt:hover input:not(:checked) + span{border-color:var(--navy-900);} }
@media (min-width:600px){ .quote__panel{padding:20px 26px 22px;} }
@media (min-width:900px){ .quote__panel{padding:26px 30px 24px;} }
