/* Self-hosted web fonts (latin subset), from Google Fonts. SIL Open Font License. */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/bebas-neue-normal-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/cinzel-normal-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/cinzel-normal-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/cormorant-garamond-italic-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/cormorant-garamond-italic-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/cormorant-garamond-normal-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/cormorant-garamond-normal-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/fredoka-normal-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Josefin Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/josefin-sans-normal-300.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Josefin Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/josefin-sans-normal-300.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/libre-baskerville-italic-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/libre-baskerville-normal-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/libre-baskerville-normal-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/playfair-display-italic-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/playfair-display-normal-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/schibsted-grotesk-normal-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/schibsted-grotesk-normal-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/schibsted-grotesk-normal-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/schibsted-grotesk-normal-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* Layout: one 12-column grid on a light ground, with deep bookcloth-green bands for brand, showcase and enquiry.
   Books are the imagery; every section has its own composition. */
:root{
  --green:#0A3222; --green-2:#0F3D2C; --green-3:#1B5240; --green-4:#2E6652;
  --sage:#E7EEE9; --sage-2:#D3E0D7; --mist:#F4F6F3; --white:#FFFFFF;
  --gold:#B28A47; --gold-2:#C9A35E; --gold-3:#E6D3A5; --gold-ink:#86662C;
  --ink:#14211B; --muted:#4A5953; --muted-2:#66746D; --line:#D7E0DA; --cream:#F5F2EA; --on-dark:#C9D6CE; --on-dark-2:#9FB4A8;
  --serif:"Cormorant Garamond","Iowan Old Style",Georgia,serif;
  --sans:"Schibsted Grotesk","Segoe UI",system-ui,-apple-system,sans-serif;
  --gutter:clamp(18px,4vw,56px); --max:1280px; --r:16px; --r-lg:28px;
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--white);color:var(--ink);font:17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
::selection{background:var(--gold-3);color:var(--green)}
a{color:inherit}
:focus-visible{outline:2.5px solid var(--gold);outline-offset:3px;border-radius:4px}
.on-dark :focus-visible{outline-color:var(--gold-3)}
img,svg{max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:-.012em;text-wrap:balance;margin:0;line-height:1.02;color:var(--green)}
h2{font-size:clamp(36px,4.3vw,60px)}
h3{font-size:clamp(24px,2.1vw,30px);line-height:1.12}
h1 em,h2 em{font-style:italic;color:var(--gold-ink)}
.on-dark h1,.on-dark h2,.on-dark h3{color:var(--cream)}
.on-dark h1 em,.on-dark h2 em{color:var(--gold-3)}
p{margin:0}
.lede{font-size:clamp(17.5px,1.35vw,19.5px);line-height:1.6;color:var(--muted);max-width:52ch}
.on-dark{color:var(--cream)} .on-dark .lede{color:var(--on-dark)}
.small{font-size:14px;color:var(--muted)}
.ic{width:18px;height:18px;flex:none}
.sample{display:inline-flex;align-items:center;gap:6px;font:500 12px/1 var(--sans);color:var(--muted-2)}
.sample::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
.on-dark .sample{color:var(--on-dark-2)}

