/* v16 (11 Sep 2026): the four woff2 faces left this file for assets/fonts/. They were 68 KB of the
   80 KB this stylesheet cost gzipped, and a base64 payload cannot be cached or fetched in parallel
   with the CSS it blocks. font-display stays swap; family, weight and style are unchanged. */
@font-face{font-family:'Vesper Libre';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/vesper-libre-400.woff2) format("woff2")}
@font-face{font-family:'Vesper Libre';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/vesper-libre-700.woff2) format("woff2")}
@font-face{font-family:'Mukta';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/mukta-400.woff2) format("woff2")}
@font-face{font-family:'Mukta';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/mukta-600.woff2) format("woff2")}
  :root{color-scheme:only dark;
    --g:#0B0709;--r:#150F13;--h:#3A2B33;--ink:#F2EAEE;--i2:#CFC2C9;--i3:#A99AA2;
    --mag:#DA1979;--press:#B91462;--pink:#FF5FA5;--champ:#E4C9A8;
    --d:'Vesper Libre',Georgia,serif;--b:'Mukta','Segoe UI',sans-serif}
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--g);color:var(--ink);font-family:var(--b);font-size:16px;line-height:1.55;overflow-x:hidden;
    background-image:radial-gradient(72vw 56vw at 82% 2%,rgba(218,25,121,.13),rgba(218,25,121,0) 62%),
    radial-gradient(80vw 62vw at 2% 52%,rgba(255,95,165,.05),rgba(255,95,165,0) 64%);
    background-attachment:fixed;background-repeat:no-repeat}
  .grain{position:fixed;inset:0;z-index:40;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)'/%3E%3C/svg%3E");background-size:160px 160px}
  img{display:block;max-width:100%}
  .wrap{position:relative;z-index:2;max-width:560px;margin:0 auto}

  .mast{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0}
  .mast .m1{font-size:12px;font-weight:600;letter-spacing:.22em;color:var(--ink)}
  .mast .m1 span{color:var(--pink)}
  .pill{font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--i3);
    border:1px solid var(--h);padding:4px 9px;border-radius:2px}

  .cover{padding:30px 20px 10px}
  .cov-eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag)}
  h1{font-family:var(--d);font-weight:700;font-size:clamp(34px,9vw,44px);line-height:1.04;letter-spacing:-.01em;margin:10px 0 8px}
  .cov-sub{font-size:14.5px;color:var(--i2);max-width:30ch}
  .cov-img{margin:18px -20px 0}
  .cov-img img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
  .cov-cap{padding:8px 20px 0;font-size:11px;letter-spacing:.06em;color:var(--i3)}

  section.lane{padding:34px 0 0}
  .lane-h{padding:0 20px 12px;display:flex;align-items:baseline;gap:10px}
  .lane-h .t{font-family:var(--d);font-weight:400;font-size:24px}
  .lane-h .n{font-size:11px;color:var(--i3);letter-spacing:.08em}
  .rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 20px 6px;scrollbar-width:none}
  .rail::-webkit-scrollbar{display:none}
  .tile{flex:0 0 calc((100% - 12px)/2);max-width:262px;scroll-snap-align:start;cursor:pointer;border:0;background:none;text-align:left;padding:0;color:inherit;font:inherit}
  .tile img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:var(--r)}
  .tile .cap{display:flex;align-items:center;justify-content:space-between;padding:9px 2px 0;font-size:14px;color:var(--ink)}
  .tile .cap svg{flex:0 0 14px;opacity:.55}
  .tile:active img{opacity:.88}

  .how{padding:44px 20px 0}
  .how h2,.pay h2,.endcap h2,.visit h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:14px}
  .step{display:grid;grid-template-columns:34px 1fr;gap:0 12px;padding:10px 0;border-top:1px solid var(--h);align-items:baseline}
  .step .no{font-family:var(--d);font-size:15px;color:var(--pink)}
  .step p{font-size:15px;color:var(--i2)}
  .how-img{margin:20px -20px 0}
  .how-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
  .how-cap{padding:8px 0 0;font-size:11px;letter-spacing:.06em;color:var(--i3)}

  .pay{padding:44px 20px 0}
  .pay p{font-size:15px;color:var(--i2);padding:9px 0;border-top:1px solid var(--h);max-width:34ch}
  .pay p b{color:var(--ink);font-weight:600}

  .endcap{padding:48px 20px 0;text-align:left}
  .endcap p{font-size:14.5px;color:var(--i2);margin-bottom:16px;max-width:32ch}
  .cta{display:inline-block;background:var(--press);color:#fff;text-decoration:none;font-weight:600;font-size:15px;
    padding:13px 22px;border-radius:3px}
  .gline{margin-top:14px;font-size:13px;color:var(--i3)}
  .gline a{color:var(--i2)}
  .star{display:inline-block;width:12px;height:12px;vertical-align:-1px;fill:var(--champ)}

  .visit{padding:48px 20px 0}
  .visit-img{margin:0 -20px 16px}
  .visit-img img{width:100%;aspect-ratio:3/2;object-fit:cover}
  .visit p{font-size:15px;color:var(--i2)}
  .visit .dir{display:inline-block;margin-top:10px;color:var(--pink);text-decoration:none;font-weight:600;font-size:14.5px}
  .visit .note{margin-top:10px;font-size:13px;color:var(--i3);max-width:36ch}

  .faq{padding:44px 20px 0}
  .faq details{border-top:1px solid var(--h)}
  .faq summary{padding:12px 0;font-size:15px;color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary:after{content:"+";color:var(--i3);font-size:18px}
  .faq details[open] summary:after{content:"–"}
  .faq .a{padding:0 0 14px;font-size:14.5px;color:var(--i2);max-width:40ch}
  .faq .a a{color:var(--pink);text-decoration:none;font-weight:600}

  footer{margin:54px 20px 0;padding:22px 0 46px;border-top:1px solid var(--champ)}
  footer .f1{font-size:12px;letter-spacing:.18em;font-weight:600}
  footer .f1 span{color:var(--pink)}
  footer p{margin-top:8px;font-size:12.5px;color:var(--i3)}

  dialog{border:0;padding:0;margin:auto auto 0;width:100%;max-width:560px;background:var(--r);color:var(--ink)}
  dialog::backdrop{background:rgba(11,7,9,.72)}
  .dw{position:relative}
  .dw img{width:100%;aspect-ratio:4/5;object-fit:cover;max-height:52vh}
  .dw .dx{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:50%;
    background:rgba(11,7,9,.66);color:var(--ink);font-size:17px;line-height:34px;text-align:center;cursor:pointer}
  .db{padding:16px 20px 22px}
  .db .dname{font-family:var(--d);font-size:23px;margin-bottom:4px}
  .db .dline{font-size:13.5px;color:var(--i3);margin-bottom:14px}
  .db .cta{width:100%;text-align:center}
  @media(min-width:561px){ .cov-img,.how-img,.visit-img{margin-left:0;margin-right:0} .cov-cap{padding-left:0} }

/* ===== service-page additions (4 Sep 2026) — shared by every /<service>/ page ===== */
.mast a{text-decoration:none;color:inherit}
.mast a.pill{color:var(--i3)}
.cov-sub a{color:var(--pink);text-decoration:none;font-weight:600}
.prose{padding:44px 20px 0}
.prose h2,.said h2,.areas h2,.more h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:12px}
.prose .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.prose p{font-size:15px;color:var(--i2);max-width:44ch;margin-top:10px}
.prose p b,.prose li b{color:var(--ink);font-weight:600}
.prose ul{list-style:none;max-width:44ch;margin-top:8px}
.prose li{font-size:15px;color:var(--i2);padding:9px 0;border-top:1px solid var(--h)}
.prose a,.areas a,.said a{color:var(--pink);text-decoration:none;font-weight:600}
.prose .sign{margin:18px -20px 0}
.prose .sign img{width:100%;aspect-ratio:3/2;object-fit:cover}
.prose .sign-cap{padding:8px 0 0;font-size:11px;letter-spacing:.06em;color:var(--i3)}
.said{padding:44px 20px 0}
.said blockquote{margin:0;padding:14px 0 4px;border-top:1px solid var(--h)}
.said blockquote p{font-size:17px;line-height:1.58;color:var(--i2);max-width:40ch}
.said blockquote p mark{background:none;color:var(--pink)}
.said .who{display:block;margin-top:8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--i3);font-style:normal}
.said .tr{font-size:13px;color:var(--i3);max-width:40ch;margin-top:6px}
.areas{padding:44px 20px 0}
.areas p{font-size:15px;color:var(--i2);max-width:44ch}
.areas .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.areas .chips span{font-size:12.5px;color:var(--i2);border:1px solid var(--h);padding:6px 10px;border-radius:2px}
.more{padding:44px 20px 0}
.more a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--h);color:var(--ink);text-decoration:none;font-size:15px;min-height:48px}
.more a span{color:var(--i3);font-size:12px;letter-spacing:.08em;text-align:right}
.loop{margin:18px -20px 0}
.loop video,.tile video{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:var(--r);display:block}
.loop .cap{padding:8px 20px 0;font-size:11px;letter-spacing:.06em;color:var(--i3)}
footer .fnav{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px}
footer .fnav a{font-size:12.5px;color:var(--i2);text-decoration:none;padding:6px 0}
@media(min-width:561px){ .prose .sign,.loop{margin-left:0;margin-right:0} .loop .cap{padding-left:0} }

/* ===== testimonial videos (4 Sep 2026, v2) — three poster cards per row, tap opens a full-width player ===== */
.vwrap{position:relative}
.vrail{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 8px;scrollbar-width:none}
.vrail::-webkit-scrollbar{display:none}
.vcard{flex:0 0 calc((100% - 20px)/3);max-width:170px;scroll-snap-align:start;position:relative;border:0;padding:0;background:none;cursor:pointer;text-align:left;color:inherit;font:inherit}
.vcard img{width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;background:var(--r);display:block;border-radius:2px}
.vcard .play{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:rgba(11,7,9,.66);display:flex;align-items:center;justify-content:center;pointer-events:none}
.vcard .play svg{width:13px;height:13px;fill:#fff;margin-left:2px}
.vcard .vcap{display:block;margin-top:7px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--i3);line-height:1.35}
.vcard:focus-visible{outline:2px solid var(--pink);outline-offset:2px}
.vhint{position:absolute;right:0;top:38%;background:rgba(11,7,9,.78);color:var(--ink);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:7px 9px;border-radius:2px 0 0 2px;display:none;pointer-events:none}
.vwrap.has-more .vhint{display:block}
.said .vnote{font-size:12.5px;color:var(--i3);margin:0 0 12px;max-width:44ch}
dialog.vdlg{border:0;padding:0;margin:auto;width:100%;max-width:420px;background:#000;color:var(--ink)}
dialog.vdlg::backdrop{background:rgba(11,7,9,.86)}
dialog.vdlg video{width:100%;max-height:82vh;aspect-ratio:9/16;object-fit:contain;background:#000;display:block}
dialog.vdlg .dx{position:absolute;top:10px;right:10px;z-index:2;width:34px;height:34px;border:0;border-radius:50%;background:rgba(11,7,9,.66);color:var(--ink);font-size:17px;line-height:34px;text-align:center;cursor:pointer}
dialog.vdlg .vname{padding:10px 14px 14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--i3)}

/* ===== top navigation chips (4 Sep 2026) — same row as the homepage, on every service page ===== */
.topnav{display:flex;flex-wrap:wrap;gap:8px;padding:14px 20px 0}
.topnav a{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--i2);
  border:1px solid var(--h);padding:6px 10px;border-radius:2px;text-decoration:none;white-space:nowrap;min-height:30px;line-height:16px}