/* Buttons: pill, one height (52px), one radius. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;font:600 16px/1 var(--sans);text-decoration:none;padding:0 26px;border:0;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background-color .25s,color .25s,box-shadow .35s var(--ease),transform .35s var(--ease)}
.btn .ic{transition:transform .35s var(--ease)}
.btn:hover .ic{transform:translateX(3px)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-green{background:var(--green);color:var(--cream)} .btn-green:hover{background:var(--green-3);box-shadow:0 14px 26px -14px rgba(10,50,34,.7)}
.btn-gold{background:var(--gold-2);color:var(--green)} .btn-gold:hover{background:var(--gold-3);box-shadow:0 14px 26px -14px rgba(178,138,71,.8)}
.btn-ghost{background:transparent;color:var(--green);box-shadow:inset 0 0 0 1.5px var(--green)} .btn-ghost:hover{background:var(--green);color:var(--cream)}
.on-dark .btn-ghost{color:var(--cream);box-shadow:inset 0 0 0 1.5px rgba(245,242,234,.55)} .on-dark .btn-ghost:hover{background:var(--cream);color:var(--green)}
.btn[disabled],.btn[aria-busy="true"]{opacity:.65;cursor:progress;transform:none}
.btn .spin{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.link{display:inline-flex;gap:8px;align-items:center;font-weight:600;text-decoration:none;color:var(--green);border-bottom:1.5px solid var(--gold);padding-bottom:3px;transition:color .2s}
.link:hover{color:var(--gold-ink)}
.on-dark .link{color:var(--cream)} .on-dark .link:hover{color:var(--gold-3)}
.link .ic{transition:transform .35s var(--ease)} .link:hover .ic{transform:translateX(4px)}

/* ---------- Cover system: each sample cover is its own composition (sizes in container units) ---------- */
.cv{container-type:inline-size;position:relative;aspect-ratio:2/3;overflow:hidden;isolation:isolate;background:#20262a;color:#fff;border-radius:1px 3px 3px 1px}
.cv::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.24) 0,rgba(255,255,255,.16) 1.7%,rgba(255,255,255,0) 4.5%,rgba(0,0,0,0) 86%,rgba(0,0,0,.08)),linear-gradient(180deg,rgba(255,255,255,.05),rgba(0,0,0,.05))}
.cv .ph{position:absolute;background:var(--img) center/cover no-repeat}
.cv .ph::before,.cv .ph::after{content:"";position:absolute;inset:0}
.cv .cv-art{position:absolute;inset:0;width:100%;height:100%}
.cv-in{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;padding:8cqw}
.cv .t{display:block;text-wrap:balance}
.cv .au{display:block;font:600 3.5cqw/1 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.cv .sub{display:block}
/* Thriller */
.cv-ferry{background:#0E1116}
.cv-ferry .ph{left:0;right:0;bottom:0;height:60%;background-position:50% 8%;filter:grayscale(1) contrast(1.05) brightness(1.35)}
.cv-ferry .ph::before{background:rgba(70,120,160,.5);mix-blend-mode:multiply}
.cv-ferry .ph::after{background:linear-gradient(180deg,#0E1116 0,rgba(14,17,22,0) 34%,rgba(14,17,22,0) 70%,rgba(14,17,22,.75))}
.cv-ferry .au{color:#9AA5AE;margin-bottom:4.5cqw}
.cv-ferry .rule{display:block;width:13cqw;height:1.1cqw;background:#C8432B;margin-bottom:4.5cqw}
.cv-ferry .t{font:400 24cqw/.84 "Bebas Neue",Impact,sans-serif;color:#EEE7D7}
.cv-ferry .tag{margin-top:auto;font:italic 400 4.2cqw/1.35 "Libre Baskerville",Georgia,serif;color:#E2DED4;max-width:58cqw}
.cv-ferryB{background:#EDE7DA;color:#1C2430}
.cv-ferryB .sub{font:600 3.4cqw/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#B3402A}
.cv-ferryB .t{font:700 17cqw/.92 "Playfair Display",Georgia,serif;margin-top:5cqw}
.cv-ferryB .au{margin-top:auto;color:#1C2430}
.cv-ferryC .t{font:700 10.5cqw/1 "Josefin Sans",sans-serif;text-transform:uppercase;letter-spacing:.06em;color:#F2E2C4;text-align:center}
.cv-ferryC .au{margin-top:auto;color:#F2B45C;text-align:center}
/* Mystery */
.cv-harbour{background:#22363D}
.cv-harbour .ph{inset:0;background-position:42% 50%;filter:saturate(.6)}
.cv-harbour .ph::after{background:linear-gradient(180deg,rgba(26,44,52,.86),rgba(26,44,52,.18) 46%,rgba(26,44,52,.8))}
.cv-harbour .frame{position:absolute;inset:5cqw;border:.45cqw solid rgba(243,231,214,.7);z-index:2}
.cv-harbour .cv-in{padding:13cqw 11cqw;align-items:center;text-align:center}
.cv-harbour .sub{font:italic 400 4cqw/1.3 "Libre Baskerville",Georgia,serif;color:#F3E7D6}
.cv-harbour .t{font:700 15cqw/1.02 "Libre Baskerville",Georgia,serif;text-transform:uppercase;letter-spacing:.05em;color:#F3E7D6;margin-top:4cqw}
.cv-harbour .au{margin-top:auto;color:#F4B98F}
/* Fantasy */
.cv-kingdom{background:#1A140B}
.cv-kingdom .ph{left:15%;right:15%;top:31%;height:47%;border-radius:40cqw 40cqw 0 0;background-position:45% 55%;box-shadow:0 0 0 1.3cqw #1A140B,0 0 0 2.1cqw #C9A35E}
.cv-kingdom .cv-in{align-items:center;text-align:center;padding:9cqw 8cqw 7.5cqw}
.cv-kingdom .t{font:700 9.4cqw/1.13 Cinzel,Georgia,serif;color:#E8CB82;letter-spacing:.02em}
.cv-kingdom .t em{font-style:normal;font-size:.62em}
.cv-kingdom .series{margin-top:auto;margin-bottom:3.6cqw;font:600 3.1cqw/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#C9A35E}
.cv-kingdom .au{font-family:Cinzel,Georgia,serif;font-size:3.8cqw;color:#E8CB82;letter-spacing:.2em}
/* Science fiction */
.cv-pillars{background:#04060B}
.cv-pillars .ph{left:15%;right:15%;top:27%;aspect-ratio:1;border-radius:50%;background-position:50% 42%;box-shadow:0 0 7cqw rgba(110,160,255,.28)}
.cv-pillars .orbit{position:absolute;left:3%;right:3%;top:33%;height:44%;border:1px solid rgba(220,230,242,.38);border-radius:50%;transform:rotate(-13deg);z-index:2}
.cv-pillars .cv-in{align-items:center;text-align:center;padding:10cqw 8cqw 8cqw}
.cv-pillars .t{font:300 7.4cqw/1.45 "Josefin Sans",sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#fff;padding-left:.3em}
.cv-pillars .sub{font:600 3cqw/1 var(--sans);letter-spacing:.45em;text-transform:uppercase;color:#9DB3D6;margin-top:3cqw}
.cv-pillars .au{margin-top:auto;letter-spacing:.42em;color:#DCE6F2}
/* Romance */
.cv-goldleaf{background:#6A4C12}
.cv-goldleaf .ph{inset:0;background-position:50% 30%}
.cv-goldleaf .ph::after{background:rgba(70,45,5,.18)}
.cv-goldleaf .oval{position:absolute;left:12%;right:12%;top:19%;height:52%;border-radius:50%;background:#FBF3DF;box-shadow:inset 0 0 0 1.4cqw #FBF3DF,inset 0 0 0 1.9cqw #B8913F,0 2cqw 7cqw rgba(40,24,0,.45);z-index:2}
.cv-goldleaf .cv-in{align-items:center;text-align:center;padding:42cqw 18cqw 7cqw}
.cv-goldleaf .t{font:italic 600 10.6cqw/1.03 "Playfair Display",Georgia,serif;color:#22382B}
.cv-goldleaf .sub{font:italic 400 4cqw/1 "Libre Baskerville",Georgia,serif;color:#86662C;margin-top:3.5cqw}
.cv-goldleaf .au{margin-top:auto;color:#FFF6DE;background:rgba(40,24,0,.5);padding:2.2cqw 3.2cqw}
/* Literary fiction */
.cv-stars{background:#F2E6BE}
.cv-stars .ph{left:0;right:0;top:0;height:67%;background-position:28% 18%}
.cv-stars .cv-in{padding:0}
.cv-stars .au{position:absolute;top:7cqw;left:0;right:0;text-align:center;color:#F7EDC9;text-shadow:0 1px 8px rgba(0,0,20,.6)}
.cv-stars .band{position:absolute;left:0;right:0;bottom:0;height:33%;background:#F2E6BE;border-top:1.2cqw solid #172858;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 9cqw;text-align:center}
.cv-stars .t{font:italic 400 8.2cqw/1.14 "Libre Baskerville",Georgia,serif;color:#172858}
.cv-stars .sub{font:600 2.9cqw/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#86662C;margin-top:3cqw}
/* Historical */
.cv-berth{background:#EFE6D2}
.cv-berth .ph{left:9%;right:9%;top:8%;height:53%;background-position:32% 50%;box-shadow:0 0 0 1cqw #EFE6D2,0 0 0 1.5cqw #4A301B}
.cv-berth .cv-in{align-items:center;text-align:center;padding:97cqw 9cqw 7.5cqw}
.cv-berth .t{font:700 8.4cqw/1.12 "Libre Baskerville",Georgia,serif;text-transform:uppercase;letter-spacing:.12em;color:#3A2614;padding-left:.12em}
.cv-berth .sub{font:italic 400 3.9cqw/1.3 "Libre Baskerville",Georgia,serif;color:#6E5137;margin-top:3cqw}
.cv-berth .au{margin-top:auto;color:#3A2614}
/* Self-help */
.cv-wave{background:#F3EDE1}
.cv-wave .ph{left:0;right:0;bottom:0;height:45%;background-position:22% 42%;background-size:170% auto}
.cv-wave .cv-in{padding:9cqw}
.cv-wave .t{font:700 15cqw/.9 "Josefin Sans",sans-serif;text-transform:uppercase;color:#14305A;letter-spacing:-.01em}
.cv-wave .sub{font:500 4.5cqw/1.32 var(--sans);color:#14305A;margin-top:4.5cqw;max-width:64cqw}
.cv-wave .au{margin-top:auto;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.5)}
/* Poetry */
.cv-branches{background:#F6F3EB}
.cv-branches .ph{left:25%;right:25%;top:15%;aspect-ratio:1;background-position:50% 40%}
.cv-branches .cv-in{align-items:center;text-align:center;padding:76cqw 9cqw 7.5cqw}
.cv-branches .t{font:italic 600 11cqw/1 "Cormorant Garamond",Georgia,serif;color:#2D5A55}
.cv-branches .sub{font:600 3.1cqw/1 var(--sans);letter-spacing:.36em;text-transform:uppercase;color:#86662C;margin-top:4cqw}
.cv-branches .au{margin-top:auto;color:#2D5A55}
/* Memoir */
.cv-summer{background:#E5ECF1}
.cv-summer .ph{left:9%;right:9%;top:41%;bottom:15%;border-radius:2cqw;background-position:58% 32%}
.cv-summer .cv-in{padding:10cqw 9cqw 6.5cqw}
.cv-summer .t{font:700 10cqw/1.04 "Playfair Display",Georgia,serif;color:#1D2F4A}
.cv-summer .sub{font:600 3.1cqw/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#5E7590;margin-top:3.4cqw}
.cv-summer .au{margin-top:auto;color:#1D2F4A}
/* Young adult */
.cv-river{background:#123F47}
.cv-river .ph{inset:0;background-position:62% 40%;filter:saturate(.8)}
.cv-river .ph::before{background:rgba(30,110,120,.42);mix-blend-mode:multiply}
.cv-river .ph::after{background:linear-gradient(180deg,rgba(6,30,34,.55),rgba(6,30,34,0) 30%,rgba(6,30,34,0) 55%,rgba(6,30,34,.88))}
.cv-river .cv-in{justify-content:space-between;align-items:center;text-align:center}
.cv-river .t{font:700 9.6cqw/1.12 Cinzel,Georgia,serif;color:#fff}
.cv-river .au{color:#F4ECD9}
/* Travel */
.cv-clouds{background:#8E99A3}
.cv-clouds .ph{inset:0;background-position:50% 50%}
.cv-clouds .ph::after{background:linear-gradient(180deg,rgba(240,244,248,.62),rgba(240,244,248,0) 38%)}
.cv-clouds .route{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.cv-clouds .cv-in{padding:9cqw}
.cv-clouds .t{font:700 11.4cqw/.98 "Josefin Sans",sans-serif;text-transform:uppercase;color:#22303C}
.cv-clouds .sub{font:600 3.9cqw/1.3 var(--sans);color:#22303C;margin-top:3.4cqw;max-width:56cqw}
.cv-clouds .au{margin-top:auto;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.5)}
/* Wellness */
.cv-still{background:#DCE6DF}
.cv-still .ph{left:15%;right:15%;top:13%;aspect-ratio:1;border-radius:50%;background-position:50% 50%}
.cv-still .cv-in{align-items:center;text-align:center;padding:93cqw 9cqw 7.5cqw}
.cv-still .t{font:700 13cqw/1 "Cormorant Garamond",Georgia,serif;color:#2F5D5A}
.cv-still .sub{font:500 3.9cqw/1.3 var(--sans);color:#4E6F68;margin-top:2.5cqw}
.cv-still .au{margin-top:auto;color:#2F5D5A}
/* Popular science */
.cv-galaxies{background:#05070D}
.cv-galaxies .ph{inset:0}
.cv-galaxies .grid{position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px) 0 0/25cqw 25cqw,linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px) 0 0/25cqw 25cqw}
.cv-galaxies .ring{position:absolute;left:56%;top:27%;width:17cqw;height:17cqw;border:1px solid #E6B655;border-radius:50%;z-index:1}
.cv-galaxies .ring::after{content:"";position:absolute;left:100%;top:50%;width:14cqw;height:1px;background:#E6B655}
.cv-galaxies .cv-in{justify-content:flex-end}
.cv-galaxies .sub{font:600 3.2cqw/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#E6B655;margin-bottom:3cqw}
.cv-galaxies .t{font:700 11cqw/1 "Josefin Sans",sans-serif;color:#fff}
.cv-galaxies .au{margin-top:5cqw;color:#C9D2E3}
/* Children's */
.cv-pip .cv-in{align-items:center;text-align:center;padding-top:10cqw}
.cv-pip .t{font:600 12.4cqw/1 Fredoka,"Trebuchet MS",sans-serif;color:#FFD54A;-webkit-text-stroke:.5cqw #10274A;paint-order:stroke fill}
.cv-pip .au{margin-top:auto;color:#fff}

/* ---------- 3D hardback ---------- */
.b3{position:absolute;width:var(--w);height:var(--h);transform-style:preserve-3d}
.b3 .f{position:absolute;backface-visibility:hidden}
.b3 .fr{inset:0;transform:translateZ(calc(var(--d) / 2))}
.b3 .fr .cv{width:100%;height:100%;aspect-ratio:auto}
.b3 .bk{inset:0;transform:rotateY(180deg) translateZ(calc(var(--d) / 2))}
.b3 .sp{width:var(--d);height:var(--h);left:calc(var(--w) / 2 - var(--d) / 2);transform:rotateY(-90deg) translateZ(calc(var(--w) / 2));display:flex;flex-direction:column;align-items:center;padding:12px 0 10px;gap:10px;background-image:linear-gradient(90deg,rgba(0,0,0,.28),rgba(255,255,255,.12) 30%,rgba(255,255,255,0) 60%,rgba(0,0,0,.25))}
.sp-t{writing-mode:vertical-rl;font:700 calc(var(--d) * .4)/1 var(--sf,var(--serif));white-space:nowrap;overflow:hidden;flex:1;text-overflow:ellipsis;letter-spacing:.02em}
.sp-a{writing-mode:vertical-rl;font:600 calc(var(--d) * .2)/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;opacity:.85}
.sp-m{width:calc(var(--d) * .58);height:calc(var(--d) * .58);flex:none}
.b3 .pr{width:calc(var(--d) - 4px);height:calc(var(--h) - 8px);top:4px;left:calc(var(--w) / 2 - var(--d) / 2 + 2px);transform:rotateY(90deg) translateZ(calc(var(--w) / 2 - 4px));background:linear-gradient(90deg,rgba(0,0,0,.12),rgba(0,0,0,0) 30%,rgba(0,0,0,0) 70%,rgba(0,0,0,.12)),repeating-linear-gradient(90deg,#F7F3E8 0 2px,#E4DDCC 2px 3px)}
.b3 .pt,.b3 .pb{width:calc(var(--w) - 8px);height:calc(var(--d) - 4px);left:4px;top:calc(var(--h) / 2 - var(--d) / 2 + 2px);background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,0) 40%),repeating-linear-gradient(0deg,#F7F3E8 0 2px,#E4DDCC 2px 3px)}
.b3 .pt{transform:rotateX(90deg) translateZ(calc(var(--h) / 2 - 4px))}
.b3 .pb{transform:rotateX(-90deg) translateZ(calc(var(--h) / 2 - 4px))}
/* Formats */
.b3.paper .pr,.b3.paper .pt,.b3.paper .pb{transform-origin:center}
.b3.paper .pr{transform:rotateY(90deg) translateZ(calc(var(--w) / 2 - 1px))}
.b3.paper .sp{background-image:linear-gradient(90deg,rgba(0,0,0,.18),rgba(255,255,255,.18) 50%,rgba(0,0,0,.18))}
.b3.jacket .fr::before{content:"";position:absolute;right:0;top:0;bottom:0;width:7%;z-index:6;background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,0) 40%)}
.b3.cloth .fr .cv{display:none}
.b3.cloth .fr{background:#2B1D14;display:grid;place-items:center;box-shadow:inset 0 0 0 calc(var(--w) * .05) #2B1D14,inset 0 0 0 calc(var(--w) * .055) #D8B66E}
.b3.cloth .fr::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.03) 0 2px,rgba(0,0,0,.04) 2px 4px)}
.b3.cloth .foilt{font:700 calc(var(--w) * .1)/1.15 Cinzel,Georgia,serif;color:#E2C27A;text-align:center;letter-spacing:.06em;text-shadow:0 1px 0 rgba(0,0,0,.4);position:relative;z-index:2;padding:0 12%}
.b3.cloth .pr,.b3.cloth .pt,.b3.cloth .pb{background:linear-gradient(90deg,#B98C3E,#E7CB86 50%,#B98C3E)}
.b3.cloth .rib{position:absolute;left:58%;bottom:-26px;width:9px;height:34px;background:#8E1F24;transform:translateZ(calc(var(--d) / 2 - 6px));clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%)}

/* ---------- Lying book (spine to viewer) ---------- */
.sl{position:absolute;width:var(--l);height:var(--t);transform-style:preserve-3d}
.sl .f{position:absolute;backface-visibility:hidden}
.sl .sf{inset:0;transform:translateZ(calc(var(--dd) / 2));display:flex;align-items:center;gap:14px;padding:0 18px;background-image:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0) 40%,rgba(0,0,0,.24))}
.sl-t{font:700 calc(var(--t) * .46)/1 var(--sf,var(--serif));white-space:nowrap;flex:1;overflow:hidden;text-overflow:ellipsis}
.sl-a{font:600 calc(var(--t) * .2)/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;opacity:.82;white-space:nowrap}
.sl .sp-m{width:calc(var(--t) * .6);height:calc(var(--t) * .6)}
.sl .sk{inset:0;transform:rotateY(180deg) translateZ(calc(var(--dd) / 2));background:repeating-linear-gradient(0deg,#F7F3E8 0 2px,#E1D9C7 2px 3px)}
.sl .st,.sl .sb{width:var(--l);height:var(--dd);top:calc(var(--t) / 2 - var(--dd) / 2);overflow:hidden}
.sl .st{transform:rotateX(90deg) translateZ(calc(var(--t) / 2))}
.sl .st .cv{position:absolute;width:var(--dd);height:var(--l);aspect-ratio:auto;left:calc(50% - var(--dd) / 2);top:calc(50% - var(--l) / 2);transform:rotate(-90deg)}
.sl .sb{transform:rotateX(-90deg) translateZ(calc(var(--t) / 2))}
.sl .se,.sl .sw{width:var(--dd);height:calc(var(--t) - 6px);top:3px;left:calc(var(--l) / 2 - var(--dd) / 2);background:linear-gradient(90deg,rgba(0,0,0,.14),rgba(0,0,0,0) 40%),repeating-linear-gradient(0deg,#F7F3E8 0 2px,#E1D9C7 2px 3px)}
.sl .se{transform:rotateY(90deg) translateZ(calc(var(--l) / 2 - 3px))}
.sl .sw{transform:rotateY(-90deg) translateZ(calc(var(--l) / 2 - 3px))}

/* ---------- Header ---------- */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.97);transition:box-shadow .3s}
.site-head.scrolled{box-shadow:0 1px 0 var(--line),0 12px 30px -20px rgba(10,50,34,.35)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:28px;height:88px}
.brand{display:block;width:clamp(190px,17vw,240px);flex:none}
.brand svg{display:block;width:100%;height:auto}
.nav{display:flex;align-items:center;gap:clamp(18px,2vw,30px)}
.nav > a:not(.btn),.has-menu > button{font:500 15.5px/1 var(--sans);color:var(--ink);text-decoration:none;background:none;border:0;padding:12px 0;cursor:pointer;display:inline-flex;gap:6px;align-items:center;position:relative}
.nav > a:not(.btn)::after,.has-menu > button::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.nav > a:not(.btn):hover::after,.has-menu > button:hover::after,.has-menu > button[aria-expanded="true"]::after{transform:scaleX(1)}
.has-menu{position:relative}
.has-menu .chev{width:12px;height:12px;transition:transform .3s var(--ease)}
.has-menu button[aria-expanded="true"] .chev{transform:rotate(180deg)}
.nav .btn{min-height:46px;padding:0 22px;font-size:15px}
.head-wa{display:inline-flex;align-items:center;gap:8px;font:600 14.5px/1 var(--sans);text-decoration:none;color:var(--green);padding:12px 0}
.head-wa .ic{width:20px;height:20px;color:var(--gold-ink)}
.mega{position:absolute;top:calc(100% + 16px);left:-150px;width:min(880px,88vw);background:var(--white);border-radius:20px;padding:22px;display:grid;grid-template-columns:230px 1fr;gap:22px;box-shadow:0 30px 60px -24px rgba(10,50,34,.38),0 0 0 1px var(--line)}
.mega[hidden]{display:none}
.mega-feature{background:var(--green);color:var(--cream);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:12px;overflow:hidden}
.mega-feature b{font:700 24px/1.1 var(--serif)}
.mega-feature p{font-size:14px;color:var(--on-dark);line-height:1.5}
.mega-feature .cv{width:92px;transform:rotate(-5deg);box-shadow:0 14px 24px -12px rgba(0,0,0,.6);align-self:flex-end;margin:4px 6px 4px 0}
.mega-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px;align-content:start}
.mega-cols a{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;text-decoration:none;padding:10px;border-radius:12px;transition:background-color .2s}
.mega-cols a:hover,.mega-cols a:focus-visible{background:var(--mist)}
.mi{width:40px;height:40px;border-radius:11px;background:var(--sage);display:grid;place-items:center;color:var(--green)}
.mi svg{width:21px;height:21px}
.mega-cols b{display:block;font:600 15px/1.2 var(--sans)}
.mega-cols small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.menu-btn{display:none;background:none;border:0;color:var(--green);width:48px;height:48px;margin-right:-10px;cursor:pointer;border-radius:12px}
.menu-btn svg{width:28px;height:28px;display:block;margin:auto}
.sheet{position:fixed;inset:0;z-index:80;background:var(--green);color:var(--cream);padding:calc(env(safe-area-inset-top,0px) + 14px) var(--gutter) calc(env(safe-area-inset-bottom,0px) + 32px);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}
.sheet[hidden]{display:none}
.sheet-top{display:flex;justify-content:space-between;align-items:center;min-height:60px;margin-bottom:8px}
.sheet .brand{width:190px}
.sheet .menu-btn{display:block;color:var(--cream)}
.sheet nav{display:flex;flex-direction:column}
.sheet nav > a,.sheet summary{font:700 27px/1.2 var(--serif);color:var(--cream);text-decoration:none;padding:14px 0;border-bottom:1px solid rgba(245,242,234,.14);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.sheet summary::-webkit-details-marker{display:none}
.sheet summary .chev{width:16px;height:16px;transition:transform .3s}
.sheet details[open] summary .chev{transform:rotate(180deg)}
.sheet details a{display:block;font:500 17px/1.3 var(--sans);text-decoration:none;padding:12px 0 12px 14px;color:var(--on-dark)}
.sheet .btn{margin-top:24px}
.sheet .sheet-contact{margin-top:22px;font-size:15px;color:var(--on-dark);line-height:1.9}

/* ---------- Hero ---------- */
.hero{position:relative;background:linear-gradient(180deg,#FFFFFF 0%,#F4F7F4 100%);overflow:clip}
.hero-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(20px,3vw,48px);align-items:center;min-height:min(800px,calc(100svh - 88px));padding-block:clamp(32px,4vw,56px)}
.hero h1{font-size:clamp(44px,4.9vw,74px);line-height:.98;letter-spacing:-.022em}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.07em;margin-bottom:-.07em}
.hero h1 .ln > span{display:inline-block}
.hero .lede{margin-top:24px;max-width:44ch}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-svc{display:flex;flex-wrap:wrap;gap:8px;margin:32px 0 0;padding:0;list-style:none}
.hero-svc a{display:inline-flex;align-items:center;gap:8px;font:500 14px/1 var(--sans);padding:9px 13px 9px 10px;border-radius:999px;background:var(--white);box-shadow:inset 0 0 0 1px var(--line);color:var(--green);text-decoration:none;transition:box-shadow .2s,background-color .2s}
.hero-svc a:hover{box-shadow:inset 0 0 0 1.5px var(--green)}
.hero-svc svg{width:16px;height:16px;color:var(--gold-ink)}
.hero-contact{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:22px;font-size:14.5px;color:var(--muted)}
.hero-contact a{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.hero-contact a:hover{color:var(--green)}
.hero-contact .ic{color:var(--gold-ink)}
.hero-art{position:relative;height:clamp(500px,45vw,640px)}
.plinth{position:absolute;right:0;top:3%;width:90%;height:90%;background:var(--green);border-radius:var(--r-lg);overflow:hidden}
.plinth svg{position:absolute;inset:0;width:100%;height:100%}
.plinth .rib{fill:none;stroke:var(--gold-2);stroke-width:2;stroke-linecap:round}
.plinth .wm{position:absolute;left:-40px;bottom:-60px;width:300px;height:300px;color:rgba(255,255,255,.035)}
.stage3d{position:absolute;inset:0;perspective:2200px;perspective-origin:50% 26%}
.scene{position:absolute;left:54%;top:79%;transform-style:preserve-3d;transform:rotateX(var(--rx,-11deg)) rotateY(var(--ry,-26deg)) scale(var(--sc,1))}
.obj{position:absolute;left:0;top:0;transform-style:preserve-3d}
.obj > .b3{left:calc(var(--w) / -2);top:calc(var(--h) * -1)}
.obj > .sl{left:calc(var(--l) / -2);top:calc(var(--t) * -1)}
.floor-shadow{position:absolute;left:54%;top:77%;width:560px;height:110px;margin-left:-280px;background:radial-gradient(closest-side,rgba(0,0,0,.5),rgba(0,0,0,0));filter:blur(8px)}
.hero-tag{position:absolute;left:calc(10% + 22px);bottom:calc(7% + 18px);z-index:4}
.hero-tag.sample{color:var(--on-dark-2)}


/* ---------- Section rhythm ---------- */
.sec{padding-block:clamp(88px,9vw,140px);position:relative}
.sec-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px 64px;align-items:end;margin-bottom:clamp(36px,4.5vw,60px)}
.sec-head .lede{justify-self:end}
/* Dark bands sit as rounded bookcloth panels inside the page margin. */
.band{margin-inline:clamp(0px,1.4vw,22px);border-radius:clamp(0px,2.6vw,36px);background:var(--green);overflow:clip;position:relative}
.band .ribbon{position:absolute;left:0;right:0;top:0;height:120px;pointer-events:none;opacity:.55}
.band .ribbon path{fill:none;stroke:var(--gold-2);stroke-width:1.5}

/* ---------- Brand introduction ---------- */
.brand-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,6vw,96px);align-items:center}
.ob-stage{position:relative;height:clamp(400px,38vw,520px);perspective:1800px;perspective-origin:50% 0%}
.ob{position:absolute;left:50%;top:50%;width:640px;height:440px;margin:-220px 0 0 -320px;transform-style:preserve-3d;transform:rotateX(44deg) rotateZ(-5deg) scale(var(--obs,.9))}
.ob-cover{position:absolute;inset:-14px -16px;background:#1D4A39;border-radius:6px;transform:translateZ(-6px);box-shadow:0 46px 80px -30px rgba(0,0,0,.85)}
.pg,.leaf > div{background:#FBF8F0;padding:34px 30px 40px;font:400 11.5px/1.72 "Libre Baskerville",Georgia,serif;color:#3a3933;overflow:hidden}
.pg{position:absolute;top:0;width:320px;height:440px}
.pg-l{left:0;border-radius:4px 0 0 4px;box-shadow:inset -20px 0 26px -18px rgba(80,60,20,.4)}
.pg-r{left:320px;border-radius:0 4px 4px 0;box-shadow:inset 20px 0 26px -18px rgba(80,60,20,.4)}
.pg .rh{font:600 8.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#A39C89;text-align:center;margin-bottom:22px}
.pg h4{font:700 22px/1.1 var(--serif);margin:0 0 14px;color:var(--green);text-align:center}
.pg p,.leaf p{margin:0 0 7px;text-align:justify;hyphens:auto;text-indent:1.2em}
.pg p.first,.leaf p.first{text-indent:0}
.pg .dc::first-letter{float:left;font:700 44px/.8 var(--serif);color:var(--gold-ink);padding:4px 6px 0 0}
.pg .folio,.leaf .folio{position:absolute;bottom:16px;left:0;right:0;text-align:center;font:600 9.5px/1 var(--sans);letter-spacing:.2em;color:#A39C89}
.colophon{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:14px}
.colophon .mk{width:92px;height:92px;color:var(--green)}
.colophon b{font:700 24px/1.1 var(--serif);color:var(--green)}
.colophon span{font:600 9.5px/1.5 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-ink)}
.leaf{position:absolute;left:320px;top:0;width:320px;height:440px;transform-origin:left center;transform-style:preserve-3d;transform:rotateY(-176deg)}
.leaf > div{position:absolute;inset:0;backface-visibility:hidden}
.leaf .back{transform:rotateY(180deg);box-shadow:inset -20px 0 26px -18px rgba(80,60,20,.35)}
.leaf .front{box-shadow:inset 20px 0 26px -18px rgba(80,60,20,.35)}
.ribbon-mark{position:absolute;left:315px;top:-10px;width:10px;height:478px;background:#8E1F24;transform:translateZ(2px);clip-path:polygon(0 0,100% 0,100% 100%,50% 95%,0 100%)}
.brand-copy .lede{margin-top:22px}
.pillars{display:grid;gap:20px;margin-top:36px}
.pillar{display:grid;grid-template-columns:48px minmax(0,1fr);gap:18px;align-items:start}
.pillar .pi{width:48px;height:48px;border-radius:14px;background:rgba(230,211,165,.12);display:grid;place-items:center;color:var(--gold-3)}
.pillar .pi svg{width:24px;height:24px}
.pillar b{display:block;font:700 22px/1.2 var(--serif);color:var(--cream)}
.pillar p{color:var(--on-dark);font-size:16px;margin-top:4px;max-width:44ch}
.brand-copy .link{margin-top:34px}

/* ---------- Services explorer ---------- */
.svx{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(24px,3vw,40px);align-items:start}
.svx-tabs{display:flex;flex-direction:column;gap:2px;position:sticky;top:112px}
.svx-group{font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin:18px 0 6px 14px}
.svx-group:first-child{margin-top:0}
.svx-tab{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;text-align:left;background:none;border:0;padding:8px 14px;border-radius:14px;font:600 16px/1.2 var(--sans);color:var(--ink);cursor:pointer;transition:background-color .25s,color .25s}
.svx-tab .ti{width:32px;height:32px;border-radius:9px;background:var(--sage);color:var(--green);display:grid;place-items:center;flex:none;transition:background-color .25s,color .25s}
.svx-tab .ti svg{width:18px;height:18px}
.svx-tab:hover{background:var(--mist)}
.svx-tab[aria-selected="true"]{background:var(--green);color:var(--cream)}
.svx-tab[aria-selected="true"] .ti{background:var(--gold-2);color:var(--green)}
.svx-stage{background:var(--mist);border-radius:var(--r-lg);position:relative;overflow:hidden}
.svx-panel{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.85fr);gap:clamp(24px,2.6vw,40px);padding:clamp(26px,2.8vw,40px);min-height:600px;align-items:center}
.svx-panel[hidden]{display:none}
.svx-copy h3{font-size:clamp(32px,2.8vw,40px)}
.svx-copy p{margin-top:12px;color:var(--muted);font-size:16.5px}
.svx-copy ul{list-style:none;margin:18px 0 26px;padding:0;display:grid;gap:8px}
.svx-copy li{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:15.5px}
.svx-copy li .ic{color:var(--gold-ink);margin-top:3px}
.vis{position:relative;height:500px}
.vis > *{position:absolute}
.vlabel{font:600 11.5px/1 var(--sans);letter-spacing:.04em;color:var(--muted);display:flex;align-items:center;gap:8px}
.vlabel::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
.paper{background:#FFFEFA;box-shadow:0 1px 0 rgba(0,0,0,.04),0 26px 50px -26px rgba(10,50,34,.45);border-radius:4px}
.chip-ui{display:inline-flex;align-items:center;gap:6px;font:600 11.5px/1 var(--sans);padding:6px 9px;border-radius:999px;background:var(--white);color:var(--green);box-shadow:0 0 0 1px var(--line)}
/* Ghostwriting */
.gw-audio{left:0;top:0;width:58%;padding:16px 18px;background:var(--white);border-radius:16px;box-shadow:0 20px 40px -24px rgba(10,50,34,.45)}
.gw-audio .row{display:flex;align-items:center;gap:12px}
.gw-audio .pl{width:34px;height:34px;border-radius:50%;background:var(--green);color:var(--gold-3);display:grid;place-items:center;flex:none}
.gw-audio .pl .ic{width:14px;height:14px}
.gw-audio b{display:block;font:600 14px/1.2 var(--sans)}
.gw-audio small{font-size:12px;color:var(--muted)}
.wave-bars{display:flex;align-items:center;gap:3px;height:34px;margin-top:12px}
.wave-bars i{flex:1;background:var(--sage-2);border-radius:2px}
.wave-bars i.on{background:var(--gold)}
.gw-quote{margin-top:12px;font:italic 400 13.5px/1.55 "Libre Baskerville",Georgia,serif;color:#3a3933;border-left:3px solid var(--gold);padding-left:12px}
.gw-page{right:0;bottom:0;width:60%;padding:30px 30px 34px;font:400 13px/1.75 "Libre Baskerville",Georgia,serif;color:#34332d}
.gw-page .rh{font:600 9px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#A39C89;text-align:center;margin-bottom:16px}
.gw-page h5{font:700 20px/1.1 var(--serif);color:var(--green);margin:0 0 12px;text-align:center}
.gw-page mark{background:rgba(201,163,94,.28);color:inherit;padding:0 2px}
.gw-arrow{left:46%;top:44%;width:80px;height:60px;color:var(--gold)}
/* Fiction ghostwriting */
.fx-card{width:150px;background:var(--white);border-radius:12px;padding:7px 7px 11px;box-shadow:0 18px 36px -20px rgba(10,50,34,.5);font-size:12.5px;line-height:1.38;color:var(--muted)}
.fx-card .ph{height:124px;border-radius:7px;background:var(--img) center/cover;margin-bottom:8px}
.fx-card b{display:block;font:700 17px/1.1 var(--serif);color:var(--green)}
.fx-outline{right:0;bottom:0;width:46%;padding:16px 18px;background:var(--white);border-radius:14px;box-shadow:0 20px 40px -24px rgba(10,50,34,.45)}
.fx-outline h6{font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 10px}
.fx-outline ol{margin:0;padding-left:20px;display:grid;gap:6px;font:400 13px/1.4 "Libre Baskerville",Georgia,serif;color:#34332d}
.fx-arc{left:0;bottom:0;width:52%;height:120px;background:var(--white);border-radius:14px;padding:12px 14px;box-shadow:0 20px 40px -24px rgba(10,50,34,.45)}
.fx-arc svg{width:100%;height:100%;overflow:visible}
/* Editing */
.ed-doc{left:0;top:0;width:64%;height:100%;display:flex;flex-direction:column;overflow:hidden}
.ed-bar{display:flex;align-items:center;gap:8px;white-space:nowrap;padding:10px 14px;border-bottom:1px solid #ECE6D8;font:600 11.5px/1 var(--sans);color:var(--muted);background:#FBF9F3;border-radius:4px 4px 0 0}
.ed-bar .on{color:var(--green-3)}
.ed-bar .dot{width:7px;height:7px;border-radius:50%;background:#2E8B57}
.ed-text{padding:26px 30px;font:400 14.5px/1.85 "Libre Baskerville",Georgia,serif;color:#2F2E29}
.ed-text p{margin:0 0 12px}
.ed-text del{color:#B2402D;text-decoration:line-through;text-decoration-thickness:1.5px}
.ed-text ins{color:#1E6B45;text-decoration:underline;text-decoration-color:#1E6B45;text-underline-offset:3px}
.ed-text .anc{background:rgba(201,163,94,.3);border-bottom:2px solid var(--gold)}
.ed-cmt{right:0;width:33%;padding:12px 14px;background:var(--white);border-radius:12px;box-shadow:0 16px 32px -20px rgba(10,50,34,.45);font:400 12.5px/1.45 var(--sans);color:#3d4a44}
.ed-cmt::before{content:"";position:absolute;right:100%;top:22px;width:26px;height:1.5px;background:var(--gold)}
.ed-cmt b{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--green);margin-bottom:4px}
.ed-cmt b i{width:18px;height:18px;border-radius:50%;background:var(--green);color:var(--gold-3);display:grid;place-items:center;font:700 9px/1 var(--sans);font-style:normal}
.ed-cmt em{display:block;font-style:normal;font-size:11px;color:var(--muted-2);margin-top:6px}
/* Cover design */
.cc{display:flex;flex-direction:column;gap:10px;width:31%}
.cc .cv{box-shadow:0 22px 40px -22px rgba(0,0,0,.6)}
.cc.pick .cv{box-shadow:0 0 0 3px var(--gold-2),0 26px 44px -20px rgba(0,0,0,.6)}
.cc .vlabel b{color:var(--green);font-weight:700}
/* Formatting */
.fm-spread{left:0;top:0;width:82%;display:grid;grid-template-columns:1fr 1fr;background:#FDFBF5;border-radius:3px;box-shadow:0 30px 60px -30px rgba(10,50,34,.5)}
.fm-page{position:relative;padding:34px 26px 40px 30px;font:400 10.5px/1.66 "Libre Baskerville",Georgia,serif;color:#34332d;min-height:380px}
.fm-page:last-child{padding:34px 30px 40px 26px}
.fm-page:first-child{box-shadow:inset -18px 0 22px -18px rgba(80,60,20,.32)}
.fm-page:last-child{box-shadow:inset 18px 0 22px -18px rgba(80,60,20,.32)}
.fm-page .rh{font:600 8px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#A39C89;text-align:center;margin-bottom:16px}
.fm-page .sink{height:52px}
.fm-page .cn{font:700 30px/1 var(--serif);color:var(--gold-ink);text-align:center}
.fm-page .ct{font:italic 600 17px/1.15 var(--serif);text-align:center;color:var(--green);margin:6px 0 16px}
.fm-page p{margin:0;text-align:justify;hyphens:auto;text-indent:1.4em}
.fm-page p.first{text-indent:0}
.fm-page p.first::first-letter{float:left;font:700 38px/.82 var(--serif);color:var(--green);padding:3px 5px 0 0}
.fm-page .fo{position:absolute;bottom:14px;left:0;right:0;text-align:center;font:600 8.5px/1 var(--sans);color:#A39C89}
.fm-guides .fm-page::after{content:"";position:absolute;inset:30px 22px 34px 26px;border:1px dashed rgba(178,138,71,.75);pointer-events:none}
.fm-guides .fm-page:last-child::after{inset:30px 26px 34px 22px}
.fm-phone{right:0;bottom:0;width:150px;height:300px;border-radius:26px;background:#141a17;padding:9px;box-shadow:0 26px 50px -20px rgba(0,0,0,.6)}
.fm-phone > div{background:#FBF8EF;border-radius:19px;height:100%;padding:22px 14px;font:400 10px/1.62 "Libre Baskerville",Georgia,serif;color:#3b3a33;overflow:hidden}
.fm-phone b{display:block;font:700 15px/1.2 var(--serif);color:var(--green);margin-bottom:10px;text-align:center}
.fm-toggle{left:0;bottom:0;display:flex;align-items:center;gap:10px;font:600 13px/1 var(--sans);color:var(--green);background:var(--white);padding:9px 14px 9px 10px;border-radius:999px;box-shadow:0 0 0 1px var(--line);cursor:pointer}
.fm-toggle input{appearance:none;width:34px;height:20px;border-radius:999px;background:var(--sage-2);position:relative;margin:0;cursor:pointer;transition:background-color .2s}
.fm-toggle input::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .25s var(--ease)}
.fm-toggle input:checked{background:var(--green)}
.fm-toggle input:checked::after{transform:translateX(14px)}
/* Printing */
.pr-stage{left:0;right:0;top:0;bottom:70px}
.pr-specs{left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pr-specs div{background:var(--white);border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.4;color:var(--muted);box-shadow:0 0 0 1px var(--line)}
.pr-specs b{display:block;font:700 16px/1.15 var(--serif);color:var(--green)}
/* Publishing */
.pb-store{left:0;top:0;width:76%;background:var(--white);border-radius:16px;overflow:hidden;box-shadow:0 28px 56px -28px rgba(10,50,34,.45)}
.pb-top{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#F2F4F1;font:600 12px/1 var(--sans);color:var(--muted)}
.pb-top span{flex:1;background:var(--white);border-radius:999px;padding:7px 12px;font-weight:500}
.pb-body{display:grid;grid-template-columns:132px 1fr;gap:18px;padding:18px}
.pb-body .cv{box-shadow:0 14px 26px -14px rgba(0,0,0,.55)}
.pb-body h5{font:700 21px/1.1 var(--serif);margin:0;color:var(--ink)}
.pb-body .by{font-size:13px;color:var(--muted);margin:4px 0 12px}
.fmts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.fmts span{font:600 11.5px/1.2 var(--sans);padding:8px 10px;border-radius:8px;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink)}
.fmts span.on{box-shadow:inset 0 0 0 2px var(--green);background:var(--sage)}
.pb-desc{font-size:12.5px;line-height:1.5;color:var(--muted)}
.pb-meta{right:0;bottom:0;width:46%;background:var(--green);color:var(--cream);border-radius:16px;padding:16px 18px;box-shadow:0 26px 50px -24px rgba(10,50,34,.6)}
.pb-meta h6{font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-3);margin:0 0 10px}
.pb-meta ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:13px}
.pb-meta li{display:flex;align-items:center;gap:8px}
.pb-meta .ic{width:15px;height:15px;color:var(--gold-3)}
/* Marketing */
.mk-post{left:0;top:0;width:44%;background:var(--white);border-radius:14px;overflow:hidden;box-shadow:0 26px 50px -26px rgba(10,50,34,.5)}
.mk-head{display:flex;align-items:center;gap:8px;padding:9px 11px;font:600 12px/1 var(--sans)}
.mk-head i{width:24px;height:24px;border-radius:50%;background:#6A4C12;display:grid;place-items:center;color:#F7E7B9}
.mk-head i svg{width:14px;height:14px}
.mk-img{aspect-ratio:1;background:#6A4C12;display:grid;place-items:center;position:relative;overflow:hidden}
.mk-img::before{content:"";position:absolute;inset:0;background:url(covers/goldleaf.webp) center/cover;opacity:.35;filter:blur(2px)}
.mk-img .cv{width:46%;position:relative;transform:rotate(-6deg);box-shadow:0 18px 30px -12px rgba(0,0,0,.6)}
.mk-img .ribbon-tag{position:absolute;left:10px;top:10px;font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;background:#FBF3DF;color:#6A4C12;padding:7px 9px;border-radius:4px}
.mk-cap{padding:9px 11px 12px;font-size:12px;line-height:1.45}
.mk-story{left:47%;top:0;width:24%;aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:#3B2A0A;color:#FBF3DF;box-shadow:0 26px 50px -24px rgba(0,0,0,.6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:14px}
.mk-story::before{content:"";position:absolute;inset:0;background:url(covers/goldleaf.webp) center/cover;opacity:.3}
.mk-story > *{position:relative}
.mk-story b{font:700 34px/1 var(--serif)}
.mk-story span{font:600 10px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.mk-story .bar{position:absolute;left:10px;right:10px;top:8px;height:2px;background:rgba(255,255,255,.35);border-radius:2px}
.mk-story .bar::after{content:"";position:absolute;left:0;top:0;bottom:0;width:60%;background:#fff;border-radius:2px}
.mk-mail{right:0;top:4%;width:27%;background:var(--white);border-radius:12px;overflow:hidden;box-shadow:0 26px 50px -24px rgba(10,50,34,.5);font-size:11.5px;line-height:1.45}
.mk-mail .mh{background:#6A4C12;color:#FBF3DF;padding:12px 12px;font:italic 600 16px/1.15 "Playfair Display",Georgia,serif}
.mk-mail .mb{padding:10px 12px 12px;display:grid;gap:8px;color:var(--muted)}
.mk-mail .mbtn{justify-self:start;background:#B8913F;color:#fff;font-weight:700;padding:7px 11px;border-radius:999px}
.mk-ad{left:0;right:0;bottom:0;height:84px;border-radius:12px;overflow:hidden;background:#FBF3DF;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:0 20px 0 14px;box-shadow:0 20px 40px -24px rgba(10,50,34,.5)}
.mk-ad .cv{width:44px;transform:translateY(8px) rotate(-4deg);box-shadow:0 10px 18px -8px rgba(0,0,0,.5)}
.mk-ad b{display:block;font:italic 600 19px/1.1 "Playfair Display",Georgia,serif;color:#22382B}
.mk-ad small{font-size:12px;color:#6E5137}
.mk-ad .go{font:700 12.5px/1 var(--sans);background:#22382B;color:#FBF3DF;padding:10px 14px;border-radius:999px;white-space:nowrap}
.mk-tags{position:absolute;left:0;right:0;bottom:96px;display:flex;justify-content:space-between}
/* Author website */
.web-desk{left:0;top:0;width:84%;background:var(--white);border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -28px rgba(10,50,34,.5)}
.web-bar{display:flex;align-items:center;gap:6px;padding:9px 12px;background:#EEF1EE}
.web-bar i{width:9px;height:9px;border-radius:50%;background:#cfd6d1}
.web-bar span{margin-left:8px;flex:1;background:var(--white);border-radius:999px;font-size:11px;padding:5px 12px;color:var(--muted)}
.site-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;background:#152242;color:#F2E6BE;font-size:11px}
.site-nav b{font:700 14px/1 "Libre Baskerville",Georgia,serif;letter-spacing:.12em;text-transform:uppercase}
.site-nav span{display:flex;gap:14px;opacity:.85}
.site-hero{display:grid;grid-template-columns:1fr 118px;gap:20px;padding:22px 22px 26px;background:#152242;color:#fff;align-items:center}
.site-hero .kick{font:600 9.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#E6B655}
.site-hero h6{font:italic 400 24px/1.12 "Libre Baskerville",Georgia,serif;margin:8px 0;color:#F2E6BE}
.site-hero p{font-size:11.5px;opacity:.85;margin:0 0 12px;max-width:34ch}
.site-hero .bt{display:flex;gap:8px}
.site-hero .bt span{font:700 10.5px/1 var(--sans);padding:8px 11px;border-radius:999px;background:#E6B655;color:#152242}
.site-hero .bt span + span{background:transparent;color:#F2E6BE;box-shadow:inset 0 0 0 1px rgba(242,230,190,.5)}
.site-hero .cv{box-shadow:0 18px 30px -12px rgba(0,0,0,.6);transform:rotate(3deg)}
.site-row{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;padding:16px 22px 20px}
.site-news{background:var(--mist);border-radius:10px;padding:12px;font-size:11px;color:var(--muted)}
.site-news b{display:block;font:700 13px/1.2 var(--serif);color:var(--ink);margin-bottom:6px}
.site-news .f{display:flex;gap:6px}
.site-news .f span{flex:1;background:#fff;border-radius:6px;padding:6px 8px;box-shadow:0 0 0 1px var(--line)}
.site-news .f em{font-style:normal;background:#152242;color:#fff;border-radius:6px;padding:6px 9px;font-weight:700}
.site-books{display:flex;gap:8px;align-items:flex-end}
.site-books .cv{width:30%;box-shadow:0 8px 14px -8px rgba(0,0,0,.5)}
.web-phone{right:0;bottom:0;width:132px;height:268px;border-radius:24px;background:#141a17;padding:8px;box-shadow:0 26px 50px -18px rgba(0,0,0,.6)}
.web-phone > div{border-radius:17px;height:100%;background:#152242;color:#fff;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 10px;text-align:center;font-size:9px}
.web-phone b{font:700 10px/1 "Libre Baskerville",Georgia,serif;letter-spacing:.12em;color:#F2E6BE}
.web-phone .cv{width:62px}
.web-phone h6{font:italic 400 13px/1.15 "Libre Baskerville",Georgia,serif;margin:0;color:#F2E6BE}
.web-phone span{font:700 9px/1 var(--sans);padding:6px 9px;border-radius:999px;background:#E6B655;color:#152242}
/* Trailer */
.tr-screen{left:0;right:0;top:0;aspect-ratio:16/9;max-height:300px;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 26px 50px -24px rgba(0,0,0,.6)}
.tr-screen .shot{position:absolute;inset:9% 0;background:var(--img) center/cover;opacity:0;transition:opacity .6s}
.tr-screen .shot.on{opacity:1}
.tr-screen .cap{position:absolute;left:0;right:0;bottom:15%;text-align:center;font:400 clamp(22px,2.4vw,34px)/1 "Bebas Neue",Impact,sans-serif;letter-spacing:.08em;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.7);padding:0 16px;z-index:2}
.tr-ctrl{left:0;right:0;top:calc(min(300px,(100% * 0) + 300px) + 14px);display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}
.tr-play{width:44px;height:44px;border-radius:50%;border:0;background:var(--green);color:var(--gold-3);display:grid;place-items:center;cursor:pointer;transition:background-color .2s}
.tr-play:hover{background:var(--green-3)}
.tr-play .ic{width:18px;height:18px}
.tr-line{position:relative;height:6px;border-radius:6px;background:var(--sage-2)}
.tr-line i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--gold);border-radius:6px}
.tr-line span{position:absolute;top:-4px;width:2px;height:14px;background:var(--green-3);opacity:.5}
.tr-time{font:600 12.5px/1 var(--sans);color:var(--muted);font-variant-numeric:tabular-nums}
.tr-board{left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tr-frame{background:var(--white);border-radius:10px;padding:6px 6px 9px;box-shadow:0 0 0 1px var(--line);font:400 11.5px/1.35 var(--sans);color:var(--muted);cursor:pointer;border:0;text-align:left;transition:box-shadow .2s,transform .3s var(--ease)}
.tr-frame:hover{transform:translateY(-3px)}
.tr-frame .fi{display:block;aspect-ratio:16/9;border-radius:6px;background:var(--img) center/cover;margin-bottom:7px}
.tr-frame b{display:flex;justify-content:space-between;font:700 12px/1 var(--sans);color:var(--green);margin-bottom:3px}
.tr-frame[aria-pressed="true"]{box-shadow:0 0 0 2px var(--gold-2)}

/* ---------- Journey ---------- */
.journey{background:var(--sage)}
.j-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(32px,5vw,80px)}
.j-stage{position:sticky;top:112px;height:min(620px,calc(100svh - 140px));border-radius:var(--r-lg);background:var(--white);overflow:hidden;box-shadow:0 30px 70px -44px rgba(10,50,34,.5)}
.j-rail{position:absolute;left:28px;right:28px;top:22px;display:flex;justify-content:space-between;z-index:5}
.j-rail::before{content:"";position:absolute;left:9px;right:9px;top:8px;height:2px;background:var(--line)}
.j-rail .fill{position:absolute;left:9px;top:8px;height:2px;background:var(--gold);width:calc(100% - 18px);transform-origin:left;transform:scaleX(0)}
.j-rail button{position:relative;width:18px;height:18px;border-radius:50%;border:0;padding:0;background:var(--white);box-shadow:inset 0 0 0 2px var(--line);transition:background-color .3s,box-shadow .3s;cursor:pointer}
.j-rail button.on{background:var(--gold);box-shadow:none}
.j-rail button em{position:absolute;top:24px;left:50%;transform:translateX(-50%);font:600 11.5px/1 var(--sans);font-style:normal;white-space:nowrap;color:var(--muted-2)}
.j-rail button.on em{color:var(--green)}
.j-rail button::before{content:"";position:absolute;inset:-14px}
.j-scene{position:absolute;inset:66px 0 0 0;perspective:1600px}
.j-scene > *{position:absolute}
.j-page{left:10%;top:7%;width:48%;height:84%;background:#FFFEFA;box-shadow:0 26px 50px -26px rgba(10,50,34,.45);padding:7% 7%;font:400 clamp(11px,1vw,14px)/1.85 "Libre Baskerville",Georgia,serif;color:#2b2f2d;overflow:hidden}
.j-page .ch{text-align:center;font:600 10px/1 var(--sans);letter-spacing:.24em;margin-bottom:1.6em;color:#8a8f8c}
.j-page p{margin:0 0 .9em}
.j-page .del{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:rgba(178,64,45,var(--strike,0));color:rgb(calc(43 + 110 * var(--strike,0)),calc(47 + 110 * var(--strike,0)),calc(45 + 110 * var(--strike,0)))}
.j-page .ins{font-size:calc(1em * var(--insop,0));color:#1E6B45;text-decoration:underline;text-underline-offset:3px;opacity:var(--insop,0)}
.j-note{right:7%;top:12%;width:30%;background:#FFF7E3;border-radius:4px;padding:14px 14px 16px;font:italic 400 13px/1.5 "Libre Baskerville",Georgia,serif;color:#5B4720;box-shadow:0 16px 30px -18px rgba(90,70,20,.5);transform:rotate(3deg)}
.j-note b{display:block;font:600 11px/1 var(--sans);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:8px}
.j-stamp{right:9%;top:9%;font:700 clamp(18px,1.8vw,24px)/1 var(--sans);letter-spacing:.16em;color:var(--green-3);border:3px solid var(--green-3);padding:8px 14px;border-radius:8px;transform:rotate(-9deg) scale(.6);opacity:0}
.j-marg{right:5%;top:30%;width:30%;opacity:0;background:var(--white);border-radius:12px;padding:12px 14px;box-shadow:0 16px 32px -20px rgba(10,50,34,.45);font-size:12.5px;line-height:1.45;color:#3d4a44}
.j-marg b{display:block;color:var(--green);font-size:12px;margin-bottom:3px}
.j-int{left:10%;top:7%;width:48%;height:84%;background:#FDFBF5;padding:8% 8%;font:400 clamp(11px,.95vw,13.5px)/1.72 "Libre Baskerville",Georgia,serif;color:#34332d;opacity:0;box-shadow:0 26px 50px -26px rgba(10,50,34,.45)}
.j-int .cn{font:700 2.6em/1 var(--serif);color:var(--gold-ink);text-align:center;margin-top:1.4em}
.j-int .ct{font:italic 600 1.45em/1.1 var(--serif);color:var(--green);text-align:center;margin:.3em 0 1.1em}
.j-int p{margin:0;text-align:justify;text-indent:1.3em;hyphens:auto}
.j-int p.first{text-indent:0}
.j-int p.first::first-letter{float:left;font:700 3.3em/.8 var(--serif);color:var(--green);padding:.08em .1em 0 0}
.j-cover{right:7%;top:9%;width:31%;opacity:0;box-shadow:0 30px 50px -22px rgba(0,0,0,.55)}
.j-swatches{right:7%;bottom:9%;display:flex;gap:8px;opacity:0}
.j-swatches i{width:28px;height:28px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 6px 12px -6px rgba(0,0,0,.4)}
.j-book{left:50%;top:82%;width:0;height:0;opacity:0;transform-style:preserve-3d}
.j-glow{left:50%;top:52%;width:460px;height:460px;margin:-230px 0 0 -230px;border-radius:50%;background:radial-gradient(closest-side,rgba(201,163,94,.32),rgba(201,163,94,0));opacity:0}
.j-steps{list-style:none;margin:0;padding:0}
.j-step{min-height:min(56vh,520px);display:flex;flex-direction:column;justify-content:center;padding-block:24px;transition:opacity .4s}
.j-step:first-child{min-height:min(52vh,480px);justify-content:flex-start;padding-top:12px}
.j-step:last-child{min-height:min(56vh,520px)}
.j-step .k{display:inline-flex;align-items:center;gap:10px;font:600 13px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink)}
.j-step .k i{width:30px;height:30px;border-radius:50%;background:var(--green);color:var(--gold-3);font:700 15px/30px var(--serif);text-align:center;font-style:normal;font-variant-numeric:lining-nums}
.j-step h3{font-size:clamp(30px,2.8vw,40px);margin-top:14px}
.j-step p{margin-top:12px;color:var(--muted);max-width:44ch}
.j-get{margin:18px 0 0;padding:16px 18px;background:var(--white);border-radius:14px;max-width:420px;box-shadow:0 0 0 1px var(--line)}
.j-get b{display:block;font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:10px}
.j-get ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:15px}
.j-get li{display:grid;grid-template-columns:20px 1fr;gap:8px}
.j-get .ic{color:var(--green-3);margin-top:3px}
.j-step .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.j-step .tags a{font:600 13px/1 var(--sans);padding:10px 13px;border-radius:999px;background:var(--white);color:var(--green);text-decoration:none;box-shadow:inset 0 0 0 1px var(--line);transition:background-color .2s,color .2s}
.j-step .tags a:hover{background:var(--green);color:var(--cream)}
.js .j-step{opacity:.4} .js .j-step.on{opacity:1}
.j-nav{display:none}

/* ---------- Showcase ---------- */
.sc-head{display:flex;justify-content:space-between;align-items:end;gap:28px;flex-wrap:wrap;margin-bottom:44px}
.sc-head .lede{margin-top:16px}
.sc-ctrl{display:flex;align-items:center;gap:12px}
.rbtn{width:52px;height:52px;border-radius:50%;border:0;background:rgba(245,242,234,.1);color:var(--cream);display:grid;place-items:center;cursor:pointer;transition:background-color .25s,color .25s,transform .3s var(--ease)}
.rbtn:hover:not(:disabled){background:var(--gold-2);color:var(--green)}
.rbtn:disabled{opacity:.3;cursor:default}
.rbtn .ic{width:22px;height:22px}
.sc-count{font:600 14px/1 var(--sans);color:var(--on-dark);min-width:58px;text-align:center;font-variant-numeric:tabular-nums}
.sc-track{display:flex;gap:clamp(18px,2.2vw,30px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);padding:24px var(--gutter) 34px;scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);overscroll-behavior-x:contain}
.sc-track::-webkit-scrollbar{display:none}
.sc-track{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent)}
.sc-track:focus-visible{outline-offset:-4px}
.sc-item{flex:0 0 clamp(230px,21vw,290px);scroll-snap-align:start;perspective:1200px;margin:0}
.sc-book{position:relative;transform-style:preserve-3d;transition:transform .7s var(--ease)}
.sc-book .clip{position:relative;overflow:hidden;border-radius:1px 3px 3px 1px;box-shadow:0 32px 50px -26px rgba(0,0,0,.8)}
.sc-item:hover .sc-book,.sc-item.show .sc-book,.sc-item:focus-within .sc-book{transform:translateY(-8px) rotateY(-10deg) rotateX(2deg)}
.sc-detail{position:absolute;left:0;right:0;bottom:0;z-index:6;background:rgba(7,33,23,.94);color:var(--cream);padding:16px 16px 18px;font-size:13.5px;line-height:1.5;transform:translateY(101%);transition:transform .5s var(--ease)}
.sc-item:hover .sc-detail,.sc-item.show .sc-detail,.sc-item:focus-within .sc-detail{transform:translateY(0)}
.sc-detail b{display:block;font:600 11.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-3);margin-bottom:7px}
.sc-item figcaption{display:flex;justify-content:space-between;align-items:start;gap:10px;margin-top:18px}
.sc-item figcaption b{display:block;font:700 21px/1.12 var(--serif);color:var(--cream)}
.sc-item figcaption span{display:block;font-size:13.5px;color:var(--on-dark-2);margin-top:4px}
.sc-item .info{flex:none;width:40px;height:40px;border-radius:50%;border:0;background:rgba(245,242,234,.1);color:var(--cream);cursor:pointer;display:grid;place-items:center;transition:background-color .2s,color .2s}
.sc-item .info svg{width:18px;height:18px}
.sc-item .info:hover,.sc-item.show .info{background:var(--gold-2);color:var(--green)}
.sc-progress{height:3px;background:rgba(245,242,234,.14);border-radius:3px;overflow:hidden}
.sc-progress i{display:block;height:100%;width:20%;background:var(--gold-2);border-radius:3px;transition:transform .3s var(--ease)}
.sc-foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:20px;align-items:center}

/* ---------- Genre shelf ---------- */
.g-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,72px);align-items:end}
.shelf{position:relative}
.spines-wrap{position:relative}
.spines{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent);display:flex;align-items:flex-end;gap:5px;height:410px;padding:60px 4px 0;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
.spines::-webkit-scrollbar{display:none}
.spine{flex:0 0 auto;width:var(--sw);height:var(--sh);border:0;padding:16px 0 12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;border-radius:3px 3px 1px 1px;background:var(--bg);color:var(--fg);background-image:linear-gradient(90deg,rgba(0,0,0,.25),rgba(255,255,255,.14) 28%,rgba(255,255,255,0) 55%,rgba(0,0,0,.22));transition:transform .55s var(--ease),box-shadow .4s;position:relative;scroll-snap-align:start}
.spine::before,.spine::after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--fg);opacity:.45}
.spine::before{top:8px} .spine::after{bottom:46px}
.spine .sg{display:none}
.spine .st{writing-mode:vertical-rl;font:700 14.5px/1 var(--sf,var(--serif));white-space:nowrap;flex:1;overflow:hidden;text-overflow:ellipsis}
.spine .sg{writing-mode:vertical-rl;font:600 9.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;opacity:.8;white-space:nowrap}
.spine .sp-m{width:22px;height:22px;flex:none}
.spine:hover{transform:translateY(-12px)}
.spine[aria-pressed="true"]{transform:translateY(-38px);box-shadow:0 22px 30px -14px rgba(10,50,34,.5)}
.spine:focus-visible{outline-offset:2px}
.plank{height:20px;background:var(--green);border-radius:4px;box-shadow:inset 0 3px 0 var(--gold-2),0 18px 30px -16px rgba(10,50,34,.6);position:relative;z-index:2}
.g-panel{display:grid;grid-template-columns:190px minmax(0,1fr);gap:26px;align-items:start;background:var(--mist);border-radius:var(--r-lg);padding:26px}
.g-cover{perspective:1000px}
.g-cover .cv{box-shadow:0 26px 44px -22px rgba(0,0,0,.6)}
.g-panel h3{font-size:clamp(28px,2.4vw,34px)}
.g-panel .gg{font:600 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:8px}
.g-panel p{color:var(--muted);margin-top:10px;font-size:16px}
.g-panel .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.g-panel .chips span{font:600 13px/1 var(--sans);padding:9px 12px;border-radius:999px;background:var(--white);color:var(--green);box-shadow:inset 0 0 0 1px var(--line)}
.g-panel .link{margin-top:20px}

/* ---------- Packages ---------- */
.packages{background:var(--mist)}
.pk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.pk{border-radius:var(--r-lg);padding:26px;display:flex;flex-direction:column;gap:16px;background:var(--white);box-shadow:0 0 0 1px var(--line);position:relative;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.pk:hover{transform:translateY(-6px);box-shadow:0 0 0 1px var(--line),0 30px 50px -32px rgba(10,50,34,.5)}
.pk.feat{background:var(--green);color:var(--cream);box-shadow:none}
.pk.feat h3{color:var(--cream)}
.pk-vis{height:168px;position:relative;border-radius:18px;background:var(--sage);overflow:hidden}
.pk.feat .pk-vis{background:rgba(245,242,234,.07)}
.pk-vis .cvw{position:absolute;bottom:-30px;width:96px}
.pk-vis .cvw .cv{box-shadow:0 16px 26px -12px rgba(0,0,0,.55)}
.pk-vis .tag-n{position:absolute;left:14px;top:14px;font:600 12px/1 var(--sans);color:var(--green);background:var(--white);padding:7px 10px;border-radius:999px}
.pk.feat .pk-vis .tag-n{background:var(--gold-2)}
.pk h3{font-size:clamp(28px,2.3vw,34px)}
.pk .for{font-size:15.5px;color:var(--muted);min-height:3.2em}
.pk.feat .for{color:var(--on-dark)}
.pk ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:15.5px}
.pk li{display:grid;grid-template-columns:20px 1fr;gap:10px}
.pk li .ic{color:var(--gold-ink);margin-top:3px}
.pk.feat li .ic{color:var(--gold-3)}
.pk .not{font-size:13.5px;color:var(--muted-2);margin-top:auto;padding-top:6px}
.pk.feat .not{color:var(--on-dark-2)}
.pk .q{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.pk.feat .q{border-color:rgba(245,242,234,.16);color:var(--on-dark)}
.pk .btn{width:100%}
.compare{margin-top:24px;background:var(--white);border-radius:var(--r-lg);box-shadow:0 0 0 1px var(--line);overflow:hidden}
.compare summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 26px;font:700 22px/1.2 var(--serif);color:var(--green);min-height:68px}
.compare summary::-webkit-details-marker{display:none}
.compare summary .pm{width:34px;height:34px;border-radius:50%;background:var(--green);color:var(--cream);display:grid;place-items:center;transition:transform .4s var(--ease)}
.compare summary .pm svg{width:16px;height:16px}
.compare[open] summary .pm{transform:rotate(45deg)}
.tbl-wrap{overflow-x:auto;padding:0 26px 22px}
.tbl{width:100%;border-collapse:collapse;min-width:640px;font-size:15px}
.tbl th,.tbl td{padding:12px 10px;border-top:1px solid var(--line);text-align:center}
.tbl th:first-child,.tbl td:first-child{text-align:left;font-weight:500}
.tbl thead th{border-top:0;font:700 18px/1.2 var(--serif);color:var(--green)}
.tbl thead th.feat{background:var(--sage);border-radius:10px 10px 0 0}
.tbl td.feat{background:rgba(231,238,233,.55)}
.tbl .yes .ic{color:var(--green-3);width:20px;height:20px}
.tbl .no{color:#9AA7A0}
.tbl .no .ic{width:16px;height:16px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pk-note{margin-top:16px}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(40px,6vw,96px)}
.faq-side .lede{margin-top:16px}
.faq-side .btn{margin-top:26px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list details:first-child{border-top:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:20px 0;min-height:64px;font:700 clamp(20px,1.7vw,24px)/1.25 var(--serif);color:var(--green)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list .pm{flex:none;width:32px;height:32px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--green);position:relative;transition:background-color .3s}
.faq-list .pm::before,.faq-list .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--green);transform:translate(-50%,-50%)}
.faq-list .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .4s var(--ease)}
.faq-list details[open] .pm{background:var(--green)}
.faq-list details[open] .pm::before,.faq-list details[open] .pm::after{background:var(--cream)}
.faq-list details[open] .pm::after{transform:translate(-50%,-50%) rotate(0)}
.faq-list .ans{padding:0 56px 22px 0;color:var(--muted);max-width:66ch}

/* ---------- Enquiry ---------- */
.enq-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(40px,6vw,88px);position:relative;z-index:2}
.enq-grid h2{font-size:clamp(40px,5vw,68px)}
.next-steps{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:16px;counter-reset:n}
.next-steps li{display:grid;grid-template-columns:42px 1fr;gap:16px;align-items:start;counter-increment:n}
.next-steps li::before{content:counter(n);width:42px;height:42px;border-radius:50%;background:rgba(230,211,165,.14);color:var(--gold-3);display:grid;place-items:center;font:700 19px/1 var(--serif)}
.next-steps b{display:block;font:700 21px/1.2 var(--serif);color:var(--cream)}
.next-steps span{color:var(--on-dark);font-size:15.5px}
.ways{margin-top:34px;display:grid;gap:6px;padding-top:24px;border-top:1px solid rgba(245,242,234,.14)}
.way{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center;text-decoration:none;color:var(--cream);padding:6px 0;border-radius:12px}
.way .wi{width:44px;height:44px;border-radius:50%;background:rgba(230,211,165,.12);display:grid;place-items:center;color:var(--gold-3);transition:background-color .2s,color .2s}
.way .wi .ic{width:20px;height:20px}
.way small{display:block;font-size:13px;color:var(--on-dark-2)}
.way b{font-weight:500;font-size:16.5px;overflow-wrap:anywhere}
a.way:hover .wi{background:var(--gold-2);color:var(--green)}
.enq-covers{display:flex;gap:12px;margin-top:34px;align-items:flex-end}
.enq-covers .cv{width:84px;box-shadow:0 16px 26px -12px rgba(0,0,0,.6)}
.enq-covers .cv:nth-child(2){width:96px}
.form{color:var(--ink);background:var(--white);border-radius:var(--r-lg);padding:clamp(24px,3vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:18px;box-shadow:0 40px 80px -40px rgba(0,0,0,.6);align-self:start}
.form h3,.on-dark .form h3{grid-column:1/-1;font-size:clamp(28px,2.4vw,34px);color:var(--green)}
.form .full{grid-column:1/-1}
.stages{grid-column:1/-1;border:0;margin:0;padding:0;min-width:0}
.stages legend{font-weight:600;font-size:14.5px;margin-bottom:10px;padding:0}
.stage-opts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.stage-opts label{position:relative;cursor:pointer}
.stage-opts input{position:absolute;opacity:0;pointer-events:none}
.stage-opts span{display:flex;flex-direction:column;gap:8px;height:100%;min-height:84px;padding:12px;border-radius:14px;box-shadow:inset 0 0 0 1.5px var(--line);font:600 14px/1.25 var(--sans);transition:box-shadow .2s,background-color .2s}
.stage-opts span svg{width:24px;height:24px;color:var(--gold-ink)}
.stage-opts label:hover span{box-shadow:inset 0 0 0 1.5px #A9BAAF}
.stage-opts input:checked + span{box-shadow:inset 0 0 0 2px var(--green);background:var(--sage)}
.stage-opts input:focus-visible + span{outline:2.5px solid var(--gold);outline-offset:2px}
.route-hint{grid-column:1/-1;background:var(--mist);border-radius:14px;padding:14px 16px;font-size:14.5px;line-height:1.5;color:var(--muted);display:flex;gap:12px;align-items:flex-start}
.route-hint b{color:var(--green)}
.route-hint .mk{width:26px;height:26px;color:var(--green);flex:none;margin-top:2px}
.field{display:grid;gap:7px;align-content:start}
.field label,.field .lab{font-weight:600;font-size:14.5px}
.opt{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{font:400 16px/1.4 var(--sans);color:var(--ink);background:var(--mist);border:1.5px solid var(--line);border-radius:12px;padding:0 14px;min-height:50px;width:100%;transition:border-color .2s,background-color .2s,box-shadow .2s}
.field textarea{min-height:112px;padding:12px 14px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#A9BAAF}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green);background:var(--white);box-shadow:0 0 0 4px rgba(27,82,64,.12)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#A33B2B;background:#FFF8F6}
.err{font-size:13.5px;color:#A33B2B;margin:0;display:flex;gap:6px;align-items:center}
.err:empty{display:none}
.upload{border:1.5px dashed #AEBDB4;border-radius:14px;padding:14px 16px;display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;background:var(--mist)}
.upload .ic{width:26px;height:26px;color:var(--green-3)}
.upload b{display:block;font-size:15px}
.upload span{font-size:13.5px;color:var(--muted)}
.upload .soon{font:600 12px/1 var(--sans);color:var(--muted);background:var(--white);padding:7px 10px;border-radius:999px;box-shadow:0 0 0 1px var(--line);white-space:nowrap}
.check{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:14.5px;color:var(--muted);align-items:start;cursor:pointer}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--green)}
.form-actions{grid-column:1/-1;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.form-note{grid-column:1/-1;margin:0;font-size:14.5px;line-height:1.5;border-radius:12px;padding:14px 16px;background:#FFF7E3;color:#5B4720;box-shadow:inset 0 0 0 1px #EBD8A8}
.form-note[hidden]{display:none}
.form-note b{color:#3E2F12}

/* ---------- Footer ---------- */
.foot{background:#07281B;color:var(--on-dark);padding-block:76px 36px;font-size:15px;margin:0 clamp(0px,1.4vw,22px) clamp(0px,1.4vw,22px);border-radius:0 0 clamp(0px,2.6vw,36px) clamp(0px,2.6vw,36px)}
#enquire{border-bottom-left-radius:0;border-bottom-right-radius:0}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.75fr) minmax(0,.75fr) minmax(0,1.2fr);gap:40px}
.foot .flogo{width:min(240px,72%)} .foot .flogo svg{display:block;width:100%;height:auto}
.foot p.tag{margin-top:20px;max-width:34ch}
.foot h4{font:600 12.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-3);margin:0 0 16px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.foot ul a{display:inline-block;padding:5px 0}
.foot a{text-decoration:none}
.foot a:hover{color:var(--cream);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--gold)}
.foot address{font-style:normal;line-height:1.7}
.foot address a{display:inline-block}
.credits{margin-top:44px;font-size:12.5px;color:#7F978B;max-width:120ch;line-height:1.6}
.foot-base{margin-top:22px;padding-top:22px;border-top:1px solid rgba(197,211,202,.14);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px;color:#8FA59A}
.foot-base ul{display:flex;gap:22px;flex-wrap:wrap}

/* ---------- WhatsApp ---------- */
.wa{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;align-items:center;gap:10px;background:var(--gold-2);color:var(--green);text-decoration:none;min-height:52px;padding:0 20px 0 16px;border-radius:999px;font:700 15px/1 var(--sans);box-shadow:0 16px 30px -12px rgba(10,50,34,.55);transition:transform .45s var(--ease),opacity .3s,background-color .25s}
.wa:hover{background:var(--gold-3)}
.wa .ic{width:22px;height:22px}
.wa.away,.wa.down{opacity:0;transform:translateY(24px);pointer-events:none}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .nav{display:none} .menu-btn{display:block} .head-row{height:76px}
  .svx{grid-template-columns:230px minmax(0,1fr)}
  .svx-panel{grid-template-columns:minmax(0,1fr)}
  .vis{height:460px}
  .ed-doc{height:auto}
}
@media (max-width:1000px){
  .hero-grid{grid-template-columns:minmax(0,1fr);min-height:0;padding-block:28px 8px}
  .hero-art{height:clamp(440px,74vw,560px)}
  .plinth{width:100%;right:0}
  .brand-grid,.g-grid,.faq-grid,.enq-grid,.sec-head,.j-grid{grid-template-columns:minmax(0,1fr)}
  .sec-head .lede{justify-self:start}
  .svx{grid-template-columns:minmax(0,1fr)}
  .svx-tabs{position:relative;top:auto;flex-direction:row;overflow-x:auto;gap:8px;padding:2px var(--gutter) 10px;scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 40px),transparent)}
  .svx-tabs::-webkit-scrollbar{display:none}
  .svx-group{display:none}
  .svx-tab{flex:0 0 auto;width:auto;background:var(--mist);scroll-snap-align:start}
  .pk-grid{grid-template-columns:minmax(0,1fr)}
  .pk .for{min-height:0}
  .j-stage{aspect-ratio:16/12}
  /* Journey becomes a tap-through stepper */
  .j-stage{position:relative;top:auto;height:auto;aspect-ratio:4/3.4}
  .js .j-steps{display:grid}
  .js .j-step{grid-area:1/1;min-height:0;padding:22px 0 0;opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
  .js .j-step.on{opacity:1;visibility:visible;transition:opacity .35s}
  .j-text{display:flex;flex-direction:column}
  .js .j-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;order:-1}
  .j-nav .rbtn{background:var(--white);color:var(--green);box-shadow:inset 0 0 0 1px var(--line)}
  .j-nav .rbtn:hover:not(:disabled){background:var(--green);color:var(--cream)}
  .j-nav span{font:600 14px/1 var(--sans);color:var(--muted)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-grid > div:first-child{grid-column:1/-1}
}
@media (min-width:760px) and (max-width:1000px){
  .pk-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .pk{padding:18px}
  .pk .for{min-height:4.8em;font-size:14.5px}
  .pk ul{font-size:14.5px}
  .pk-vis{height:130px}
  .pk-vis .cvw{width:74px}
}
@media (max-width:640px){
  body{font-size:16px}
  .j-stage{aspect-ratio:4/3.6}
  .sec{padding-block:72px}
  .hero h1{font-size:clamp(42px,12vw,54px)}
  .hero .lede{margin-top:18px}
  .hero-ctas{margin-top:26px}
  .hero-ctas .btn{flex:1 1 100%}
  .hero-svc{display:none}
  .hero .lede{font-size:17px}
  .hero-art{height:clamp(380px,104vw,440px);margin-inline:calc(var(--gutter) * -1)}
  .plinth{top:4%;height:90%;border-radius:0}
  .scene{left:46%;top:80%;--sc:.64}
  .floor-shadow{left:50%;width:360px;margin-left:-180px;top:78%}
  .hero-tag{left:var(--gutter);bottom:calc(6% + 12px)}
  .ob{--obs:.5}
  .ob-stage{height:300px}
  .band{border-radius:0;margin-inline:0}
  .svx-panel{padding:18px;gap:22px;min-height:0}
  /* Service visuals re-compose as a vertical stack on phones */
  .vis{height:auto;display:grid;gap:14px}
  .vis > *{position:relative !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important;width:auto !important;transform:none !important}
  .vis .m-hide{display:none}
  .ed-cmt::before{display:none}
  .ed-text{padding:18px 18px;font-size:14px}
  .gw-arrow{display:none}
  .fm-spread{grid-template-columns:1fr}
  .fm-spread .fm-page:first-child{display:none}
  .fm-page,.fm-page:last-child{padding:26px 22px 34px;min-height:0;font-size:11.5px}
  .fm-phone{display:none}
  .cc-row{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .vis > *{min-width:0}
  .pr-stage{height:270px}
  .pr-stage .scene{--sc:.6 !important;left:50% !important}
  .pr-specs{grid-template-columns:1fr}
  .pb-body{grid-template-columns:96px 1fr}
  .mk-row{display:grid !important;grid-template-columns:1.25fr .75fr;gap:12px;align-items:start}
  .mk-story{aspect-ratio:9/16}
  .mk-mail{display:none}
  .mk-ad{grid-template-columns:auto 1fr;height:auto;padding:12px 14px}
  .mk-ad .go{display:none}
  .web-phone{display:none}
  .site-hero{grid-template-columns:1fr 84px;padding:16px}
  .site-hero h6{font-size:19px}
  .site-row{grid-template-columns:1fr}
  .site-books{display:none}
  .tr-screen{aspect-ratio:16/9}
  .tr-board{grid-template-columns:repeat(2,1fr)}
  .fx-row{display:grid !important;grid-template-columns:repeat(3,1fr);gap:8px}
  .fx-card{width:auto}
  .fx-card .ph{height:96px}
  .fx-card span{display:none}
  .g-panel{grid-template-columns:110px minmax(0,1fr);gap:16px;padding:18px}
  .spines{height:350px;padding-top:50px}
  .form{grid-template-columns:minmax(0,1fr);padding:22px}
  .stage-opts{grid-template-columns:1fr 1fr}
  .upload{grid-template-columns:30px 1fr}
  .upload .soon{grid-column:2;justify-self:start}
  .enq-covers{display:none}
  .wa span{display:none} .wa{padding:0;width:54px;justify-content:center}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .faq-list .ans{padding-right:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}
}


/* Visual layouts that flow rather than layer (trailer), plus row wrappers used by several panels. */
.vis.flow{height:auto;display:grid;gap:14px}
.vis.flow > *{position:relative}
.tr-screen{position:relative;width:100%;max-height:none}
.tr-ctrl{position:relative;top:auto}
.tr-board{position:relative}
.cc-row .cc:nth-child(2){z-index:2}
.fx-row .fx-card{flex:1 1 0}
.fx-arc{width:50%}
.mk-row > *{position:absolute}
.mk-row .mk-post{left:0;top:0}
.mk-ad{position:absolute}
.pr-stage{position:absolute}
/* Cover concepts and publishing read as a stacked composition */
.vis.flow .cc-row{display:flex;gap:16px;align-items:flex-start}
.vis.flow .chip-ui{justify-self:start}
.vis.flow .pb-store{width:100%}
.vis.flow .pb-meta{width:68%;justify-self:end;margin-top:-56px}
.fm-spread{width:76%}
.fm-phone{bottom:56px}
@media (max-width:640px){
  .vis.flow .pb-meta{width:auto;margin-top:0}
  .vis .cc-row,.vis .fx-row,.vis .mk-row{height:auto !important}
  .vis .cc-row > *,.vis .fx-row > *,.vis .mk-row > *{position:relative !important;left:auto !important;right:auto !important;top:auto !important;width:auto !important;margin:0 !important;transform:none !important}
  .vis .pr-stage{height:300px}
  .vis .mk-post .mk-cap{display:none}
  .vis .mk-story{border-radius:12px}
  .vis .mk-story b{font-size:26px}
  .tr-ctrl{gap:10px}
}

/* ================= Site-wide additions for the multi-page site ================= */
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--green);color:var(--cream);padding:12px 16px;border-radius:10px;font-weight:600;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
.brand img{display:block;width:100%;height:auto}
.nav > a[aria-current="page"]::after,.has-menu > button.is-active::after{transform:scaleX(1)}
.nav > a[aria-current="page"]{color:var(--green);font-weight:600}
/* Mega menu: four service groups */
.mega{left:50%;transform:translateX(-46%);width:min(1060px,94vw);display:block;padding:24px 24px 18px}
.mg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 18px}
.mg-h{font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin:4px 10px 10px}
.mg-col a{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;text-decoration:none;padding:8px 10px;border-radius:12px;transition:background-color .2s}
.mg-col a:hover,.mg-col a:focus-visible,.mg-col a[aria-current="page"]{background:var(--mist)}
.mg-col .mi{width:34px;height:34px;border-radius:9px}
.mg-col .mi svg{width:18px;height:18px}
.mg-col b{display:block;font:600 14.5px/1.2 var(--sans)}
.mg-col small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.3}
.mg-foot{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:14px;padding:14px 10px 2px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.mg-foot span{margin-right:auto}
.sheet .sh-h{font:600 11.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-3);margin:16px 0 4px 14px}
.sheet details a.sh-all{color:var(--cream);font-weight:600}
.sheet nav > a[href]{display:block}
/* Footer */
.foot{margin:0;border-radius:0}
.foot-cta{display:flex;justify-content:space-between;align-items:center;gap:24px 40px;flex-wrap:wrap;padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid rgba(197,211,202,.16)}
.foot-cta h2{color:var(--cream);font-size:clamp(30px,3.2vw,44px)}
.foot-cta p{color:var(--on-dark);margin-top:8px}
.fc-btns{display:flex;gap:12px;flex-wrap:wrap}
.foot .btn-ghost{color:var(--cream);box-shadow:inset 0 0 0 1.5px rgba(245,242,234,.5)}
.foot .btn-ghost:hover{background:var(--cream);color:var(--green)}
.foot-grid{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr))}
.f-brand address{margin-top:18px}
.foot h4.mt{margin-top:26px}
.flogo{display:block;width:min(230px,72%)}
.flogo img{display:block;width:100%;height:auto}
#enquire.band{border-radius:clamp(0px,2.6vw,36px)}
/* Breadcrumbs */
.crumbs ol{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:13.5px;color:var(--muted)}
.crumbs li{display:flex;align-items:center;gap:6px}
.crumbs li + li::before{content:"/";color:var(--line)}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.crumbs [aria-current]{color:var(--green);font-weight:600}
.on-dark .crumbs ol,.on-dark .crumbs a{color:var(--on-dark)}
/* Generic */
.checks{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.checks li{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:15.5px}
.checks .ic{color:var(--gold-ink);margin-top:3px}
.on-dark .checks .ic{color:var(--gold-3)}
.two-col{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px clamp(40px,6vw,96px);align-items:start}
.prose{max-width:68ch;font-size:17.5px;line-height:1.7}
.prose p{margin:0 0 1em}
.prose h2{font-size:clamp(28px,2.6vw,36px);margin:1.6em 0 .5em}
.prose h3{margin:1.4em 0 .4em}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1em;display:grid;gap:.4em}
.prose a{color:var(--green);text-decoration-color:var(--gold);text-underline-offset:3px}
.prose b{color:var(--ink)}
.lede a{color:var(--green);text-decoration-color:var(--gold);text-underline-offset:3px}
.draft-note{margin-top:22px;background:#FFF7E3;color:#5B4720;border-radius:14px;padding:14px 16px;font-size:15px;box-shadow:inset 0 0 0 1px #EBD8A8}
mark.tbc{background:#FFF1C9;color:#5B4720;padding:0 3px;border-radius:3px}
.vlabel{font:600 11.5px/1 var(--sans);letter-spacing:.04em;color:var(--muted);display:inline-flex;align-items:center;gap:8px}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:999px;background:var(--white);box-shadow:inset 0 0 0 1px var(--line)}
.seg button{border:0;background:none;font:600 13.5px/1 var(--sans);color:var(--ink);padding:10px 14px;min-height:40px;border-radius:999px;cursor:pointer;transition:background-color .2s,color .2s}
.seg button:hover{background:var(--mist)}
.seg button[aria-pressed="true"]{background:var(--green);color:var(--cream)}
.on-dark .seg{background:rgba(245,242,234,.08);box-shadow:none}
.on-dark .seg button{color:var(--cream)}
.on-dark .seg button:hover{background:rgba(245,242,234,.12)}
.on-dark .seg button[aria-pressed="true"]{background:var(--gold-2);color:var(--green)}
.svx-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.pk-more{margin:22px 0 0}
.faq-all{margin-top:18px}
.faq-side .link{display:flex;width:max-content}

/* ================= Inner page hero ================= */
.ph{position:relative;background:linear-gradient(180deg,#FFFFFF,var(--mist));overflow:clip;padding-block:clamp(28px,3.5vw,48px) clamp(48px,6vw,88px)}
.ph-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(24px,4vw,64px);align-items:center}
.ph-narrow{max-width:900px}
.ph-plain{padding-block:clamp(28px,3.5vw,48px) clamp(40px,5vw,64px)}
.ph h1{font-size:clamp(40px,4.6vw,68px);line-height:1;letter-spacing:-.02em}
.ph .lede{margin-top:20px}
.ph-group{display:inline-flex;align-items:center;gap:8px;font:600 13px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 14px}
.ph-group svg{width:18px;height:18px}
.ph-best{margin-top:30px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.ph-best b{font:600 13px/1 var(--sans);color:var(--muted);margin-right:4px}
.ph-best ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ph-best li{font:500 13.5px/1 var(--sans);padding:9px 12px;border-radius:999px;background:var(--white);box-shadow:inset 0 0 0 1px var(--line);color:var(--green)}
.ph-art{position:relative;height:clamp(400px,36vw,500px)}
.ph-art .plinth{right:0;top:4%;width:94%;height:88%;border-radius:var(--r-lg)}
.ph-art .plinth .wm{left:auto;right:-60px;bottom:-60px;width:280px;height:280px}
.ph-write .ph-art .plinth{background:var(--green)}
.ph-refine .ph-art .plinth{background:#183A30}
.ph-design .ph-art .plinth{background:#13362A}
.ph-launch .ph-art .plinth{background:#0D3526}
.ph-scene{left:52%;top:82%;--rx:-10deg;--ry:-22deg;--sc:.92}
.ph-trio{left:50%}
.ph-art .floor-shadow{top:80%;left:52%;width:460px;margin-left:-230px}
.ph-card{position:absolute;left:0;bottom:12%;z-index:4;background:var(--white);border-radius:14px;padding:13px 15px;width:230px;box-shadow:0 22px 40px -22px rgba(10,50,34,.5);font-size:13px;line-height:1.5;color:var(--muted)}
.ph-card b{display:block;font:700 17px/1.15 var(--serif);color:var(--green);margin-bottom:4px}
.ph-card s{color:#B2402D}.ph-card u{color:#1E6B45;text-underline-offset:3px}
.ph-art .hero-tag{left:auto;right:22px;bottom:calc(8% + 16px)}
.ph-art .hero-tag.sample{color:var(--on-dark-2)}
/* Why */
.why{padding-block:clamp(72px,8vw,120px) 0}
.why-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px clamp(40px,6vw,96px);align-items:start}
.why-copy p{font-size:18px;line-height:1.7;color:var(--muted);margin:0 0 1em;max-width:60ch}
.why-copy p:first-child{color:var(--ink);font-size:19.5px}
/* Sub-service explorer */
.subx{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(20px,3vw,40px);align-items:start}
.subx-list{display:none}
.js .subx-list{display:flex;flex-direction:column;gap:4px;position:sticky;top:110px}
.subx-list button{display:flex;align-items:center;gap:14px;width:100%;min-height:56px;text-align:left;border:0;background:none;padding:10px 16px;border-radius:14px;font:600 16.5px/1.25 var(--sans);color:var(--ink);cursor:pointer;transition:background-color .25s,color .25s}
.subx-list .n{font:700 15px/1 var(--serif);color:var(--gold-ink);min-width:22px;font-variant-numeric:lining-nums}
.subx-list button:hover{background:var(--mist)}
.subx-list button[aria-selected="true"]{background:var(--green);color:var(--cream)}
.subx-list button[aria-selected="true"] .n{color:var(--gold-3)}
.subx-panels{display:grid;gap:16px}
.js .subx-panels{display:block}
.subx-p{background:var(--mist);border-radius:var(--r-lg);padding:clamp(24px,3vw,40px)}
.js .subx-p{display:none;min-height:340px}
.js .subx-p.on{display:block}
.subx-p h3{font-size:clamp(28px,2.6vw,36px)}
.subx-p > p{margin-top:12px;color:var(--muted);font-size:17px;max-width:56ch}
.subx-get{margin:22px 0 24px;background:var(--white);border-radius:16px;padding:18px 20px;box-shadow:0 0 0 1px var(--line)}
.subx-get b{display:block;font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:12px}
/* Example stage */
.ex{background:var(--white)}
.ex-stage{border-radius:var(--r-lg)}
.ex-panel{grid-template-columns:minmax(0,1fr);min-height:0;padding:clamp(24px,3.4vw,48px)}
.ex-panel > .vis{height:520px;max-width:900px;margin-inline:auto;width:100%}
.ex-panel > .vis.flow{height:auto}
.ex-note{margin-top:14px}
/* Process */
.proc-sec{background:var(--sage)}
.proc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0;position:relative}
.proc::before{content:"";position:absolute;left:28px;right:28px;top:27px;height:2px;background:var(--sage-2)}
.proc::after{content:"";position:absolute;left:28px;right:28px;top:27px;height:2px;background:var(--gold);transform-origin:left;transform:scaleX(var(--pp,1))}
.proc li{position:relative;padding-right:22px}
.pn{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--green);color:var(--gold-3);font:700 22px/1 var(--serif);font-variant-numeric:lining-nums;box-shadow:0 0 0 6px var(--sage)}
.proc h3{margin-top:18px;font-size:clamp(21px,1.8vw,25px)}
.proc p{margin-top:8px;color:var(--muted);font-size:15.5px}
/* Formats and deliverables */
.fmt-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,5vw,80px);align-items:start}
.chips-lg{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.chips-lg li{font:600 15px/1 var(--sans);padding:13px 17px;border-radius:999px;background:var(--mist);color:var(--green);box-shadow:inset 0 0 0 1px var(--line)}
.deliv{background:var(--green);color:var(--cream);border-radius:var(--r-lg);padding:clamp(24px,3vw,36px)}
.deliv h3{color:var(--cream);margin-bottom:18px}
.deliv .checks .ic{color:var(--gold-3)}
.deliv .small{color:var(--on-dark-2);margin-top:18px}
.faq-sec{background:var(--white)}
/* Service CTA band */
.svc-cta{margin-top:clamp(0px,1.4vw,22px);margin-bottom:clamp(0px,1.4vw,22px)}
.cta-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(32px,5vw,80px);align-items:start}
.cta-grid .lede{margin-top:16px}
.cs-h{font:600 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-3);margin:0 0 12px}
.cs-h + .rel{margin-bottom:28px}
.rel{display:grid;gap:10px}
.rel-card{display:grid;grid-template-columns:40px 1fr 20px;gap:4px 14px;align-items:center;text-decoration:none;color:var(--cream);padding:14px 16px;border-radius:16px;background:rgba(245,242,234,.06);transition:background-color .25s}
.rel-card:hover{background:rgba(245,242,234,.12)}
.rel-card .mi{grid-row:1/3;width:40px;height:40px;border-radius:11px;background:rgba(230,211,165,.14);color:var(--gold-3);display:grid;place-items:center}
.rel-card .mi svg{width:20px;height:20px}
.rel-card b{font:700 19px/1.15 var(--serif)}
.rel-card span{font-size:13.5px;color:var(--on-dark)}
.rel-card i{grid-row:1/3;grid-column:3;color:var(--gold-3);transition:transform .3s var(--ease)}
.rel-card:hover i{transform:translateX(4px)}
.cs-nav{display:flex;flex-wrap:wrap;gap:8px}
.cs-nav a{font:500 14px/1 var(--sans);text-decoration:none;color:var(--cream);padding:10px 13px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(245,242,234,.22)}
.cs-nav a:hover{background:rgba(245,242,234,.1)}
.cs-nav a[aria-current="page"]{background:var(--gold-2);color:var(--green);box-shadow:none}

/* ================= Services hub ================= */
.hub-filter{margin-bottom:34px}
.hub-group + .hub-group{margin-top:44px}
.hg-head{display:flex;align-items:baseline;gap:8px 20px;flex-wrap:wrap;margin-bottom:16px}
.hg-head h3{font-size:clamp(26px,2.4vw,32px)}
.hg-head p{color:var(--muted);font-size:15.5px;max-width:60ch}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.hub-card{position:relative;display:grid;grid-template-rows:auto auto 1fr;gap:8px;text-decoration:none;padding:22px 22px 52px;border-radius:20px;background:var(--mist);box-shadow:inset 0 0 0 1px var(--line);transition:transform .4s var(--ease),box-shadow .4s var(--ease),background-color .3s}
.hub-card:hover{transform:translateY(-4px);background:var(--white);box-shadow:inset 0 0 0 1px var(--line),0 24px 40px -28px rgba(10,50,34,.45)}
.hub-card .mi{width:44px;height:44px;border-radius:12px;background:var(--white);color:var(--green);display:grid;place-items:center;box-shadow:0 0 0 1px var(--line)}
.hub-card .mi svg{width:22px;height:22px}
.hub-card b{font:700 23px/1.12 var(--serif);color:var(--green);margin-top:6px}
.hub-card .hc-d{font-size:14.5px;color:var(--muted)}
.hub-card i{position:absolute;left:22px;bottom:20px;color:var(--gold-ink);transition:transform .3s var(--ease)}
.hub-card:hover i{transform:translateX(5px)}
.hub-group[hidden]{display:none}
.pt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center}
.pt-grid .lede{margin:16px 0 26px}
.pt-books{display:flex;justify-content:center;gap:0;padding:20px 0}
.pt-books > div{width:clamp(96px,10vw,140px);transform:rotate(var(--r));margin-inline:-10px;box-shadow:0 22px 36px -20px rgba(0,0,0,.6)}
/* Packages page */
.single-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.single-col{background:var(--mist);border-radius:20px;padding:20px}
.single-col h3{font-size:24px;margin-bottom:12px}
.single-col ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.single-col a{display:flex;align-items:center;gap:10px;text-decoration:none;padding:9px 8px;border-radius:10px;font-weight:500;font-size:15px}
.single-col a:hover{background:var(--white)}
.single-col svg{width:18px;height:18px;color:var(--gold-ink);flex:none}
/* How it works */
.how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.how-steps li{display:grid;grid-template-columns:56px 1fr;gap:18px;background:var(--mist);border-radius:22px;padding:22px}
.how-steps h3{font-size:24px;margin-top:10px}
.how-steps p{color:var(--muted);margin:6px 0 14px;font-size:15.5px}
.how-steps .pn{box-shadow:none}
/* About */
.values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.value{background:rgba(245,242,234,.06);border-radius:20px;padding:24px}
.value svg{width:30px;height:30px;color:var(--gold-3)}
.value h3{margin-top:16px;font-size:23px}
.value p{color:var(--on-dark);margin-top:8px;font-size:15.5px}
.who{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.who-card{position:relative;display:grid;gap:8px;text-decoration:none;padding:22px 22px 52px;border-radius:20px;background:var(--mist);transition:transform .4s var(--ease),background-color .3s}
.who-card:hover{transform:translateY(-4px);background:var(--sage)}
.who-card b{font:700 23px/1.15 var(--serif);color:var(--green)}
.who-card span{color:var(--muted);font-size:15px}
.who-card i{position:absolute;left:22px;bottom:20px;color:var(--gold-ink)}
/* Contact */
.contact-top{padding-top:22px}
.p-contact #enquire{margin-top:0}
.official{margin-top:30px;background:rgba(245,242,234,.06);border-radius:16px;padding:16px 18px;font-size:14.5px;color:var(--on-dark);line-height:1.55}
.official b{display:flex;align-items:center;gap:8px;color:var(--cream);margin-bottom:6px}
.official svg{width:20px;height:20px;color:var(--gold-3)}
.alt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.alt{display:grid;gap:6px;text-decoration:none;padding:24px;border-radius:20px;background:var(--mist);transition:background-color .3s,transform .4s var(--ease)}
.alt:hover{background:var(--sage);transform:translateY(-3px)}
.alt svg{width:28px;height:28px;color:var(--gold-ink)}
.alt b{font:700 23px/1.15 var(--serif);color:var(--green);margin-top:8px}
.alt span{color:var(--muted);font-size:15px}
/* Submit */
.sub-sec{padding-top:0}
.sub-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:clamp(24px,4vw,56px);align-items:start}
.sub-grid .form{box-shadow:0 0 0 1px var(--line),0 30px 60px -40px rgba(10,50,34,.4)}
.sub-grid .form h2{grid-column:1/-1;font-size:clamp(28px,2.4vw,34px)}
.sub-side{display:grid;gap:14px;position:sticky;top:110px}
.sub-box{background:var(--mist);border-radius:20px;padding:22px}
.sub-box h3{font-size:22px;margin-bottom:12px}
.sb-dark{background:var(--green);color:var(--on-dark)}
.sb-dark h3{color:var(--cream)}
.next-mini{margin:0;padding-left:20px;display:grid;gap:6px;color:var(--muted)}
/* FAQ page */
.faq-search{position:relative;margin-top:28px;max-width:560px}
.faq-search svg{position:absolute;left:16px;top:16px;width:20px;height:20px;color:var(--muted)}
.faq-search input{width:100%;min-height:54px;border-radius:999px;border:1.5px solid var(--line);background:var(--white);padding:0 18px 0 46px;font:400 16px/1 var(--sans);color:var(--ink)}
.faq-search input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 4px rgba(27,82,64,.12)}
.faq-search .small{display:block;margin-top:10px;padding-left:4px}
.faq-page{padding-top:0}
.faq-cols{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.faq-nav{position:sticky;top:110px;display:grid;gap:2px}
.faq-nav a{text-decoration:none;padding:11px 14px;border-radius:12px;font-weight:500}
.faq-nav a:hover,.faq-nav a.on{background:var(--mist);color:var(--green)}
.faq-group{scroll-margin-top:110px}
.faq-group + .faq-group{margin-top:48px}
.faq-group h2{font-size:clamp(28px,2.4vw,34px);margin-bottom:10px}
.faq-group[hidden],.faq-list details[hidden]{display:none}
.faq-none{margin-top:24px;font-size:17px}
.faq-list mark{background:#FFF1C9;color:inherit;border-radius:3px}
/* Guide */
.guide{padding-top:0}
.guide-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.toc{position:sticky;top:110px;background:var(--mist);border-radius:20px;padding:20px}
.toc b{font:600 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink)}
.toc ol{margin:12px 0 0;padding:0;list-style:none;counter-reset:t;display:grid;gap:2px}
.toc li{counter-increment:t}
.toc a{display:grid;grid-template-columns:22px 1fr;gap:6px;text-decoration:none;padding:8px 8px;border-radius:10px;font-size:14.5px;line-height:1.35;color:var(--muted)}
.toc a::before{content:counter(t);font:700 14px/1.35 var(--serif);color:var(--gold-ink)}
.toc a:hover,.toc a.on{background:var(--white);color:var(--green)}
.toc-progress{height:3px;border-radius:3px;background:var(--line);margin-top:14px;overflow:hidden}
.toc-progress i{display:block;height:100%;width:100%;background:var(--gold);transform-origin:left;transform:scaleX(0)}
.g-sec{scroll-margin-top:110px}
.g-sec h2{display:flex;gap:14px;align-items:baseline}
.g-sec h2 span{font:700 .7em/1 var(--serif);color:var(--gold-ink)}
.g-sec:first-child h2{margin-top:0}
.guide-cta{margin-top:48px;background:var(--sage);border-radius:var(--r-lg);padding:28px}
.guide-cta h3{margin-bottom:8px}
/* Blog */
.posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.post-card a{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:start;text-decoration:none;padding:22px;border-radius:24px;background:var(--mist);height:100%;transition:background-color .3s,transform .4s var(--ease)}
.post-card a:hover{background:var(--sage);transform:translateY(-3px)}
.post-card.lead{grid-column:1/-1}
.post-card.lead a{grid-template-columns:200px 1fr;padding:30px}
.post-card.lead h2{font-size:clamp(30px,3vw,42px)}
.pc-cover .cv{box-shadow:0 18px 30px -16px rgba(0,0,0,.55)}
.pc-meta{font:600 12.5px/1 var(--sans);letter-spacing:.04em;color:var(--gold-ink)}
.post-card h2{font-size:clamp(24px,2vw,28px);margin:10px 0 8px}
.post-card p{color:var(--muted);font-size:15.5px;margin-bottom:14px}
.post .ph h1{font-size:clamp(36px,4vw,56px);margin-top:10px}
.post-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:clamp(32px,5vw,80px);align-items:start}
.post-side{position:sticky;top:110px;display:grid;gap:10px}
.ps-cover{width:150px}
.post-side h3{font-size:22px;margin-top:14px}
.ps-link{text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line);font-weight:500;line-height:1.35}
.ps-link:hover{color:var(--gold-ink)}
/* Portfolio */
.pf-filter{margin-bottom:30px}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:30px 22px}
.pf-item .sc-item{flex:none;width:100%}
.pf-item[hidden]{display:none}
.p-portfolio .band{margin-top:0}
.p-portfolio .band .sample{margin-top:30px}
/* Legal */
.legal{padding-top:8px}
.legal .prose h2{font-size:26px;margin-top:1.4em}
/* 404 */
.nf{min-height:50vh;display:flex;align-items:center}

/* ================= Example modules ================= */
.mod{display:grid;gap:16px;max-width:900px;margin-inline:auto;width:100%}
.mod .paper{border-radius:6px}
/* Proofreading */
.proof-page{position:relative;padding:30px 34px 34px;font:400 15.5px/1.85 "Libre Baskerville",Georgia,serif;color:#2F2E29;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:24px}
.proof-page > p,.pp-rh{grid-column:1}
.pp-rh{display:flex;justify-content:space-between;font:600 10px/1 var(--sans);letter-spacing:.2em;color:#A39C89;margin-bottom:8px}
.proof-page p{margin:0 0 12px}
.pm-del{color:#B2402D;text-decoration:line-through;text-decoration-thickness:2px}
.pm-ins{color:#1E6B45;font-weight:700;font-size:.8em;vertical-align:super;margin:0 2px}
.pm-sp{color:#B2402D;font-weight:700}
.pm-notes{grid-column:2;grid-row:1/6;background:#FFF7E3;border-radius:10px;padding:14px 16px;font:400 13px/1.5 var(--sans);color:#5B4720;align-self:start}
.pm-notes b{display:block;color:#3E2F12;margin-bottom:6px}
.pm-notes ol{margin:0;padding-left:18px;display:grid;gap:4px}
.proof-page[data-view="clean"] .pm-del,.proof-page[data-view="clean"] .pm-sp,.proof-page[data-view="clean"] .pm-notes{display:none}
.proof-page[data-view="clean"] .pm-ins{color:inherit;font-weight:inherit;font-size:inherit;vertical-align:baseline;margin:0}
.proof-page[data-view="clean"] .pp-rh span:last-child::after{content:" · CHAPTER ONE"}
.proof-checks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.proof-checks li{display:flex;align-items:center;gap:8px;font:600 13.5px/1 var(--sans);padding:10px 13px;border-radius:999px;background:var(--white);box-shadow:inset 0 0 0 1px var(--line)}
.proof-checks .ic{color:var(--green-3)}
/* Audiobook */
.au-player{display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;align-items:center;background:var(--green);color:var(--cream);border-radius:20px;padding:20px}
.au-cover .cv{aspect-ratio:1;box-shadow:0 16px 30px -14px rgba(0,0,0,.6)}
.au-now{font:700 22px/1.2 var(--serif);margin:0 0 14px}
.au-wave{display:flex;align-items:center;gap:3px;height:56px}
.au-wave i{flex:1;background:rgba(245,242,234,.25);border-radius:2px;transition:background-color .2s}
.au-wave i.on{background:var(--gold-2)}
.au-ctl{display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap}
.au-ctl .tr-play{background:var(--gold-2);color:var(--green)}
.au-ctl .tr-time{color:var(--on-dark)}
.au-spec{margin-left:auto;font:600 12px/1 var(--sans);color:var(--on-dark-2)}
.au-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.au-box{background:var(--white);border-radius:16px;padding:16px 18px;box-shadow:0 0 0 1px var(--line)}
.au-box h6{font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin:0 0 10px}
.au-ch{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.au-ch button{display:flex;justify-content:space-between;width:100%;border:0;background:none;padding:9px 10px;border-radius:10px;font:500 14px/1.2 var(--sans);color:var(--ink);cursor:pointer;text-align:left}
.au-ch button:hover{background:var(--mist)}
.au-ch button[aria-pressed="true"]{background:var(--sage);color:var(--green);font-weight:600}
.au-ch em{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
.au-voices{display:grid;gap:6px}
.au-voices button{text-align:left;border:0;background:var(--mist);padding:11px 12px;border-radius:12px;cursor:pointer;font:600 14px/1.2 var(--sans);color:var(--ink);box-shadow:inset 0 0 0 1.5px transparent;transition:box-shadow .2s}
.au-voices button[aria-checked="true"]{box-shadow:inset 0 0 0 2px var(--green);background:var(--sage)}
.au-vd{margin:10px 0 0;font-size:13.5px;color:var(--muted)}
/* Ereader */
.er-bar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.er-device{background:#141a17;border-radius:30px;padding:14px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.er-screen{display:grid;grid-template-columns:190px minmax(0,1fr);border-radius:18px;overflow:hidden;min-height:380px;background:#FFFFFF;color:#26241f;transition:background-color .3s,color .3s}
.er-screen[data-th="sepia"]{background:#F4ECD8;color:#4A3B26}
.er-screen[data-th="night"]{background:#16191B;color:#D9D6CE}
.er-toc{padding:20px 16px;border-right:1px solid rgba(128,128,128,.2);display:grid;align-content:start;gap:4px;font:500 13px/1.35 var(--sans)}
.er-toc b{font:600 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:8px}
.er-toc a{padding:7px 8px;border-radius:8px;opacity:.75}
.er-toc a.on{background:rgba(178,138,71,.18);opacity:1;font-weight:600}
.er-page{padding:24px 28px;font:400 var(--fs,15px)/1.7 "Libre Baskerville",Georgia,serif;transition:font-size .25s}
.er-page h5{font:700 1.5em/1.15 var(--serif);margin:0 0 .8em}
.er-page p{margin:0 0 .9em}
.er-try{margin:0 0 .9em;padding:.8em 1em;border-radius:10px;background:rgba(178,138,71,.14);font-family:var(--sans);font-size:.88em}
.er-try b{display:block;margin-bottom:2px}
/* Outline */
.ol-head{display:grid;grid-template-columns:100px 1fr;gap:20px;align-items:center}
.ol-head .cv{box-shadow:0 16px 28px -14px rgba(0,0,0,.6)}
.ol-head h5{font:700 26px/1.1 var(--serif);color:var(--green);margin:8px 0 6px}
.ol-head p{color:var(--muted);font-size:15px;margin:0}
.ol-parts{display:grid;gap:10px}
.ol-parts details{background:var(--white);border-radius:16px;box-shadow:0 0 0 1px var(--line)}
.ol-parts summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:40px 1fr 32px;gap:14px;align-items:center;padding:16px 18px}
.ol-parts summary::-webkit-details-marker{display:none}
.ol-n{width:40px;height:40px;border-radius:50%;background:var(--green);color:var(--gold-3);display:grid;place-items:center;font:700 18px/1 var(--serif)}
.ol-parts summary b{display:block;font:700 19px/1.2 var(--serif);color:var(--green)}
.ol-parts summary small{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
.ol-parts .pm{position:relative;width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--green)}
.ol-parts .pm::before,.ol-parts .pm::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:var(--green);transform:translate(-50%,-50%)}
.ol-parts .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s}
.ol-parts details[open] .pm::after{transform:translate(-50%,-50%)}
.ol-parts ol{margin:0;padding:0 18px 18px 90px;display:grid;gap:6px;font:400 15px/1.45 "Libre Baskerville",Georgia,serif}
/* Timeline */
.tl-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative;padding-top:6px}
.tl-track::before{content:"";position:absolute;left:10%;right:10%;top:17px;height:2px;background:var(--sage-2)}
.tl-track button{position:relative;border:0;background:none;cursor:pointer;display:grid;justify-items:center;gap:6px;padding:0 6px 8px;font-family:var(--sans);color:var(--muted);text-align:center}
.tl-dot{width:24px;height:24px;border-radius:50%;background:var(--white);box-shadow:inset 0 0 0 2px var(--sage-2);transition:background-color .25s,box-shadow .25s,transform .3s var(--ease)}
.tl-track b{font:700 20px/1 var(--serif);color:var(--green);font-variant-numeric:lining-nums}
.tl-track small{font-size:12.5px;line-height:1.3}
.tl-track button:hover .tl-dot{box-shadow:inset 0 0 0 2px var(--gold)}
.tl-track button[aria-selected="true"] .tl-dot{background:var(--gold);box-shadow:0 0 0 6px rgba(178,138,71,.2);transform:scale(1.1)}
.tl-track button[aria-selected="true"] small{color:var(--ink);font-weight:600}
.tl-card{display:grid;grid-template-columns:150px 1fr;gap:22px;padding:22px;align-items:center}
.tl-photo{aspect-ratio:4/5;border-radius:4px;background:#E9E2D2;padding:8px;box-shadow:0 10px 20px -12px rgba(0,0,0,.4);transform:rotate(-3deg)}
.tl-photo i{display:block;height:100%;background:url(covers/summer.webp) 55% 30%/cover;filter:sepia(.65) contrast(.95)}
.tl-card h5{font:700 26px/1.1 var(--serif);color:var(--green);margin:8px 0}
.tl-card p{font:400 15.5px/1.65 "Libre Baskerville",Georgia,serif;color:#34332d;margin:0}
/* Framework */
.fw-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fw-steps button{display:flex;align-items:center;gap:10px;border:0;cursor:pointer;background:var(--white);padding:12px 16px 12px 12px;border-radius:999px;font:600 16px/1 var(--sans);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);transition:background-color .2s,color .2s}
.fw-steps button span{width:28px;height:28px;border-radius:50%;background:var(--sage);color:var(--green);display:grid;place-items:center;font:700 15px/1 var(--serif)}
.fw-steps button[aria-selected="true"]{background:var(--green);color:var(--cream);box-shadow:none}
.fw-steps button[aria-selected="true"] span{background:var(--gold-2)}
.fw-arrow{width:20px;height:2px;background:var(--gold)}
.fw-card{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:14px}
.fw-chapter{padding:24px}
.fw-chapter p{font:400 17px/1.65 "Libre Baskerville",Georgia,serif;color:#34332d;margin:10px 0 0}
.fw-ex{background:#FFF7E3;border-radius:16px;padding:20px;color:#5B4720;font-size:15px}
.fw-ex b{display:block;font:600 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:8px}
.fw-ex p{margin:0}
/* Storyboard */
.sb-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sb-cards button{text-align:left;border:0;cursor:pointer;background:#FFFBEA;padding:16px 16px 20px;min-height:150px;border-radius:4px;box-shadow:0 14px 26px -18px rgba(0,0,0,.5);transform:rotate(var(--r));transition:transform .35s var(--ease),box-shadow .3s;font-family:var(--sans);color:#3a3a32;display:grid;align-content:start;gap:8px}
.sb-cards button b{font:600 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink)}
.sb-cards button span{font:italic 400 14.5px/1.45 "Libre Baskerville",Georgia,serif}
.sb-cards button:hover{transform:rotate(0) translateY(-4px)}
.sb-cards button[aria-selected="true"]{transform:rotate(0) translateY(-6px);box-shadow:0 0 0 2px var(--gold-2),0 22px 34px -18px rgba(0,0,0,.5)}
.sb-doc{padding:24px}
.sb-doc p{font:400 16.5px/1.65 "Libre Baskerville",Georgia,serif;color:#34332d;margin:10px 0 0}
.sb-note{background:var(--mist);border-radius:10px;padding:12px 14px;font-family:var(--sans) !important;font-size:14.5px !important;color:var(--muted) !important}
/* Trim size */
.mod-trim{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.mod-trim > .sample{grid-column:1/-1}
.tm-stage{position:relative;height:330px;display:grid;place-items:end center;padding-bottom:58px;background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/100% 23px;border-radius:16px}
.tm-book{width:var(--bw);height:var(--bh);transition:width .5s var(--ease),height .5s var(--ease);box-shadow:0 24px 40px -18px rgba(0,0,0,.55);border-radius:2px 4px 4px 2px;overflow:hidden;position:relative}
.tm-book .cv{width:100%;height:100%;aspect-ratio:auto}
.tm-book.gloss::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.35) 45%,rgba(255,255,255,0) 60%);z-index:6}
.tm-label{position:absolute;left:0;right:0;bottom:8px;text-align:center}
.tm-label b{display:block;font:700 20px/1.1 var(--serif);color:var(--green)}
.tm-label span{font-size:13.5px;color:var(--muted)}
.tm-ctrls{display:grid;gap:16px}
.tm-ctrls fieldset{border:0;margin:0;padding:0;min-width:0}
.tm-ctrls legend{font-weight:600;font-size:14px;margin-bottom:8px}

/* ================= Responsive ================= */
@media (max-width:1180px){
  .mg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .values,.who{grid-template-columns:repeat(2,minmax(0,1fr))}
  .single-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1000px){
  .ph-grid,.why-grid,.subx,.fmt-grid,.cta-grid,.two-col,.pt-grid,.sub-grid,.faq-cols,.guide-grid,.post-grid{grid-template-columns:minmax(0,1fr)}
  .ph-art{height:clamp(360px,62vw,460px)}
  .js .subx-list{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) 6px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 40px),transparent)}
  .js .subx-list::-webkit-scrollbar{display:none}
  .subx-list button{flex:0 0 auto;width:auto;background:var(--mist);min-height:48px}
  .js .subx-p{min-height:0}
  .proc{grid-template-columns:minmax(0,1fr);gap:22px}
  .proc::before,.proc::after{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto;transform:scaleY(var(--pp,1));transform-origin:top}
  .proc li{display:grid;grid-template-columns:56px 1fr;gap:4px 18px;padding:0}
  .proc li h3{margin-top:8px}
  .proc li p{grid-column:2}
  .how-steps{grid-template-columns:minmax(0,1fr)}
  .sub-side,.faq-nav,.toc,.post-side{position:static}
  .faq-nav{display:flex;flex-wrap:wrap;gap:6px}
  .faq-nav a{background:var(--mist)}
  .posts{grid-template-columns:minmax(0,1fr)}
  .alt-grid{grid-template-columns:minmax(0,1fr)}
  .mod-trim{grid-template-columns:minmax(0,1fr)}
  .ex-panel > .vis{height:auto}
}
@media (max-width:640px){
  .ph h1{font-size:clamp(36px,10vw,46px)}
  .ph-art{height:340px;margin-inline:calc(var(--gutter) * -1)}
  .ph-art .plinth{width:100%;border-radius:0;top:6%}
  .ph-scene{--sc:.62;left:48%}
  .ph-trio{--sc:.56}
  .ph-card{left:var(--gutter);bottom:4%;width:200px;padding:10px 12px}
  .ph-art .hero-tag{display:none}
  .mg-grid{grid-template-columns:minmax(0,1fr)}
  .values,.who,.single-grid{grid-template-columns:minmax(0,1fr)}
  .post-card a,.post-card.lead a{grid-template-columns:84px 1fr;gap:16px;padding:18px}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .proof-page{grid-template-columns:minmax(0,1fr);padding:22px}
  .pm-notes{grid-column:1;grid-row:auto}
  .au-player{grid-template-columns:84px minmax(0,1fr);gap:14px;padding:14px}
  .au-now{font-size:17px}
  .au-wave{height:40px}
  .au-spec{display:none}
  .au-cols{grid-template-columns:minmax(0,1fr)}
  .er-screen{grid-template-columns:minmax(0,1fr)}
  .er-toc{display:none}
  .tl-track{grid-template-columns:repeat(5,minmax(64px,1fr));overflow-x:auto}
  .tl-track small{display:none}
  .tl-card{grid-template-columns:90px 1fr;gap:14px;padding:16px}
  .tl-card h5{font-size:21px}
  .fw-arrow{display:none}
  .fw-card{grid-template-columns:minmax(0,1fr)}
  .sb-cards{grid-template-columns:1fr 1fr}
  .ol-parts ol{padding-left:24px}
  .ol-head{grid-template-columns:70px 1fr}
  .pf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}
  .pf-grid .sc-item figcaption b{font-size:17px}
}

/* ================= Refinements after first review ================= */
.nav > a:not(.btn),.has-menu > button,.head-wa{white-space:nowrap}
.nav{gap:clamp(14px,1.6vw,26px)}
@media (max-width:1380px){ .head-wa span{display:none} .head-wa{padding:12px 4px} }
.on-dark .btn-green{background:var(--gold-2);color:var(--green)}
.on-dark .btn-green:hover{background:var(--gold-3)}
.p-service .foot-cta,.p-contact .foot-cta,.p-home .foot-cta{display:none}
.ph-plain + .sec,.ph-plain + section.sec,header.ph + .sec,.ph-plain + .band{padding-top:clamp(36px,4.5vw,64px)}
.ph-plain + .band{margin-top:clamp(36px,4.5vw,64px);padding-top:0}
.enq-grid h1{font-size:clamp(40px,5vw,68px);color:var(--cream)}
.ph-scene{--sc:1.12;top:84%}
.ph-trio{--sc:1.08}
.ph-art .floor-shadow{top:82%;width:520px;margin-left:-260px}
.ex-panel > .vis{height:470px}
@media (max-width:1000px){
  .proc li .pn{grid-row:1/3}
  .proc li h3{margin-top:14px}
  .proc li p{margin-top:2px}
}
@media (max-width:640px){
  .ph-scene{--sc:.82;left:50%;top:86%}
  .ph-trio{--sc:.7}
  .ph-art{height:360px}
  .ph-card{bottom:auto;top:8%}
  .foot-grid ul{columns:2;column-gap:16px;display:block}
  .foot-grid ul li{break-inside:avoid}
  .foot-cta .btn{flex:1 1 100%}
}

/* ================= Motion layer: transitions, ticker, floating books, signature scenes ================= */

/* Page transition curtain (shown on leaving a page, and briefly on arrival) */
.pt{position:fixed;inset:0;z-index:300;background:var(--green);display:none;place-items:center;pointer-events:none}
.pt-mark svg{width:88px;height:88px;color:var(--gold-2);display:block}
.pt-on .pt{display:grid;clip-path:inset(0 0 0 0);animation:pt-out .6s cubic-bezier(.7,0,.25,1) .18s forwards}
.pt-on .pt-mark{animation:pt-pulse .5s ease-out both}
.pt.go{display:grid;animation:pt-in .42s cubic-bezier(.7,0,.25,1) forwards}
.pt.go .pt-mark{animation:pt-pulse .45s ease-out .1s both}
@keyframes pt-in{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes pt-out{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 100% 0);visibility:hidden}}
@keyframes pt-pulse{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}

/* Reading progress */
.sprog{position:fixed;left:0;right:0;top:0;height:3px;z-index:120;pointer-events:none}
.sprog i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-3));transform-origin:left;transform:scaleX(var(--p,0))}

/* Cursor ring (fine pointers only) */
.cur,.cur-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:250;border-radius:50%;opacity:0;transition:opacity .3s}
.cur{width:36px;height:36px;margin:-18px 0 0 -18px;box-shadow:inset 0 0 0 1.5px var(--gold);transition:opacity .3s,width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background-color .3s}
.cur-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--gold)}
.cur.on,.cur-dot.on{opacity:1}
.cur.big{width:70px;height:70px;margin:-35px 0 0 -35px;background:rgba(201,163,94,.14)}
.cur.dark{box-shadow:inset 0 0 0 1.5px var(--gold-3)}
@media (pointer:coarse){.cur,.cur-dot{display:none}}

/* Word-by-word heading reveal */
.w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}
.w > span{display:inline-block;will-change:transform}

/* Ticker band */
.ticker{position:relative;z-index:4;overflow:hidden;background:var(--gold-2);color:var(--green);padding:15px 0;transform:rotate(-1.4deg);margin:-14px -3% 0;width:106%;box-shadow:0 14px 34px -20px rgba(10,50,34,.6)}
.tk-track{display:flex;width:max-content;animation:tk 46s linear infinite}
.tk-row{display:flex;align-items:center;gap:30px;padding-right:30px}
.tk-row span{font:700 clamp(21px,2vw,30px)/1 var(--serif);white-space:nowrap;letter-spacing:-.01em}
.tk-m{width:24px;height:24px;flex:none}
.tk-green{background:var(--green);color:var(--cream);transform:rotate(1.2deg)}
.tk-green .tk-m{color:var(--gold-3)}
.ticker:hover .tk-track{animation-play-state:paused}
@keyframes tk{to{transform:translateX(-50%)}}
.ticker + .band,.ticker + .sec{margin-top:clamp(0px,1.4vw,22px)}
.p-home .ticker{margin-top:-28px}

/* WhatsApp: gentle bob, a wiggle every few seconds and a soft ring */
.wa{animation:wa-bob 3.4s ease-in-out infinite}
.wa .ic{animation:wa-wig 5s ease-in-out infinite;transform-origin:50% 60%}
.wa::before{content:"";position:absolute;inset:0;border-radius:inherit;animation:wa-ring 2.8s ease-out infinite;pointer-events:none}
@keyframes wa-bob{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes wa-wig{0%,74%,100%{transform:rotate(0)}77%{transform:rotate(-16deg)}80%{transform:rotate(13deg)}83%{transform:rotate(-10deg)}86%{transform:rotate(7deg)}89%{transform:rotate(-3deg)}}
@keyframes wa-ring{0%{box-shadow:0 0 0 0 rgba(201,163,94,.6)}100%{box-shadow:0 0 0 18px rgba(201,163,94,0)}}

/* Floating hero books with a light sweep */
.float .obj > .b3{animation:bob 6.2s ease-in-out infinite}
.float .obj:nth-child(2n) > .b3{animation-duration:7.4s;animation-delay:-2.4s}
.float .obj:nth-child(3n) > .b3{animation-duration:5.6s;animation-delay:-4.1s}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -10px}}
.float .b3:not(.cloth) .fr{overflow:hidden}
.float .b3:not(.cloth) .fr::after{content:"";position:absolute;inset:-10% -70%;z-index:8;pointer-events:none;background:linear-gradient(102deg,rgba(255,255,255,0) 43%,rgba(255,255,255,.42) 50%,rgba(255,255,255,0) 57%);transform:translateX(-75%);animation:sheen 7.5s ease-in-out infinite}
.float .obj:nth-child(2n) .b3 .fr::after{animation-delay:-2.6s}
.float .obj:nth-child(3n) .b3 .fr::after{animation-delay:-5s}
@keyframes sheen{0%,62%{transform:translateX(-75%)}86%,100%{transform:translateX(75%)}}
.spark{position:absolute;z-index:5;width:var(--s,12px);height:var(--s,12px);background:var(--gold-3);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:0;animation:twinkle var(--d,4s) ease-in-out var(--dl,0s) infinite;pointer-events:none}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.3) rotate(0)}45%{opacity:.95;transform:scale(1) rotate(45deg)}70%{opacity:0;transform:scale(.4) rotate(90deg)}}
.fly{position:absolute;z-index:6;width:64px;height:84px;background:#FFFEFA;border-radius:2px;box-shadow:0 10px 24px -10px rgba(0,0,0,.45);pointer-events:none;background-image:repeating-linear-gradient(180deg,transparent 0 9px,#E3DCCB 9px 10px);background-size:70% 100%;background-position:50% 12px;background-repeat:no-repeat}

/* Gold dust canvas in dark bands */
.dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.band > .sec,.band > .wrap,.band > div:not(.dust){position:relative;z-index:1}
.band > .ribbon{z-index:1}

/* Services explorer autoplay */
.svx-tab{position:relative;overflow:hidden}
.svx-tab .tprog{position:absolute;left:14px;right:14px;bottom:5px;height:2px;border-radius:2px;background:var(--gold-2);transform-origin:left;transform:scaleX(0);pointer-events:none}
.svx-auto{position:absolute;right:16px;top:16px;z-index:5;display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;background:var(--white);color:var(--green);font:600 12.5px/1 var(--sans);padding:9px 12px;border-radius:999px;box-shadow:0 0 0 1px var(--line);min-height:36px}
.svx-auto:hover{background:var(--green);color:var(--cream)}
.svx-auto svg{width:14px;height:14px}

/* Cover carousel as coverflow */
.sc-track{perspective:1500px}
.sc-item{transform:translateZ(var(--cz,0px)) rotateY(var(--cr,0deg)) scale(var(--cs,1));transition:transform .35s cubic-bezier(.2,.7,.2,1);transform-origin:50% 60%}
.sc-item .clip::after{content:"";position:absolute;inset:0;z-index:7;pointer-events:none;background:linear-gradient(105deg,rgba(255,255,255,0) 40%,rgba(255,255,255,.3) 50%,rgba(255,255,255,0) 60%);transform:translateX(-120%);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.sc-item:hover .clip::after,.sc-item.lit .clip::after{transform:translateX(120%)}
.sc-auto{width:52px;height:52px;border-radius:50%;border:0;background:rgba(245,242,234,.1);color:var(--cream);display:grid;place-items:center;cursor:pointer}
.sc-auto:hover{background:var(--gold-2);color:var(--green)}
.sc-auto svg{width:18px;height:18px}

/* Brand section: lamp-lit desk and a book that opens */
.brandsec{background:radial-gradient(55% 75% at 26% 48%,rgba(214,176,104,.26),rgba(214,176,104,0) 70%),radial-gradient(90% 70% at 100% 0%,#14503E 0,rgba(20,80,62,0) 60%),linear-gradient(165deg,#0C3828 0%,#072519 100%)}
.brandsec::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.09;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
.ob-stage{height:clamp(440px,40vw,560px)}
.ob-lamp{position:absolute;left:50%;top:48%;width:900px;height:700px;margin:-350px 0 0 -450px;background:radial-gradient(closest-side,rgba(240,206,140,.32),rgba(240,206,140,0));pointer-events:none;opacity:.6}
.ob-floor{position:absolute;left:50%;top:62%;width:700px;height:160px;margin-left:-350px;background:radial-gradient(closest-side,rgba(0,0,0,.55),rgba(0,0,0,0));filter:blur(10px);pointer-events:none}
.ob{transform:translateX(var(--ox,0px)) rotateX(48deg) rotateZ(-6deg) scale(var(--obs,.9))}
.ob-back{position:absolute;left:316px;top:-14px;width:340px;height:468px;background:#1A4A39;border-radius:2px 9px 9px 2px;transform:translateZ(-10px);box-shadow:0 60px 90px -30px rgba(0,0,0,.9)}
.ob-edge{position:absolute;left:324px;top:7px;width:322px;height:440px;transform:translateZ(-5px);border-radius:0 5px 5px 0;background:repeating-linear-gradient(90deg,#E8E0CB 0 1px,#FAF6EC 1px 3px);box-shadow:3px 3px 0 #EFE8D6,6px 6px 0 #E2D9C3}
.pg-r{background:linear-gradient(90deg,#E8DFCB 0,#FBF8F0 9%,#FBF8F0 94%,#F2ECDE 100%)}
.leaf > div{background:linear-gradient(90deg,#E8DFCB 0,#FBF8F0 9%,#FBF8F0 94%,#F2ECDE 100%)}
.leaf .back{background:linear-gradient(270deg,#E8DFCB 0,#FBF8F0 9%,#FBF8F0 94%,#F2ECDE 100%)}
.leaf > div::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(40,30,10,.45),rgba(40,30,10,0) 75%);opacity:var(--sh,0)}
.leaf .back::after{background:linear-gradient(270deg,rgba(40,30,10,.45),rgba(40,30,10,0) 75%)}
.ob-front{position:absolute;left:318px;top:-14px;width:338px;height:468px;transform-origin:left center;transform-style:preserve-3d;transform:translateZ(8px) rotateY(var(--fr,-178deg));z-index:6}
.of-out,.of-in{position:absolute;inset:0;backface-visibility:hidden;border-radius:2px 9px 9px 2px;overflow:hidden}
.of-out{background:radial-gradient(70% 60% at 40% 35%,#1F5A46,#0F3D2C 75%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#E2C27A;box-shadow:inset 8px 0 0 rgba(0,0,0,.18),inset 11px 0 0 rgba(255,255,255,.05)}
.of-out::before{content:"";position:absolute;inset:0;opacity:.18;background:repeating-linear-gradient(45deg,rgba(255,255,255,.08) 0 2px,rgba(0,0,0,.08) 2px 4px)}
.of-frame{position:absolute;inset:22px;border:1.5px solid rgba(226,194,122,.75);border-radius:4px;box-shadow:inset 0 0 0 5px rgba(226,194,122,.0),inset 0 0 0 6.5px rgba(226,194,122,.45)}
.of-out .mk{width:110px;height:110px;color:#E2C27A;position:relative;filter:drop-shadow(0 1px 0 rgba(0,0,0,.4))}
.of-out b{font:700 30px/1 Cinzel,Georgia,serif;letter-spacing:.06em;position:relative;text-shadow:0 1px 0 rgba(0,0,0,.4)}
.of-sub{font:600 11px/1 var(--sans);letter-spacing:.42em;text-transform:uppercase;position:relative;opacity:.85}
.of-in{transform:rotateY(180deg);background:#0F3D2C radial-gradient(circle,rgba(201,163,94,.5) 0 1.5px,transparent 2.5px) 0 0/22px 22px;box-shadow:inset -10px 0 18px -8px rgba(0,0,0,.5)}
.ribbon-mark{z-index:7}
@media (max-width:640px){.ob-stage{height:330px}.ob-lamp{width:520px;height:420px;margin:-210px 0 0 -260px}}

/* Genre shelf: an opening book */
.g-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.g-stage{display:grid;justify-items:center;gap:16px;perspective:1900px;padding-top:20px}
.g-book{--pw:clamp(200px,17.5vw,250px);--ph:calc(var(--pw) * 1.5);position:relative;width:calc(var(--pw) * 2);height:var(--ph);transform-style:preserve-3d;transform:translateY(var(--gl,0px)) rotateX(9deg)}
.g-book::after{content:"";position:absolute;left:4%;right:4%;bottom:-34px;height:40px;background:radial-gradient(closest-side,rgba(10,50,34,.38),rgba(10,50,34,0));filter:blur(6px);transform:translateZ(-30px)}
.gb-page{position:absolute;right:0;top:0;width:var(--pw);height:var(--ph);border-radius:0 6px 6px 0;overflow:hidden;background:linear-gradient(90deg,#E6DCC6 0,#FBF8F0 9%);box-shadow:2px 2px 0 #EFE8D6,4px 4px 0 #E2D9C3,6px 6px 0 #D8CFB8,0 30px 50px -24px rgba(10,50,34,.55)}
.gb-pad{height:100%;padding:clamp(16px,1.6vw,24px) clamp(14px,1.4vw,22px);display:flex;flex-direction:column;gap:8px}
.gb-page .gg{margin:0}
.gb-page h3{font-size:clamp(20px,1.8vw,25px)}
.gb-page p#g-text{font-size:clamp(12.5px,1vw,14px);line-height:1.5;color:var(--muted);margin:0}
.gb-page .chips{margin-top:2px;gap:5px}
.gb-page .chips span{font-size:11.5px;padding:7px 9px;background:var(--mist)}
.gb-page .link{margin-top:auto;font-size:14px;align-self:flex-start}
.gb-cover{position:absolute;right:0;top:0;width:var(--pw);height:var(--ph);transform-origin:left center;transform-style:preserve-3d;transform:translateZ(2px) rotateY(var(--go,-172deg));z-index:3}
.gb-front,.gb-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:2px 6px 6px 2px;overflow:hidden}
.gb-front .cv{width:100%;height:100%;aspect-ratio:auto}
.gb-front::after{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.3),rgba(0,0,0,0) 60%);opacity:var(--gsh,0)}
.gb-back{transform:rotateY(180deg);background:#0F3D2C radial-gradient(circle,rgba(201,163,94,.45) 0 1.4px,transparent 2.4px) 0 0/20px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--gold-3);text-align:center;padding:20px;box-shadow:inset -12px 0 18px -10px rgba(0,0,0,.55)}
.gb-back .mk{width:64px;height:64px;color:var(--gold-3)}
.gb-back span{font:700 clamp(18px,1.6vw,22px)/1.15 var(--serif);background:#0F3D2C;padding:6px 10px;border-radius:6px}
.g-hint{display:flex;align-items:center;gap:12px;margin:18px 0 0;font:600 13px/1 var(--sans);color:var(--muted)}
.gh-bar{width:150px;height:3px;border-radius:3px;background:var(--line);overflow:hidden}
.gh-bar i{display:block;height:100%;background:var(--gold);transform-origin:left;transform:scaleX(var(--gp,0))}
.spine{will-change:transform}
.spine.up{box-shadow:0 26px 34px -14px rgba(10,50,34,.55)}
@media (max-width:1000px){.g-grid{grid-template-columns:minmax(0,1fr)} .g-stage{padding-top:0}}
@media (max-width:640px){
  .g-book{--pw:43vw;--ph:calc(var(--pw) * 1.72)}
  .gb-page .chips{display:none}
  .gb-page h3{font-size:19px}
  .gb-page p#g-text{font-size:12.5px}
}

/* Hover tilt for cards */
.tilt{transform-style:preserve-3d;will-change:transform;transition:transform .5s var(--ease),box-shadow .4s}

@media (prefers-reduced-motion:reduce){
  .tk-track,.wa,.wa .ic,.wa::before,.float .obj > .b3,.float .b3 .fr::after,.spark{animation:none !important}
  .pt{display:none !important}
  .sc-item{transform:none !important}
  .cur,.cur-dot{display:none}
}

.ph-stack{--sc:1;left:50%}
@media (max-width:640px){.ph-stack{--sc:.72}}

/* Services tab strip: active tab glows, a gold light passes along the strip */
.svx-tab[aria-selected="true"]{box-shadow:0 10px 24px -12px rgba(10,50,34,.55)}
.svx-tab[aria-selected="true"]::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(100deg,rgba(255,255,255,0) 35%,rgba(230,211,165,.35) 50%,rgba(255,255,255,0) 65%);background-size:250% 100%;animation:tabsheen 3.2s ease-in-out infinite}
.svx-tab[aria-selected="true"] .ti{animation:tibob 2.8s ease-in-out infinite}
@keyframes tabsheen{0%{background-position:120% 0}60%,100%{background-position:-120% 0}}
@keyframes tibob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px) rotate(-4deg)}}
@media (max-width:1000px){.svx-tabs{scroll-snap-type:none}}
@media (prefers-reduced-motion:reduce){.svx-tab::after,.svx-tab .ti{animation:none !important}}

/* ================= Round 3: horizontal navigation, facts, reviews, polish ================= */
/* GSAP entrance tweens: no CSS transitions while they run (otherwise end values are read mid-transition) */
.gs-in{transition:none !important}

/* Homepage services explorer: horizontal tab strip on every screen size, details below */
.svx{grid-template-columns:minmax(0,1fr) !important;gap:18px}
.svx-tabs{position:relative !important;top:auto !important;flex-direction:row !important;align-items:center;overflow-x:auto;gap:8px;padding:8px 56px 16px !important;margin-inline:0 !important;scrollbar-width:none;scroll-snap-type:none !important;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 56px,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 56px,#000 calc(100% - 56px),transparent)}
.svx-tabs::-webkit-scrollbar{display:none}
.svx-group{display:inline-flex !important;flex:none;align-items:center;gap:8px;margin:0 4px 0 18px !important;white-space:nowrap;font-size:11.5px}
.svx-group:first-child{margin-left:0 !important}
.svx-group::after{content:"";width:22px;height:1px;background:var(--gold-2)}
.svx-tab{flex:0 0 auto !important;width:auto !important;min-height:54px;padding:8px 20px 8px 10px;border-radius:999px;background:var(--mist);white-space:nowrap;box-shadow:inset 0 0 0 1px var(--line)}
.svx-tab .ti{border-radius:50%;width:36px;height:36px;background:var(--white)}
.svx-tab:hover{background:var(--white);box-shadow:inset 0 0 0 1px var(--gold-2)}
.svx-tab[aria-selected="true"]{box-shadow:0 12px 26px -12px rgba(10,50,34,.6)}
@media (min-width:1001px){ .svx-panel{grid-template-columns:minmax(0,1.55fr) minmax(0,.85fr) !important} }
@media (max-width:1000px){ .svx-tabs{margin-inline:calc(var(--gutter) * -1) !important;padding:6px var(--gutter) 14px !important;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 40px),transparent)} .svx-group{display:none !important} }

/* Service pages: sub-service tabs become a horizontal pill row above the details */
.subx{grid-template-columns:minmax(0,1fr) !important;gap:20px}
.js .subx-list{position:relative;top:auto;flex-direction:row;flex-wrap:wrap;gap:10px}
.subx-list button{width:auto;flex:0 0 auto;min-height:52px;padding:8px 20px 8px 8px;border-radius:999px;background:var(--mist);box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap}
.subx-list .n{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--white);font-size:14px;transition:background-color .25s,color .25s}
.subx-list button:hover{background:var(--white);box-shadow:inset 0 0 0 1px var(--gold-2)}
.subx-list button[aria-selected="true"]{box-shadow:0 12px 26px -12px rgba(10,50,34,.6)}
.subx-list button[aria-selected="true"] .n{background:var(--gold-2);color:var(--green)}
.js .subx-p{min-height:0}
.subx-p{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:12px 40px;align-items:start}
.js .subx-p.on,.subx-p{display:grid}
.js .subx-p:not(.on){display:none}
.subx-p > h3,.subx-p > p{grid-column:1}
.subx-p > .subx-get{grid-column:2;grid-row:1/4;margin:0}
.subx-p > .link{grid-column:1;justify-self:start;margin-top:10px}
@media (max-width:1000px){
  .js .subx-list{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(var(--gutter) * -1);padding:4px var(--gutter) 8px}
  .subx-p{grid-template-columns:minmax(0,1fr)}
  .subx-p > .subx-get{grid-column:1;grid-row:auto;margin:6px 0 4px}
}

/* Horizontal sticky chip bars (FAQ topics, guide contents) */
.faq-cols{grid-template-columns:minmax(0,1fr) !important;max-width:1000px;margin-inline:auto;gap:28px}
.guide-grid{grid-template-columns:minmax(0,1fr) !important;max-width:920px;margin-inline:auto;gap:36px}
.chipbar{flex-wrap:nowrap !important;position:sticky !important;top:96px;z-index:30;display:flex !important;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 0 1px var(--line),0 18px 34px -26px rgba(10,50,34,.45)}
.chipbar::-webkit-scrollbar,.chipbar ol::-webkit-scrollbar{display:none}
.faq-nav.chipbar a{flex:none;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:var(--mist);white-space:nowrap;font:600 14.5px/1 var(--sans);color:var(--ink);transition:background-color .25s,color .25s}
.faq-nav.chipbar a span{font:700 11.5px/1 var(--sans);padding:4px 7px;border-radius:999px;background:var(--white);color:var(--gold-ink)}
.faq-nav.chipbar a:hover{background:var(--sage)}
.faq-nav.chipbar a.on{background:var(--green);color:var(--cream)}
.faq-nav.chipbar a.on span{background:var(--gold-2);color:var(--green)}
.toc.chipbar{gap:14px;padding:8px 10px 8px 20px}
.toc.chipbar b{flex:none}
.toc.chipbar ol{display:flex;flex:1;min-width:0;margin:0;gap:4px;overflow-x:auto;scrollbar-width:none}
.toc.chipbar li{flex:none}
.toc.chipbar a{display:inline-flex;gap:7px;white-space:nowrap;padding:9px 14px;border-radius:999px;font-size:14px}
.toc.chipbar a::before{font-size:13px}
.toc.chipbar a.on{background:var(--green);color:var(--cream)}
.toc.chipbar a.on::before{color:var(--gold-3)}
.toc.chipbar .toc-progress{position:absolute;left:24px;right:24px;bottom:0;height:3px;margin:0;background:transparent}
@media (max-width:1180px){ .chipbar{top:84px} }
@media (max-width:640px){ .chipbar{border-radius:16px} .toc.chipbar b{display:none} .toc.chipbar{padding-left:10px} }

/* How it works: step cards (nested checklists were inheriting the card layout) */
.how-steps .checks li{display:grid;grid-template-columns:20px 1fr;gap:10px;background:none;border-radius:0;padding:0}
.how-steps > li{position:relative;overflow:hidden}
.how-steps > li::after{content:attr(data-n);position:absolute;right:14px;bottom:-26px;font:700 120px/1 var(--serif);color:rgba(10,50,34,.05);pointer-events:none}

/* Services hub: group headings sit with their own cards */
.hub-group + .hub-group{margin-top:64px}
.hg-head{padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:22px}

/* Facts strip with count-up numbers */
.facts{padding-block:clamp(40px,5vw,72px)}
.facts-soft{background:linear-gradient(180deg,var(--mist),#FFFFFF)}
.facts-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.fact{position:relative;padding:6px clamp(12px,2vw,28px);text-align:center}
.fact + .fact::before{content:"";position:absolute;left:0;top:10%;bottom:10%;width:1px;background:linear-gradient(transparent,var(--gold-2),transparent)}
.fact b{display:block;font:700 clamp(46px,5.6vw,80px)/1 var(--serif);letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;background:linear-gradient(100deg,var(--green) 0 42%,var(--gold-2) 50%,var(--green) 58% 100%);background-size:320% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;animation:factshine 7s ease-in-out infinite}
.fact span{display:block;margin-top:12px;font-size:15px;color:var(--muted);max-width:22ch;margin-inline:auto}
@keyframes factshine{0%,60%{background-position:100% 0}100%{background-position:0 0}}
@media (max-width:760px){ .facts-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:26px} .fact:nth-child(3)::before{display:none} }

/* Review wall: two rows drifting in opposite directions */
.reviews{background:linear-gradient(180deg,#FFFFFF,var(--mist));overflow:hidden}
.rv-note{display:flex;gap:10px;align-items:flex-start;margin-top:20px;max-width:780px;padding:12px 16px;border-radius:14px;background:#FBF6EA;box-shadow:inset 0 0 0 1px rgba(178,138,71,.4);font-size:14px;line-height:1.5;color:var(--ink)}
.rv-note svg{flex:none;width:18px;height:18px;color:var(--gold-ink);margin-top:2px}
.rv-wall{display:grid;gap:18px;margin-top:clamp(28px,4vw,48px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.rv-row{display:flex;width:max-content}
.rv-track{display:flex;gap:18px;padding-right:18px;animation:rvl 70s linear infinite}
.rv-row.r .rv-track{animation-name:rvr;animation-duration:80s}
@keyframes rvl{to{transform:translateX(-100%)}}
@keyframes rvr{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.rv-wall:hover .rv-track,.reviews.paused .rv-track{animation-play-state:paused}
.rv{flex:none;width:clamp(270px,27vw,360px);margin:0;background:var(--white);border-radius:22px;padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:inset 0 0 0 1px var(--line),0 18px 36px -28px rgba(10,50,34,.45);transition:transform .4s var(--ease),box-shadow .4s}
.rv:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:inset 0 0 0 1px var(--gold-2),0 26px 40px -26px rgba(10,50,34,.5)}
.rv-stars{display:flex;gap:3px;color:var(--gold-2)}
.rv-stars svg{width:17px;height:17px}
.rv-stars svg:not(.on){opacity:.25}
.rv-ph .rv-stars{color:#CFC8B8}
.rv-ph .rv-stars svg{opacity:1}
.rv blockquote{margin:0;flex:1;font:500 19px/1.45 var(--serif);color:var(--ink)}
.rv blockquote p{margin:0}
.rv-ph blockquote p{color:var(--muted);font-style:italic;font-size:17px}
.rv-sk i{display:block;height:8px;margin-top:10px;border-radius:4px;background:linear-gradient(90deg,var(--mist) 0,#ECE6D7 50%,var(--mist) 100%);background-size:200% 100%;animation:rvsk 1.8s linear infinite}
.rv-sk i + i{width:62%}
@keyframes rvsk{to{background-position:-200% 0}}
.rv figcaption{display:flex;align-items:center;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.rv-av{flex:none;width:42px;height:42px;border-radius:50%;background:var(--green);color:var(--gold-3);display:grid;place-items:center;font:700 19px/1 var(--serif)}
.rv-av svg{width:18px;height:18px}
.rv figcaption b{display:block;font:600 15px/1.2 var(--sans);color:var(--ink)}
.rv figcaption small{display:block;margin-top:3px;font-size:13px;color:var(--muted)}
.rv-pause-wrap{display:flex;justify-content:center;margin-top:22px}
.rv-pause{border:0;cursor:pointer;min-height:42px;padding:0 18px;border-radius:999px;background:var(--white);color:var(--green);font:600 14px/1 var(--sans);box-shadow:inset 0 0 0 1px var(--line)}
.rv-pause:hover{box-shadow:inset 0 0 0 1px var(--gold-2)}

/* Packages: the featured card carries a slowly orbiting gold edge */
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}
.pk{position:relative}
.pk.feat::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;background:conic-gradient(from var(--ang),transparent 0 62%,rgba(230,211,165,.2) 70%,var(--gold-3) 86%,var(--gold-2) 92%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:pkspin 4.5s linear infinite}
@keyframes pkspin{to{--ang:360deg}}

/* Primary buttons: a soft light passes across every few seconds */
.btn-green,.btn-gold{position:relative;overflow:hidden;isolation:isolate}
.btn-green::before,.btn-gold::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);transform:translateX(-120%);animation:btnshine 5.5s ease-in-out infinite}
.btn-gold::before{background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%)}
@keyframes btnshine{0%,72%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

/* Inner heroes with art */
.ph-art-hero .ph-copy > .btn{margin-top:28px}
.ph-art-hero .faq-search{margin-top:26px}

/* Cover carousel: free-running conveyor (snap only when it stops) */
.sc-track.run{scroll-snap-type:none}

/* Blog cards: covers lift and turn */
.post-card .pc-cover{transition:transform .6s var(--ease);transform-origin:50% 100%}
.post-card a:hover .pc-cover{transform:translateY(-8px) rotate(-3deg) scale(1.03)}

/* Section accents: a short gold rule grows in under section headings */
.sec-head h2::after{content:"";display:block;width:64px;height:3px;margin-top:18px;border-radius:3px;background:linear-gradient(90deg,var(--gold-2),var(--gold-3));transform:scaleX(var(--rule,1));transform-origin:left;transition:transform 1.1s var(--ease) .3s}
.js .sec-head h2:not(.ruled)::after{--rule:0}

@media (prefers-reduced-motion:reduce){
  .rv-track{animation:none}
  .rv-row{width:auto;overflow-x:auto}
  .rv-track[aria-hidden]{display:none}
  .fact b,.pk.feat::before,.btn-green::before,.btn-gold::before,.rv-sk i{animation:none}
  .fact b{background:none;color:var(--green)}
  .sec-head h2::after{transition:none}
  .js .sec-head h2:not(.ruled)::after{--rule:1}
}

/* Filters stay on one swipeable line on phones */
@media (max-width:640px){ .hub-filter.seg,.pf-filter.seg{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%} .hub-filter.seg::-webkit-scrollbar,.pf-filter.seg::-webkit-scrollbar{display:none} .hub-filter.seg button,.pf-filter.seg button{flex:none;white-space:nowrap} }

/* ================= Reviews section, round 4: intro + spotlight + two moving rows ================= */
.reviews{position:relative;background:radial-gradient(1100px 520px at 85% 0%,rgba(178,138,71,.12),transparent 60%),linear-gradient(180deg,#FFFFFF,var(--mist))}
.rv-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(28px,5vw,72px);align-items:center}
.rv-kicker{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;font:700 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}
.rv-kicker svg{width:15px;height:15px;color:var(--gold-2)}
.rv-intro h2{font-size:clamp(36px,4vw,56px);line-height:1.04}
.rv-intro .lede{margin-top:18px}
.rv-mini{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:24px;font-size:15px;color:var(--muted)}
.rv-mini b{color:var(--ink)}
.rv-mini .rv-stars svg{width:20px;height:20px}
.rv-intro .rv-note{margin-top:22px}

/* Spotlight: one featured review at a time, crossfading */
.rv-spot{position:relative;display:grid;min-height:380px;padding:clamp(28px,3.4vw,46px);border-radius:var(--r-lg);background:radial-gradient(520px 300px at 100% 0%,rgba(178,138,71,.28),transparent 65%),var(--green);color:var(--cream);box-shadow:0 40px 70px -40px rgba(10,50,34,.75);overflow:hidden;isolation:isolate}
.rv-spot::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;background:conic-gradient(from var(--ang),transparent 0 65%,rgba(230,211,165,.25) 75%,var(--gold-3) 88%,transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:pkspin 6s linear infinite}
.rv-qm{position:absolute;right:clamp(22px,3vw,40px);top:clamp(20px,3vw,34px);width:clamp(64px,7vw,96px);height:auto;color:var(--gold-2);opacity:.35;z-index:-1}
.rv-sp{grid-area:1/1;margin:0;display:flex;flex-direction:column;gap:18px;opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .7s var(--ease),transform .9s var(--ease),visibility 0s .7s}
.rv-sp.on{opacity:1;visibility:visible;transform:none;transition:opacity .7s var(--ease) .15s,transform .9s var(--ease) .15s}
.rv-sp blockquote{margin:0;font:500 clamp(22px,2.2vw,30px)/1.38 var(--serif);color:var(--cream)}
.rv-sp blockquote p{margin:0}
.rv-sp .rv-stars{color:var(--gold-3)}
.rv-sp .rv-stars svg{width:20px;height:20px}
.rv-sp figcaption{display:flex;align-items:center;gap:14px;padding-top:18px;border-top:1px solid rgba(245,242,234,.16)}
.rv-sp figcaption b{display:block;font:600 16px/1.2 var(--sans)}
.rv-sp figcaption small{display:block;margin-top:4px;font-size:13.5px;color:var(--on-dark-2,rgba(245,242,234,.7))}
.rv-sp .rv-svc{margin:-6px 0 0;color:var(--gold-3)}
.rv-dots{display:flex;gap:8px;margin-top:26px;align-self:end}
.rv-dots button{border:0;padding:0;cursor:pointer;width:34px;height:24px;background:none;display:grid;place-items:center}
.rv-dots i{display:block;width:100%;height:3px;border-radius:3px;background:rgba(245,242,234,.22);overflow:hidden;position:relative}
.rv-dots i::after{content:"";position:absolute;inset:0;background:var(--gold-2);transform:scaleX(0);transform-origin:left}
.rv-dots button[aria-pressed="true"] i::after{animation:rvdot var(--rvt,6.5s) linear forwards}
.rv-spot.hold .rv-dots button[aria-pressed="true"] i::after{animation-play-state:paused}
@keyframes rvdot{to{transform:scaleX(1)}}

/* Cards in the moving rows */
.rv-wall{margin-top:clamp(40px,5vw,64px)}
.rv{gap:12px}
.rv-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rv-tag{font:700 10.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:#FBF6EA;color:var(--gold-ink);box-shadow:inset 0 0 0 1px rgba(178,138,71,.35)}
.rv-sp .rv-tag{background:rgba(245,242,234,.1);color:var(--gold-3);box-shadow:inset 0 0 0 1px rgba(230,211,165,.3)}
.rv-svc{margin:0;font:600 12px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink)}
.rv blockquote{font-size:18px}
.rv-av.av0{background:var(--green);color:var(--gold-3)}
.rv-av.av1{background:var(--gold-2);color:var(--green)}
.rv-av.av2{background:#2F5A47;color:var(--cream)}
.rv-av.av3{background:#E9E1CD;color:var(--green)}
.rv-sp .rv-av{width:48px;height:48px;font-size:21px}

@media (max-width:1000px){
  .rv-head{grid-template-columns:minmax(0,1fr)}
  .rv-spot{min-height:0}
}
@media (max-width:640px){
  .rv-spot{margin-inline:calc(var(--gutter) * -.25)}
  .rv-sp blockquote{font-size:21px}
  .rv{width:280px}
}
@media (prefers-reduced-motion:reduce){
  .rv-spot::after,.rv-dots i::after{animation:none}
  .rv-dots button[aria-pressed="true"] i::after{transform:scaleX(1);animation:none}
  .rv-sp,.rv-sp.on{transition:none;transform:none}
}
.rv-qm{top:auto;bottom:clamp(20px,3vw,34px)}
.rv-sp .rv-av{background:var(--gold-2);color:var(--green)}
.rv-pause-wrap{flex-direction:column;align-items:center;gap:12px}
.rv-caption{margin:0;font-size:12.5px;color:var(--muted);opacity:.8}

/* ================= Header dropdowns, round 5: compact panels like a classic publisher menu ================= */
.has-menu > button{padding:10px 12px;margin:0 -12px;border-radius:999px;transition:background-color .25s,color .25s}
.has-menu > button::after{display:none}
.has-menu > button:hover,.has-menu > button[aria-expanded="true"]{background:var(--mist);color:var(--green)}
.has-menu > button.is-active{color:var(--green);font-weight:600}
.has-menu > button.is-active::before{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:2px;border-radius:2px;background:var(--gold)}
.dd{position:absolute;z-index:70;top:calc(100% + 14px);left:50%;transform:translateX(-50%);background:var(--white);border-radius:18px;padding:12px;box-shadow:0 26px 50px -22px rgba(10,50,34,.35),0 0 0 1px var(--line)}
.dd[hidden]{display:none}
.dd::before{content:"";position:absolute;top:-7px;left:50%;width:14px;height:14px;margin-left:-7px;background:var(--white);transform:rotate(45deg);border-radius:3px 0 0 0;box-shadow:-1px -1px 0 var(--line)}
.dd::after{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}
.dd-svc{width:min(860px,92vw);transform:translateX(-30%)}
.dd-svc::before{left:30%}
.dd-sm{width:300px}
.dd-grid{display:grid;gap:2px}
.dd-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 4px}
.dd a{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;align-items:center;padding:8px 10px;border-radius:12px;text-decoration:none;color:var(--ink);transition:background-color .2s}
.dd a:hover,.dd a:focus-visible,.dd a[aria-current="page"]{background:var(--mist)}
.dd .mi{width:36px;height:36px;border-radius:10px;background:var(--sage);color:var(--green);display:grid;place-items:center;transition:background-color .25s,color .25s,transform .35s var(--ease)}
.dd .mi svg{width:18px;height:18px}
.dd a:hover .mi{background:var(--green);color:var(--gold-3);transform:rotate(-6deg)}
.dd b{display:block;font:700 17px/1.15 var(--serif);color:var(--green)}
.dd small{display:block;margin-top:2px;font-size:12.5px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dd-foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px 22px;margin-top:8px;padding:12px 10px 4px;border-top:1px solid var(--line);font-size:14px}
@media (max-width:1320px){ .dd-svc{width:min(860px,92vw)} }
.dd .dd-foot a{display:inline-flex;grid-template-columns:none;gap:8px;padding:2px 0;border-radius:0;background:none;white-space:nowrap;font:600 14px/1.2 var(--sans);color:var(--green)}
.dd .dd-foot a:hover{background:none}
.dd-svc{width:min(920px,94vw)}
/* With fewer top-level links there is room for the phone number again */
@media (min-width:1181px) and (max-width:1380px){ .head-wa span{display:inline} .head-wa{padding:12px 0} }
@media (min-width:1181px) and (max-width:1260px){ .head-wa span{display:none} }
/* Form status messages and the hidden spam trap */
.hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note.ok{background:#EAF4EE;color:#174B33;box-shadow:inset 0 0 0 1px #A9D2B9}
.form-note.ok b{color:#0F3A26}
.form-note.err{background:#FBEDEA;color:#6E2A1E;box-shadow:inset 0 0 0 1px #E8B9AE}
.form-note.err b{color:#561E14}
.form-note a{color:inherit;font-weight:600}
.form h2.form-h,.on-dark .form h2.form-h{grid-column:1/-1;margin:0;font-size:clamp(28px,2.4vw,34px);color:var(--green)}
/* Buttons inside article text keep their own colours */
.prose a.btn{text-decoration:none}
.prose a.btn-green{color:var(--cream)}
.prose a.btn-ghost{color:var(--green)}