.topnav a[aria-current="page"]{color:var(--ink);border-color:var(--pink)}
.topnav a:focus-visible{outline:2px solid var(--pink);outline-offset:2px}

/* 4 Sep 2026, v5: wider covers (3:2), two tiles per row, no half-visible tile at the edge */
.rail{scroll-padding:0 20px}

/* ===== prices (5 Sep 2026, v6) — the salon's printed rate card, dated. Appears only inside the prices section ===== */
.prices{padding:44px 20px 0}
.prices h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:8px}
.prices .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.prices .lead{font-size:15px;color:var(--i2);max-width:44ch}
.prices .lead a,.prices .ask a,.pt-note a{color:var(--pink);text-decoration:none;font-weight:600}
.pt-group{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--i3);margin:28px 0 -6px}
.pt-wrap{overflow-x:auto;margin-top:18px;scrollbar-width:none}
.pt-wrap::-webkit-scrollbar{display:none}
table.pt{width:100%;min-width:300px;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
table.pt caption{text-align:left;font-family:var(--d);font-weight:400;font-size:19px;color:var(--ink);padding:0 0 8px}
table.pt th{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--i3);text-align:right;padding:0 0 7px 10px;border-bottom:1px solid var(--h);white-space:normal;line-height:1.3;vertical-align:bottom}
table.pt th:first-child{text-align:left;padding-left:0}
table.pt td{padding:9px 0 9px 10px;border-bottom:1px solid var(--h);color:var(--ink);font-weight:600;text-align:right;white-space:nowrap;vertical-align:top}
table.pt td:first-child{text-align:left;padding-left:0;font-weight:400;color:var(--i2);white-space:normal;min-width:11ch}
table.pt td.e{color:var(--i3);font-weight:400}
table.pt td small{display:block;font-size:11.5px;font-weight:400;letter-spacing:.02em;color:var(--i3);margin-top:2px;white-space:normal}
.pt-note{margin-top:10px;font-size:12.5px;color:var(--i3);max-width:44ch}
.pt-date{margin-top:14px;font-size:11px;letter-spacing:.06em;color:var(--i3)}
.prices .ask{margin-top:14px;font-size:14.5px;color:var(--i2);max-width:40ch}
.pk{margin-top:16px;border-top:1px solid var(--h);padding-top:14px}
.pk .pk-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pk .pk-name{font-family:var(--d);font-size:20px;color:var(--ink)}
.pk .pk-price{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap}
.pk .pk-line{margin-top:4px;font-size:13px;color:var(--i3);max-width:40ch}
.pk ul{list-style:none;margin-top:10px;display:flex;flex-wrap:wrap;gap:6px 8px}
.pk li{font-size:12.5px;color:var(--i2);border:1px solid var(--h);padding:4px 9px;border-radius:2px}

/* ===================================================================================
   v7 — makeover block (5 Sep 2026). APPEND ONLY: nothing above this line is edited.
   Adds the components the bridal makeover needs: .money · .ladder · .pk-grid ·
   .proof · .trial-steps · .dates · .studio · .legal · .certainty, plus nav v2
   (13 chips, one scrolling row) and the footer privacy link.
   Palette, type scale, radii and spacing are the v6 ones — nothing new is introduced.
   The column is still .wrap = 560px, so every block is drawn for a 335px content
   width at 375px (20px page padding each side). Tables sit inside .pt-wrap.
   SPECIFICITY: the homepage carries its own inline copy of the v6 rules, and that
   copy loads after this file. Every v7 rule that must beat it is written one step
   heavier — nav.topnav, .pk-grid .pk, table.pt.ld. Do not "simplify" those selectors.
   =================================================================================== */

/* --- nav v2: 13 chips in one row that scrolls sideways; the current page is marked --- */
nav.topnav{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:20px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
nav.topnav::-webkit-scrollbar{display:none}
nav.topnav a{flex:0 0 auto;scroll-snap-align:start}
nav.topnav::after{content:"";flex:0 0 8px}
nav.topnav a[aria-current="page"]{background:rgba(218,25,121,.16);color:var(--ink);border-color:var(--pink)}

/* --- .money — the money sentence, the four numbers, the WhatsApp row --- */
.money{padding:44px 20px 0}
.money .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.money h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:12px}
.money .s{font-size:15px;line-height:1.62;color:var(--i2);max-width:44ch}
.money .s b{color:var(--ink);font-weight:600}
.money .nums{list-style:none;display:grid;grid-template-columns:1fr 1fr;margin-top:18px;border-top:1px solid var(--h)}
.money .nums li{padding:11px 10px 11px 0;border-bottom:1px solid var(--h)}
.money .nums .n{display:block;font-family:var(--d);font-size:21px;line-height:1.1;color:var(--ink);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.money .nums .l{display:block;margin-top:4px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--i3);line-height:1.35}
.money .row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:18px}
.money .row .alt{font-size:13.5px;color:var(--i3)}
.money .row .alt a{color:var(--pink);text-decoration:none;font-weight:600}
@media(min-width:561px){
  .money .nums{grid-template-columns:repeat(4,1fr)}
  .money .nums li{border-bottom:0}
  .money .nums .n{font-size:20px}
}

/* --- .ladder — four looks, each with its price and its one-line role.
       Markup: .ladder > .pt-wrap > table.pt.ld (two columns; the role is a <small>). --- */
.ladder{padding:44px 20px 0}
.ladder .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.ladder h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:10px}
.ladder .lead{font-size:15px;color:var(--i2);max-width:44ch}
.ladder .lead a,.ladder .pt-note a{color:var(--pink);text-decoration:none;font-weight:600}
table.pt.ld td:first-child{min-width:12ch;padding-right:10px;color:var(--ink);font-weight:600}
table.pt.ld td:first-child small{color:var(--i2);line-height:1.42;margin-top:4px;max-width:26ch}
table.pt.ld td:last-child{vertical-align:top}

/* --- .pk-grid — three package cards, stacked (the site is one 560px column).
       Price sits in the display face; the services read as a compact list. --- */
.pk-grid{margin-top:8px}
.pk-grid .pk{margin-top:16px;padding-top:16px}
.pk-grid .pk .pk-name{font-size:21px}
.pk-grid .pk .pk-price{font-family:var(--d);font-weight:400;font-size:22px;color:var(--ink);font-variant-numeric:tabular-nums}
.pk-grid .pk .pk-line{color:var(--i2);max-width:42ch}
.pk-grid .pk ul{display:block;margin-top:12px;max-width:42ch}
.pk-grid .pk li{position:relative;display:block;border:0;border-radius:0;padding:4px 0 4px 14px;font-size:13.5px;line-height:1.5;color:var(--i2)}
.pk-grid .pk li:before{content:"";position:absolute;left:0;top:13px;width:6px;height:1px;background:var(--i3)}
.pk-grid .pk .pk-cta{display:inline-block;margin-top:8px;padding:10px 0;color:var(--pink);
  text-decoration:none;font-weight:600;font-size:14.5px}

/* --- .proof — the dated rating line, then the testimonial cards (.vwrap/.vrail/.vcard, unchanged) --- */
.proof{padding:44px 20px 0}
.proof .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.proof h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:12px}
.proof .rate{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 10px;padding:14px 0;
  border-top:1px solid var(--h);border-bottom:1px solid var(--h)}
.proof .rate .score{font-family:var(--d);font-size:26px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.proof .rate .star{width:14px;height:14px;vertical-align:0}
.proof .rate p{flex:1 1 12ch;margin:0;font-size:14.5px;color:var(--i2);max-width:46ch}
.proof .rate p a{color:var(--pink);text-decoration:none;font-weight:600}
.proof .rate .when{flex:1 0 100%;margin-top:6px;font-size:11px;letter-spacing:.06em;color:var(--i3)}
.proof .vnote{margin:16px 0 10px;font-size:12.5px;color:var(--i3);max-width:44ch}
.proof .vgroup{margin-top:18px;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--i3)}

/* --- .trial-steps — three numbered steps; reuses .step from the v6 "How it works" block --- */
.trial-steps{margin-top:14px}
.trial-steps .step{padding:12px 0}
.trial-steps .step>div{min-width:0}
.trial-steps .step h3{margin:0;font-size:15px;font-weight:600;color:var(--ink)}
.trial-steps .step p{margin-top:4px;font-size:14.5px;color:var(--i2);max-width:38ch}

/* --- .dates — month, dates and a note. Markup: .dates > .pt-wrap > table.pt.dt --- */
.dates{padding:44px 20px 0}
.dates .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.dates h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:10px}
.dates .lead{font-size:15px;color:var(--i2);max-width:44ch}
.dates .lead a,.dates .pt-note a{color:var(--pink);text-decoration:none;font-weight:600}
table.pt.dt td{white-space:normal}
table.pt.dt td:first-child{min-width:9ch;padding-right:10px;color:var(--ink);font-weight:600}
table.pt.dt td:last-child{font-weight:600;font-variant-numeric:tabular-nums}
table.pt.dt td small{color:var(--i3);max-width:24ch;font-weight:400;line-height:1.4}
.dates .src{margin-top:12px;font-size:12.5px;color:var(--i3);max-width:44ch}
.dates .src a{color:var(--pink);text-decoration:none;font-weight:600}

/* --- .studio — the contact page's facts block --- */
.studio{padding:44px 20px 0}
.studio .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.studio h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:10px}
.studio p{font-size:15px;color:var(--i2);max-width:44ch;margin-top:10px}
.studio dl{margin-top:16px}
.studio dt{padding-top:12px;border-top:1px solid var(--h);font-size:10.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--i3)}
.studio dd{margin:5px 0 12px;font-size:15px;color:var(--ink);max-width:40ch}
.studio dd small{display:block;margin-top:4px;font-size:13px;color:var(--i3)}
.studio dd a{color:var(--pink);text-decoration:none;font-weight:600}
.studio .map{display:inline-block;padding:8px 0;color:var(--pink);text-decoration:none;font-weight:600;font-size:14.5px}

/* --- .legal — privacy policy prose --- */
.legal{padding:44px 20px 0}
.legal h2{font-family:var(--d);font-weight:400;font-size:22px;color:var(--ink);margin:26px 0 4px}
.legal h3{margin:16px 0 2px;font-size:14px;font-weight:600;color:var(--ink)}
.legal p{margin-top:9px;font-size:14.5px;color:var(--i2);max-width:46ch}
.legal p b,.legal li b{color:var(--ink);font-weight:600}
.legal ul{list-style:none;margin-top:10px;max-width:46ch}
.legal li{position:relative;padding:8px 0 8px 14px;border-top:1px solid var(--h);font-size:14.5px;color:var(--i2)}
.legal li:before{content:"";position:absolute;left:0;top:18px;width:6px;height:1px;background:var(--i3)}
.legal a{color:var(--pink);text-decoration:none;font-weight:600}
.legal .updated{margin-top:20px;font-size:11px;letter-spacing:.06em;color:var(--i3)}

/* --- .certainty — the homepage's short H2 blocks: one column on a phone, two on a wide screen --- */
.certainty{padding:44px 20px 0}
.certainty .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.certainty>h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:6px}
.certainty .grid{display:grid;grid-template-columns:1fr;column-gap:22px}
.certainty .c{padding:14px 0 6px;border-top:1px solid var(--h)}
.certainty .c h2{font-family:var(--d);font-weight:400;font-size:19px;color:var(--ink);margin:0}
.certainty .c p{margin-top:8px;font-size:14.5px;color:var(--i2);max-width:44ch}
.certainty .c a{color:var(--pink);text-decoration:none;font-weight:600}
.certainty .c .k{display:block;margin-top:8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--i3)}
@media(min-width:561px){.certainty .grid{grid-template-columns:1fr 1fr}}

/* --- footer: the privacy link and the dated legal line --- */
footer .fnav a.priv{color:var(--i3)}
footer .fnav a:focus-visible,nav.topnav a:focus-visible,.pk-grid .pk .pk-cta:focus-visible{outline:2px solid var(--pink);outline-offset:2px}
footer .flegal{margin-top:10px;font-size:11.5px;color:var(--i3)}
footer .flegal a{color:var(--i2);text-decoration:none}

/* ===== v7.1 (6 Sep 2026) — mobile tap targets: nav chips at least 40 px tall, 11.5 px text ===== */
nav.topnav a{min-height:40px;display:inline-flex;align-items:center;font-size:11.5px;padding-top:0;padding-bottom:0}

/* ===================================================================================
   v8 — round 2 block (6 Sep 2026). APPEND ONLY: nothing above this line is edited.
   ROUND2-SPEC items 1, 2, 3, 4 and 8, on the CSS side:
     1  a real desktop layout from 900px — .wrap 1120, .hero as two columns,
        look lanes as a 3-up grid, .duo (ladder beside packages), prose at 68ch
     2  the type scale — body 15.5px phone / 16px desktop, nothing under 11.5px
        except the 12px dated line, line-height 1.45 or more on running text
     3  nav.bar — the fixed two-button bar on phones — and .call beside .cta
     4  the look drawer image: contain on a black ground, whole portrait, 80vh
     8  nav v3 — five entries plus a <details> disclosure holding the eight services
   Plus the four asks the page agents logged in their own inline <style> blocks:
   .packages, height:auto on three images, .endcap p a, and a .dated rule to match
   the class the gate's rule 16 actually prints.
   Palette, radii and spacing steps are still the v6 ones — nothing new is introduced.
   SPECIFICITY: index.html keeps two overrides that load AFTER this file
   (.cov-img img aspect-ratio, .tile flex/max-width), and page <style> blocks load
   after it too. Every v8 rule that has to beat one of those is written one step
   heavier — "body .rail .tile", "html body", "body .proof .rate .when". Do not
   "simplify" those selectors: the homepage silently loses the v8 behaviour.
   =================================================================================== */

/* --- tokens (v8 adds four; no colour, no font, no radius is new) --- */
:root{--fs:15.5px;--fs2:15px;--lab:11.5px;--dl:12px;--barh:62px;--desk:1120px;--col:820px}

/* ===== 2 · type scale ============================================================ */
html body{font-size:var(--fs);line-height:1.55}

/* running text */
body .cov-sub{font-size:16px;line-height:1.5;max-width:34ch}
body .prose p,body .prose li,body .pay p,body .visit p,body .areas p,body .studio p,
body .prices .lead,body .ladder .lead,body .dates .lead,body .money .s,
body .packages .lead,body .more a{font-size:var(--fs);line-height:1.55}
body .step p,body .trial-steps .step p,body .certainty .c p,body .legal p,body .legal li,
body .endcap p,body .faq .a,body .prices .ask,body .rate p,body .proof .rate p,
body .visit .note,body .studio dd,body .pk .pk-line{font-size:var(--fs2);line-height:1.5}
body .pk-grid .pk li{font-size:var(--fs);line-height:1.5}
body .said blockquote p{font-size:17px;line-height:1.58}
body .faq summary{font-size:var(--fs2);line-height:1.5}

/* labels, eyebrows and captions — floor of 11.5px, line-height 1.45 */
body .pill,body .cov-eyebrow,body .hero .eyebrow,body .prose .eyebrow,body .prices .eyebrow,
body .money .eyebrow,body .ladder .eyebrow,body .proof .eyebrow,body .dates .eyebrow,
body .studio .eyebrow,body .certainty .eyebrow,body .packages .eyebrow,body .ratewrap .eyebrow,
body .pt-group,body .proof .vgroup,body .studio dt,body table.pt th,body .money .nums .l,
body .said .who,body .certainty .c .k,body .vcard .vcap,body .vhint,body dialog.vdlg .vname,
body .lane-h .n,body .cov-cap,body .how-cap,body .prose .sign-cap,body .loop .cap,
body .hero-c .cov-cap{font-size:var(--lab);line-height:1.45}

/* the dated line — the one thing allowed under 11.5px, at 12px */
body .pt-date,body .dated,body .legal .updated,body .rate .when,body .proof .rate .when,
body footer .flegal{font-size:var(--dl);line-height:1.45}
.dated{margin-top:14px;font-size:var(--dl);letter-spacing:.06em;color:var(--i3)}
/* the provenance line every page carries as a hand-written style="font-size:11px" —
   that inline 11px is below item 2's floor, so the pages swap the attribute for this class */
.prov{margin-top:14px;font-size:var(--lab);line-height:1.45;color:var(--i3);max-width:46ch}

/* line-height floors on the remaining wrapped strings */
body table.pt.ld td:first-child small,body table.pt.dt td small,body table.pt td small,
body nav.topnav a,body .tile .cap,body .areas .chips span,body .pk li,
body .dw .dline,body .gline,body footer p{line-height:1.45}

/* ===== 8 · nav v3 — five entries and one disclosure ============================== */
nav.topnav{flex-wrap:wrap;overflow:visible;position:relative;row-gap:8px;
  scroll-snap-type:none;padding-bottom:2px}
nav.topnav::after{display:none}
/* A nav must not clip: the disclosure opens inside it. A page still carrying the v2
   13-chip row keeps the sideways-scrolling row until the rollout gives it the v3
   markup, so the two never have to land in the same commit. Where :has() is missing
   every nav wraps instead — more rows, but the disclosure still opens. */
@supports selector(:has(*)){
  nav.topnav:not(:has(.ndrop)){flex-wrap:nowrap;overflow-x:auto;padding-bottom:0}
  nav.topnav:not(:has(.ndrop))::after{display:block}
}
nav.topnav .ndrop{position:relative;flex:0 0 auto}
nav.topnav .ndrop>summary{display:inline-flex;align-items:center;gap:7px;list-style:none;cursor:pointer;
  font-size:var(--lab);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--i2);
  border:1px solid var(--h);padding:0 10px;border-radius:2px;min-height:40px;white-space:nowrap;line-height:1.45}
nav.topnav .ndrop>summary::-webkit-details-marker{display:none}
nav.topnav .ndrop>summary::after{content:"\25BE";font-size:9px;line-height:1;opacity:.75}
nav.topnav .ndrop[open]>summary::after{content:"\25B4"}
nav.topnav .ndrop>summary:focus-visible{outline:2px solid var(--pink);outline-offset:2px}
nav.topnav .ndrop.on>summary,nav.topnav .ndrop:has(a[aria-current="page"])>summary{
  background:rgba(218,25,121,.16);color:var(--ink);border-color:var(--pink)}
/* phone: the open list takes its own full-width row and pushes the page down */
nav.topnav .ndrop[open]{flex:1 0 100%}
nav.topnav .ndrop-p{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;margin-top:8px;
  border-top:1px solid var(--h)}
nav.topnav .ndrop-p a{display:flex;align-items:center;min-height:40px;padding:6px 0;
  border:0;border-radius:0;background:none;font-size:12.5px;font-weight:600;letter-spacing:.04em;
  text-transform:none;color:var(--i2);white-space:normal;line-height:1.45}
nav.topnav .ndrop-p a[aria-current="page"]{background:none;color:var(--pink);border:0}

/* ===== 3 · the bottom bar, .call and the CTA row ================================= */
nav.bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;
  gap:10px;height:calc(var(--barh) + env(safe-area-inset-bottom,0px));
  padding:9px 14px calc(9px + env(safe-area-inset-bottom,0px));
  background:rgba(11,7,9,.95);border-top:1px solid var(--h);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
nav.bar a{display:flex;align-items:center;justify-content:center;min-height:40px;padding:9px 10px;
  border-radius:3px;text-decoration:none;font-weight:600;font-size:var(--fs2);line-height:1.45;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
nav.bar .b-wa{background:var(--press);color:#fff;border:1px solid var(--press)}
nav.bar .b-call{background:transparent;color:var(--ink);border:1px solid var(--h)}
nav.bar a:focus-visible{outline:2px solid var(--pink);outline-offset:2px}
html body{padding-bottom:calc(var(--barh) + env(safe-area-inset-bottom,0px))}
@supports selector(:has(*)){html body:not(:has(nav.bar)){padding-bottom:0}}

.ctarow{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}
.ctarow .alt{font-size:13.5px;line-height:1.45;color:var(--i3)}
.ctarow .alt a{color:var(--pink);text-decoration:none;font-weight:600}
.call{display:inline-flex;align-items:center;justify-content:center;min-height:49px;
  background:transparent;color:var(--ink);border:1px solid var(--h);border-radius:3px;
  text-decoration:none;font-weight:600;font-size:var(--fs2);line-height:1.45;padding:12px 20px;
  white-space:nowrap}
.ctarow .cta,.ctarow .call,.money .row .cta,.money .row .call{display:inline-flex;align-items:center;
  justify-content:center;min-height:49px;padding:12px 22px}
.call:hover{border-color:var(--pink)}
.call:focus-visible,.cta:focus-visible{outline:2px solid var(--pink);outline-offset:2px}

/* ===== 4 · the look drawer — the whole portrait, never cropped =================== */
dialog .dw{background:#000}
body dialog .dw img{width:100%;height:auto;max-height:80vh;aspect-ratio:4/5;object-fit:contain;
  background:#000}

/* ===== 6 · the rating block, usable outside .proof (the reviews page) ============ */
.ratewrap{padding:34px 20px 0}
.ratewrap h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:12px}
.rate{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 10px;padding:14px 0;
  border-top:1px solid var(--h);border-bottom:1px solid var(--h)}
.rate .score{font-family:var(--d);font-size:26px;line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums}
.rate .star{width:14px;height:14px;vertical-align:0}
.rate p{flex:1 1 12ch;margin:0;color:var(--i2);max-width:46ch}
.rate p a{color:var(--pink);text-decoration:none;font-weight:600}
.rate .when{flex:1 0 100%;margin-top:6px;letter-spacing:.06em;color:var(--i3)}

/* ===== the hero — text left, cover right from 900px ============================== */
.hero{padding:30px 20px 10px}
.hero .eyebrow{font-size:var(--lab);font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mag)}
.hero h1{margin:10px 0 8px}
.hero-t{min-width:0}
.hero-price{margin-top:12px;font-size:16px;line-height:1.55;color:var(--ink);font-weight:600;
  font-variant-numeric:tabular-nums;max-width:42ch}
.hero-trust{margin-top:8px;font-size:var(--fs2);line-height:1.5;color:var(--i2);max-width:46ch}
.hero-trust a,.hero-t a:not(.cta):not(.call){color:var(--pink);text-decoration:none;font-weight:600}
.hero-c{margin:18px -20px 0;min-width:0}
body .hero-c img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--r)}
.hero-c .cov-cap{padding:8px 20px 0;letter-spacing:.06em;color:var(--i3)}
@media(min-width:561px){.hero-c{margin-left:0;margin-right:0}.hero-c .cov-cap{padding-left:0}}

/* ===== .packages — the section the homepage was styling inline =================== */
.packages{padding:44px 20px 0}
.packages .eyebrow{font-size:var(--lab);font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mag);margin-bottom:8px}
.packages h2{font-family:var(--d);font-weight:400;font-size:24px;margin-bottom:10px}
.packages .lead{margin-top:8px;color:var(--i2);max-width:44ch}
.packages .lead a,.packages .pt-note a,.packages .pk-grid .pk-cta{color:var(--pink);
  text-decoration:none;font-weight:600}
.packages .pk-grid .pk-cta{display:block}
.pk-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pk-chips li{font-size:12.5px;line-height:1.45;color:var(--i2);border:1px solid var(--h);
  padding:6px 10px;border-radius:2px;font-variant-numeric:tabular-nums}

/* ===== .duo — two blocks side by side from 900px; one under the other on a phone == */
.duo{display:block}

/* ===== the asks the page agents logged in their inline <style> blocks ============ */
body .how-img img,body .visit-img img,body .prose .sign img{height:auto}
.endcap p a{color:var(--pink);text-decoration:none;font-weight:600}
.narrow{min-width:0}

/* ===== 1 · desktop, from 900px =================================================== */
@media(min-width:900px){
  :root{--fs:16px}

  body .wrap{max-width:var(--desk)}

  /* text-only sections stop at 820px. They stay on the page's own left edge, so the
     hero, the lanes, the duo and every paragraph share one line down the left. */
  body .cover,body .how,body .pay,body .endcap,body .visit,body .faq,body .prose,body .said,
  body .areas,body .more,body .prices,body .money,body .studio,body .legal,body .dates,
  body .packages,body .ratewrap,body .trial-steps,body .narrow{max-width:var(--col)}

  /* prose runs to about 68 characters */
  body .prose p,body .prose ul,body .prose li,body .pay p,body .visit p,body .visit .note,
  body .areas p,body .studio p,body .studio dd,body .prices .lead,body .prices .ask,
  body .pt-note,body .ladder .lead,body .dates .lead,body .dates .src,body .money .s,
  body .packages .lead,body .certainty .c p,body .legal p,body .legal ul,body .faq .a,
  body .endcap p,body .step p,body .trial-steps .step p,body .proof .vnote,body .rate p,
  body .proof .rate p,body .hero-trust{max-width:68ch}
  body .said blockquote p{max-width:52ch}

  /* the hero: text left, cover right */
  body .hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    column-gap:44px;align-items:center;padding-top:40px;padding-bottom:6px}
  body .hero-c{margin-top:0}
  body .hero-c img{aspect-ratio:4/5;max-height:560px}
  body .hero .cov-sub,body .hero-price{max-width:36ch}

  /* look lanes: a 3-up grid instead of a sideways rail */
  body .rail{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;overflow:visible;
    scroll-snap-type:none;padding-bottom:0}
  body .rail .tile{flex:none;width:auto;max-width:none}
  body .lane-h{padding-bottom:14px}

  /* the testimonial rail stays a rail, five posters across */
  body .vrail .vcard{flex:0 0 calc((100% - 40px)/5)}

  /* the ladder beside the package cards */
  body .duo{display:grid;grid-template-columns:1fr 1fr;column-gap:0;align-items:start;
    max-width:none;margin-left:0;margin-right:0}
  body .duo>*{max-width:none;margin-left:0;margin-right:0}

  /* the drawer becomes a centred panel, not a bottom sheet */
  dialog{margin:auto;max-width:720px}
  body dialog .dw img{max-height:76vh;object-fit:contain}

  /* nav v3: the disclosure is a dropdown panel */
  nav.topnav .ndrop[open]{flex:0 0 auto}
  nav.topnav .ndrop-p{position:absolute;top:calc(100% + 6px);left:0;z-index:55;
    grid-template-columns:1fr;min-width:264px;margin-top:0;padding:4px 14px 8px;
    background:var(--r);border:1px solid var(--h);border-radius:3px;
    box-shadow:0 14px 30px rgba(11,7,9,.6)}

  /* the bar is a phone thing */
  nav.bar{display:none}
  html body{padding-bottom:0}
}

@media print{
  nav.bar{display:none}
  html body{padding-bottom:0}
}

/* v8b — the running-text selectors the v7 block still sizes by name (QA round 2, D2). */
body .prose p,body .prose li,body .areas p,body .visit p,body .studio p,body .step p,body .pay p,
body .prices .lead,body .money .s,body .ladder .lead,body .dates .lead,body .legal p,
body .certainty .c p,body .trial-steps .step p,body .endcap p,body .proof .rate p{
  font-size:var(--fs);line-height:1.55}


/* v9 — "Book now" in the masthead of every page (Rishi, 6 Sep). A filled pink pill beside "All looks";
   outside nav.topnav so it is not a nav v3 entry. WhatsApp placement "book" = WEB-10. */
.mast .r{display:flex;align-items:center;gap:8px}
body .mast a.book{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;
  background:var(--press);padding:9px 14px;border-radius:999px;line-height:1;white-space:nowrap}
body .mast a.book:hover{filter:brightness(1.08)}
@media print{.mast a.book{display:none}}


/* v10 — the locality under the wordmark; the brand band under the nav; .bgsec/.svc/.ill/.gal promoted
   from the pre-bridal page style so other pages can use them (Rishi, 6 Sep evening). */
.mast .m1{display:inline-flex;flex-direction:column;line-height:1.1}
.mast .m1 small{display:block;font-size:9.5px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--i3);margin-top:3px;white-space:nowrap;text-indent:.02em}
.brand{margin:14px 0 0;position:relative}
.brand img{display:block;width:100%;height:auto;aspect-ratio:1126/127;background:var(--r)}
.brand:after{content:none}
.bgsec{position:relative;margin-top:28px;padding:40px 20px 36px;background-color:#0b0709;background-size:cover;background-position:center;isolation:isolate}
.bgsec:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,7,9,.70),rgba(11,7,9,.88));z-index:-1}
.bgsec .eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mag);margin-bottom:8px}
.bgsec h2{font-family:var(--d);font-weight:400;font-size:26px;line-height:1.2;margin:0 0 10px;color:var(--ink)}
.bgsec p{font-size:var(--fs);line-height:1.55;color:var(--ink);max-width:44ch;margin-top:8px}
.bgsec p.sub{color:var(--i2)}
.bgsec ul{margin-top:10px}
.svc{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px;margin-top:22px}
.svc figure{position:relative;margin:0}
.svc img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:2px;background:var(--r);display:block}
.svc .n{margin-top:9px;font-size:15px;line-height:1.3;color:var(--ink)}
.svc .d{margin-top:4px;font-size:13px;line-height:1.45;color:var(--i2)}
.svc .t{display:block;margin-top:4px;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--i3)}
.ill{position:absolute;top:8px;left:8px;z-index:1;font-size:11.5px;line-height:1.45;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:rgba(11,7,9,.74);padding:4px 7px;border-radius:2px;pointer-events:none}
.gal{display:grid;grid-template-columns:1fr;gap:14px;margin-top:18px}
.gal figure{position:relative;margin:0}
.gal img{width:100%;height:auto;display:block;border-radius:2px;background:var(--r)}
.gal figcaption{margin-top:6px;font-size:12px;line-height:1.45;color:var(--i3)}
@media(min-width:900px){
  .bgsec{padding:56px 40px 48px;border-radius:2px}
  .bgsec h2{font-size:32px}
  .svc{grid-template-columns:repeat(3,1fr);gap:22px 20px}
  .svc .n{font-size:16px}.svc .d{font-size:14px}
  .gal{grid-template-columns:1fr 1fr;gap:20px}
}
@media print{.bgsec{background:none}.ill,.brand{display:none}}

.mapbox{margin-top:14px}
.mapbox iframe{display:block;width:100%;height:300px;border:0;border-radius:2px;background:var(--r)}
@media(min-width:900px){.mapbox iframe{height:380px}}
@media print{.mapbox{display:none}}

/* v11 (7 Sep 2026): real loops inside .svc figures; linked figures on the homepage strip */
.svc video{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:2px;background:var(--r);display:block}
.svc a{display:block;color:inherit;text-decoration:none}
.svc a .n{color:var(--ink)}

/* v12 (7 Sep 2026): work galleries — a grid of tiles and tap-to-play cards */
.work{padding:26px 0 10px}
.wgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px;padding:0 20px}
@media(min-width:700px){.wgrid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.wgrid{grid-template-columns:repeat(4,1fr);gap:16px 14px}}
.wgrid .tile,.wgrid .vcard{flex:none;width:auto;max-width:none;position:relative}
.wgrid .vcard img{aspect-ratio:4/5}
.wgrid .tile .cap{font-size:12.5px;padding-top:7px}
.wgrid .vcap{font-size:10px}
.wchip{position:absolute;left:8px;top:8px;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;background:rgba(11,7,9,.66);color:#fff;padding:3px 8px;border-radius:999px;pointer-events:none}
.worklink{padding:16px 20px 0;font-size:14px;color:var(--i2)} .worklink a{color:var(--pink)}
.svc a .d{color:var(--i2)}

/* v13 (7 Sep 2026): the "Our work" icon in every header */
.mast .r a.work{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pink);padding:7px 10px;border:1px solid rgba(255,95,165,.45);border-radius:999px}
.mast .r a.work svg{width:15px;height:15px;fill:currentColor}
.mast .r a.work:hover{background:rgba(255,95,165,.08)}
@media(max-width:420px){.mast .r a.work span{display:none}.mast .r a.work{padding:7px 8px}}

/* v14 (7 Sep 2026): Pooja's call — tick column, build-your-own block */
.vhide{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pt td.yes{color:var(--pink);font-weight:700}
.pt td.no{color:var(--i3)}
.pk-custom{margin-top:26px;padding:20px 22px;border:1px solid rgba(255,95,165,.32);border-radius:14px;background:rgba(255,95,165,.045)}
.pk-custom h3{margin:0 0 8px;font-size:17px;letter-spacing:-.01em}
.pk-custom p{margin:0;font-size:13.5px;line-height:1.62;color:var(--i2);max-width:56ch}
.pk-custom-cta{margin-top:14px!important;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.pk-call{font-size:12.5px;color:var(--i3);text-decoration:none;border-bottom:1px solid rgba(0,0,0,.18)}

/* v15 (8 Sep 2026): audit fixes. Button text no longer inherits the hero link colour; header Book now on the press pink (6.3:1); related-services line */
.worklink.rel{padding-top:8px;font-size:13px}
.worklink.rel a{margin:0 2px}

/* v16 (11 Sep 2026): fonts moved to assets/fonts/ (see the note at the top of this file); no rule changed. */
