/* Ripple 021. Existing brand assets, typefaces and colour tokens are retained. */
.pg{--site-width:1280px;--gutter:clamp(20px,4vw,56px);--frame-gap:clamp(8px,1.2vw,16px);--section-gap:clamp(64px,8vw,112px)}
.pg .wrap,.pg .hdr-in{max-width:var(--site-width);padding-inline:var(--gutter)}
.pg .inset{padding-inline:var(--frame-gap)}
.pg .panel{max-width:calc(var(--site-width) - 2 * var(--frame-gap));padding-inline:max(12px,calc(var(--gutter) - var(--frame-gap)));border-radius:clamp(24px,3vw,36px)}
.pg .hdr-in{height:80px}
.pg .sec{padding-block:var(--section-gap)}
.pg .sec-b{padding-bottom:var(--section-gap)}
.pg .page-hero{padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(44px,5vw,72px)}
.pg .page-hero .t-h1{line-height:1.06}
.pg .page-hero>.label{margin-bottom:24px}
.pg .label,.pg .kicker{letter-spacing:0;text-transform:none}
.pg .head{margin-bottom:clamp(32px,4vw,52px)}
.pg .split{gap:24px 48px}
.pg .t-lead{max-width:44em}
.pg .skip-link{position:fixed;top:12px;left:var(--gutter);transform:translateY(-180%);z-index:100;padding:12px 20px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:600;text-decoration:none}
.pg .skip-link:focus{transform:none;outline:2px solid var(--sienna);outline-offset:3px}
.pg .card{border-radius:28px}
.pg a.card:hover{translate:0 -3px;box-shadow:none}
.pg .row{padding-block:26px}
.pg .ftr{padding-top:clamp(56px,7vw,88px)}
.pg .ftr-cols{gap:40px 32px;padding-bottom:56px}
.pg .ftr-cols h2{color:var(--sienna)}
.pg .ftr-cols a:not(.brand){text-underline-offset:4px}
.pg .ftr-cols a:not(.brand):hover{text-decoration:underline}
.pg .legal{line-height:1.65}

/* Homepage: proposition first, credentials on their own baseline. */
.pg .hero .hero-in{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:32px 48px;align-items:center;padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(36px,4vw,56px)}
.pg .hero .hero-in>.hero-copy{display:block;min-width:0}
.pg .hero .hero-eyebrow{margin-bottom:28px}
.pg .hero .t-display{font-size:clamp(46px,6vw,84px)!important;line-height:1.02}
.pg .hero .hero-copy>.t-lead{max-width:32em;line-height:1.55;margin-top:32px!important}
.pg .hero .hero-copy .btns{margin-top:32px!important}
.pg .hero .hero-scene{width:100%;max-width:660px;margin:0;min-width:0}
.pg .hero .hero-credentials .hero-proof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0!important;max-width:none;padding-block:28px;border-top:1px solid var(--line)}
.pg .hero-proof li{padding:0 24px 0 0;background:none;border-radius:0;border-right:1px solid var(--line)}
.pg .hero-proof li:last-child{padding-right:0;border-right:0}
.pg .hero-proof b{font-size:clamp(20px,2vw,28px);font-weight:700;line-height:1.2;white-space:normal}
.pg .hero-proof span{margin-top:8px;font-size:14px}
.pg .hero .proof{display:flex;justify-content:space-between;gap:12px 24px;padding-block:20px;font-size:14px}
.pg .hero .proof .link{font-size:14px}

/* A numbered service index offers a clear route into the technical depth. */
.pg .home-services{padding-bottom:0}
.pg .service-composition{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px 80px;align-items:start}
.pg .service-intro{position:sticky;top:120px}
.pg .service-intro .t-h2{max-width:11em}
.pg .service-intro>.t-lead{margin-block:24px 28px;max-width:24em}
.pg .service-entry{display:grid;grid-template-columns:30px minmax(0,1fr) 28px;gap:16px;padding-block:26px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.pg .service-number{color:var(--sienna);font-size:14px;line-height:1.6;padding-top:3px;font-variant-numeric:tabular-nums}
.pg .service-stage{display:block;color:var(--text3);font-size:14px;margin-bottom:7px}
.pg .service-entry h3{font-size:clamp(23px,2vw,28px);transition:color .2s var(--ease)}
.pg .service-entry p{font-size:16px;margin-top:9px;max-width:32em}
.pg .service-arrow{font-size:25px;color:var(--sienna);transition:transform .2s var(--ease)}
.pg .service-entry:hover h3{color:var(--sienna)}
.pg .service-entry:hover .service-arrow{transform:translate(3px,-3px)}
.pg .service-follow{border-top:1px solid var(--line);padding-top:22px;font-size:14px;color:var(--text2)}
.pg .service-follow a{color:var(--ember);font-weight:600;text-underline-offset:4px}

/* Audience routes stay typographic rather than becoming another row of boxes. */
.pg .home-audience .who4{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px}
.pg .audience-route{position:relative;display:block;padding:26px 24px 30px 0!important;color:inherit;text-decoration:none}
.pg .route-number{display:block;font-size:14px;color:var(--sienna);margin-bottom:20px;font-variant-numeric:tabular-nums}
.pg .audience-route h3{max-width:25em}
.pg .audience-route p{max-width:30em}
.pg .audience-route:hover h3{color:var(--sienna)}
.pg .home-assurance .panel{padding-block:clamp(48px,6vw,80px)}
.pg .assurance-principles{margin-top:48px}
.pg .home-assurance .cols3>div>div{height:64px!important;margin-bottom:18px!important}
.pg .home-assurance .cols3>div>div svg{max-height:64px}

/* Editorial proof of thinking. These are external appeal analyses, not project claims. */
.pg .editorial-intro{max-width:43em;font-size:18px;margin-top:-16px;margin-bottom:36px}
.pg .editorial-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:0 48px}
.pg .editorial-story{display:flex;flex-direction:column;align-items:flex-start;min-width:0;text-decoration:none;color:var(--ink);padding-block:28px;border-top:1px solid var(--line)}
.pg .editorial-story:first-child{grid-row:span 2;align-self:stretch;background:var(--ink);color:var(--paper);border:0;border-radius:32px;padding:clamp(28px,4vw,48px)}
.pg .editorial-story .label{font-size:14px;margin-bottom:18px}
.pg .editorial-story .editorial-title{font-size:clamp(27px,3vw,40px);line-height:1.14;letter-spacing:-.035em}
.pg .editorial-story .t-h3{font-size:clamp(22px,2vw,27px)}
.pg .editorial-story>p{font-size:16px;margin-top:18px;margin-bottom:24px;max-width:34em}
.pg .editorial-read{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;margin-top:auto;font-size:15px;font-weight:600;color:var(--ember)}
.pg .editorial-story.on-dark .editorial-read{color:var(--paper)}
.pg .editorial-story:hover .editorial-read{text-decoration:underline;text-underline-offset:5px}
.pg .home-close .panel{padding-block:clamp(48px,6vw,80px)}
.pg .home-close .steps .t-h1{font-size:clamp(34px,4vw,52px);line-height:1.1}
.pg .home-close .steps{gap:32px 48px}
.pg .home-close .hair.split{margin-top:48px!important;padding-top:40px!important}

/* Services: stage shortcuts and a stable editorial reading rail. */
.pg .services-masthead .panel{position:relative;overflow:hidden;padding-block:clamp(44px,6vw,80px)!important}
.pg .stage-routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:36px}
.pg .stage-routes a{display:flex;align-items:center;gap:12px;min-height:60px;padding:14px 16px;border:1px solid var(--ink);border-radius:24px;color:var(--ink);font-size:15px;font-weight:500;text-decoration:none}
.pg .stage-routes a span{font-size:12px;color:var(--ember)}
.pg .stage-routes a b{margin-left:auto;color:var(--ember);font-size:20px;font-weight:500}
.pg .stage-routes a:hover{background:var(--paper)}
.pg .service-catalogue{grid-template-columns:200px minmax(0,1fr);gap:48px 72px}
.pg .svc-ix{top:112px}
.pg .svc-ix a{padding-block:15px;font-size:14px}
.pg .svc-a{padding-block:56px}
.pg .svc-a>.t-h2{font-size:clamp(29px,3.2vw,44px);line-height:1.12}
.pg .svc-a .svc-head{margin-top:24px;gap:24px 36px}
.pg .svc-a .svc-two{gap:28px 40px;margin-block:32px}
.pg .svc-a .callout{background:var(--stone);padding:20px 24px}
.pg .ill-fig{min-width:0}
.pg .ill-fig figcaption{font-size:14px;line-height:1.5;margin-top:16px;max-width:35em}

/* Contact: the form is the main event. */
.pg .contact-promise-wrap{padding-bottom:40px}
.pg .contact-promise{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px;padding-block:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pg .contact-promise li{display:flex;align-items:flex-start;gap:16px}
.pg .promise-number{color:var(--sienna);font-size:14px;line-height:1.5;padding-top:3px;font-variant-numeric:tabular-nums}
.pg .contact-promise h2{font-size:18px;line-height:1.4;letter-spacing:-.02em;margin-bottom:8px}
.pg .contact-promise p{font-size:15px;line-height:1.5;color:var(--text2);max-width:24em}
.pg .k-grid{grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:40px 56px}
.pg .enquiry-surface{background:var(--paper);border:1px solid var(--line);border-radius:32px}
.pg .book{background:var(--stone);border:0;border-radius:28px}
.pg .field label{margin-bottom:8px}
.pg .field input,.pg .field select,.pg .field textarea{border-radius:12px}
.pg .k-side dd a{text-underline-offset:4px;overflow-wrap:anywhere}

/* Quiet consistency for the deeper service, area and insight pages. */
.pg .art-body{font-size:18px;line-height:1.75}
.pg .art-body>p{max-width:42em}
.pg .art-aside{gap:20px}
.pg .art-aside .card,.pg .art-aside .callout{padding:28px;border-radius:24px}
.pg .art-aside .callout{background:var(--stone)}
.pg .art-aside .kicker{font-size:16px;line-height:1.4}
.pg .art-body .art-box{border-radius:24px}
.pg .faq details{padding-block:24px}
.pg .faq summary{line-height:1.4}
.pg .faq details p{max-width:42em}
.pg .insight-card .card-thumb{border-radius:16px}
.pg .insight-card .insight-meta{line-height:1.5}
.pg .insight-card h3{line-height:1.3}

@container pg (max-width:1100px){
 .pg .service-composition{gap:40px 48px}
 .pg .service-catalogue{grid-template-columns:180px minmax(0,1fr);gap:40px}
 .pg .stage-routes{grid-template-columns:repeat(2,minmax(0,1fr))}
 .pg .k-grid{gap:32px}
 .pg .editorial-grid{gap:0 32px}
}
@container pg (max-width:980px){
 .pg .hero .hero-in{grid-template-columns:1fr;gap:36px;padding-top:48px}
 .pg .hero .hero-in>.hero-copy{display:block}
 .pg .hero .hero-copy .t-lead{max-width:36em}
 .pg .hero .hero-copy .btns{margin-top:28px!important}
 .pg .hero .hero-scene{order:initial;max-width:640px;margin:0 auto}
 .pg .hero .hero-credentials .hero-proof{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .pg .hero-proof li:nth-child(2){border-right:0}
 .pg .service-composition{grid-template-columns:1fr;gap:32px}
 .pg .service-intro{position:static}
 .pg .service-intro .t-h2{max-width:18em}
 .pg .home-audience .who4{gap:0 32px}
 .pg .service-catalogue{grid-template-columns:1fr;gap:36px}
 .pg .svc-ix{position:static}
 .pg .svc-ix a{padding:10px 16px}
 .pg .svc-a:first-child{padding-top:0}
 .pg .contact-promise{gap:24px}
 .pg .k-grid{grid-template-columns:1fr}
 .pg .editorial-grid{gap:0 24px}
 .pg .ftr-cols{gap:40px}
}
@container pg (max-width:680px){
 .pg .hdr-in{height:72px}
 .pg .home-audience .who4{grid-template-columns:1fr}
 .pg .home-audience .head{gap:20px}
 .pg .editorial-grid{grid-template-columns:1fr;gap:24px}
 .pg .editorial-story:first-child{grid-row:auto}
 .pg .editorial-story{padding-block:24px}
 .pg .contact-promise{grid-template-columns:1fr;gap:20px}
 .pg .contact-promise h2{font-size:17px;margin-bottom:3px}
 .pg .contact-promise p{max-width:none}
 .pg .service-intro .t-h2{max-width:none}
 .pg .hero .hero-eyebrow{margin-bottom:24px}
 .pg .hero .hero-scene{width:100%;margin:0;overflow:visible}
 .pg .hero .hero-scene .hs-stage{width:100%;margin:0}
 .pg .hero .hero-scene .hs-cap{height:76px}
 .pg .hero .proof{align-items:flex-start}
 .pg .service-entry{grid-template-columns:24px minmax(0,1fr) 24px;gap:12px}
 .pg .service-entry h3{font-size:23px}
 .pg .service-entry p{font-size:15px}
 .pg .editorial-intro{margin-top:0;font-size:17px}
 .pg .home-close .steps{gap:28px}
 .pg .home-close .steps .t-h1{margin-bottom:10px!important}
 .pg .home-close .hair.split{margin-top:32px!important;padding-top:32px!important}
 .pg .stage-routes{gap:10px}
 .pg .stage-routes a{padding:12px;gap:8px;min-width:0;font-size:14px}
 .pg .stage-routes a span{display:none}
 .pg .stage-routes a b{flex-shrink:0}
 .pg .enquiry-surface{padding:24px!important}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .pg .service-arrow,.pg .io,.pg a.card{transition:none;transform:none}
}

/* Reserve the complete animated caption stack before the credentials row. */
.pg .hero .hero-scene .hs-cap{--step:32px;height:136px;min-height:136px;margin-top:12px;overflow:hidden;align-items:flex-start}
.pg .hero .hero-scene .hs-cap .cap-item{line-height:28px}
.pg .hero .hero-credentials{margin-top:16px}
@container pg (max-width:680px){
 .pg .hero .hero-scene .hs-cap{--step:56px;height:176px;min-height:176px}
 .pg .hero .hero-scene .hs-cap .cap-item{white-space:normal;font-size:17px;line-height:26px}
}

/* Editorial source links, including generated location guidance. */
.pg main .prose a[href^="https://"],
.pg main .prose a[href^="http://"] {
  color: var(--sienna);
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.pg main .prose a[href^="https://"]:visited,
.pg main .prose a[href^="http://"]:visited {
  color: var(--sienna);
}

/* Keep a comfortable text inset within rounded capsules on phones. */
@container pg (max-width:680px){
 .pg .panel{padding-inline:24px}
 .pg .featured-copy{padding-inline:24px}
 .pg .featured-controls{padding-inline:24px}
}

/* v029: a quiet finish, keeping Ripple's existing palette and spacing. */
.pg .chips.pill-ready,.pg .discovery-topics.pill-ready{position:relative;isolation:isolate}
.pg .pill-ready::before{content:"";position:absolute;inset:0 auto auto 0;width:var(--pill-w);height:var(--pill-h);transform:translate(var(--pill-x),var(--pill-y));border-radius:999px;background:var(--ink);pointer-events:none;z-index:-1;transition:transform .28s var(--ease),width .28s var(--ease),height .28s var(--ease)}
.pg .on-dark .pill-ready::before{background:var(--paper)}
.pg .pill-ready .chip[aria-pressed="true"]{background:transparent}
.pg .pill-ready .chip{position:relative}
.pg [data-checker]>.panel{position:relative;border:1px solid rgba(217,120,79,.5)}
/* A real SVG stroke avoids CSS mask and animated custom-property dependencies. */
.pg .checker-border-light{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);overflow:visible;pointer-events:none;color:var(--dkacc);z-index:2}
.pg .checker-border-light .checker-border-halo,.pg .checker-border-light .checker-border-core{fill:none;stroke:currentColor;stroke-linecap:round;stroke-dasharray:var(--dash);opacity:var(--intensity)}
.pg .checker-border-halo{stroke-width:var(--stroke-width);filter:blur(7px)}
.pg .checker-border-core{stroke-width:var(--stroke-width)}
@media(hover:hover) and (pointer:fine){
 .pg .editorial-story,.pg a.card{position:relative;isolation:isolate}
 .pg .editorial-story::after,.pg a.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at 20% 0%,rgba(247,246,243,.09),transparent 70%);opacity:0;transition:opacity .45s var(--ease);}
 .pg .editorial-story:hover::after,.pg a.card:hover::after{opacity:1}
 .pg .editorial-story{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){
 .pg .pill-ready::before{transition:none}
 .pg .checker-border-light rect{animation:none}
 .pg .editorial-story::after,.pg a.card::after{display:none}
}

/* Navigation: fine moving underline; primary enquiry buttons: a quiet sweep. */
.pg .nav-links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--sienna);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.pg .nav-links a[aria-current="page"]:not(.btn)::after,.pg .nav-links a:not(.btn):focus-visible::after{transform:scaleX(1)}
.pg .menu-panel a:not(.btn){transition:color .2s var(--ease),padding-inline-start .25s var(--ease)}
.pg .menu-panel a:not(.btn):focus-visible{color:var(--sienna)}
.pg .btn:focus-visible,.pg .nav-links a:focus-visible,.pg .menu-panel a:focus-visible{outline:2px solid var(--sienna);outline-offset:5px}
@media(hover:hover) and (pointer:fine){
 .pg .nav-links a:not(.btn):hover::after{transform:scaleX(1)}
 .pg .menu-panel a:not(.btn):hover{padding-inline-start:8px;color:var(--sienna)}
 .pg a.btn[href="/contact"],.pg a.btn[href="#check"]{position:relative;overflow:hidden;isolation:isolate}
 .pg a.btn[href="/contact"]::after,.pg a.btn[href="#check"]::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 15%,rgba(247,246,243,.18) 50%,transparent 85%);transform:translateX(-120%);transition:transform .65s var(--ease)}
 .pg a.btn[href="/contact"]:hover::after,.pg a.btn[href="#check"]:hover::after{transform:translateX(120%)}
}
@media(prefers-reduced-motion:reduce){
 .pg .nav-links a:not(.btn)::after,.pg .menu-panel a:not(.btn){transition:none}
 .pg a.btn[href="/contact"]::after,.pg a.btn[href="#check"]::after{display:none}
}


@media(hover:hover) and (pointer:fine){
 .pg a.card,.pg .editorial-story:first-child{transform-origin:center;transition:scale .4s var(--ease),box-shadow .4s var(--ease)}
 .pg a.card:hover,.pg .editorial-story:first-child:hover{translate:none;scale:1.008;box-shadow:0 8px 24px rgba(30,27,24,.11),0 0 10px rgba(30,27,24,.05)}
}
@media(prefers-reduced-motion:reduce){
 .pg a.card,.pg .editorial-story:first-child{transition:none}
 .pg a.card:hover,.pg .editorial-story:first-child:hover{translate:none;scale:1}
 .pg .editorial-story:hover::after,.pg a.card:hover::after{animation:none}
}

@media(hover:hover) and (pointer:fine){
 .pg .editorial-story.on-dark::after,.pg a.card.on-dark::after,.pg .on-dark a.card::after{background:radial-gradient(ellipse at 20% 0%,rgba(247,246,243,.045),transparent 70%)}
}

/* Soft reflected light gives ink surfaces a visible satin finish, without a streak. */
.pg .editorial-story.on-dark,.pg .card.on-dark,.pg .panel-dark,.pg .feat.on-dark{
 background-image:radial-gradient(ellipse at 25% 0%,rgba(247,246,243,.085),transparent 65%),linear-gradient(180deg,rgba(247,246,243,.055),transparent 45%,rgba(30,27,24,.10));
 box-shadow:inset 0 1px 0 rgba(247,246,243,.13),inset 0 -1px 0 rgba(30,27,24,.22);
}
.pg .editorial-story.on-dark::after,.pg .card.on-dark::after,.pg .on-dark a.card::after{display:none}
/* Filled buttons: a fine top reflection and gently shaded lower edge. */
.pg .btn-primary,.pg .btn-light{
 background-image:linear-gradient(180deg,rgba(247,246,243,.14) 0%,rgba(247,246,243,.025) 42%,rgba(30,27,24,.15) 100%);
 box-shadow:inset 0 1px 0 rgba(247,246,243,.24),inset 0 -2px 1px rgba(30,27,24,.17),0 2px 4px rgba(30,27,24,.10);
}
.pg .btn-light{
 background-image:linear-gradient(180deg,rgba(247,246,243,.45),transparent 45%,rgba(30,27,24,.065));
 box-shadow:inset 0 1px 0 rgba(247,246,243,.65),inset 0 -2px 1px rgba(30,27,24,.09),0 2px 4px rgba(30,27,24,.08);
}
.pg .btn-primary:active,.pg .btn-light:active{box-shadow:inset 0 1px 3px rgba(30,27,24,.20),inset 0 -1px 0 rgba(247,246,243,.12)}
.pg a.btn[href="/contact"]::after,.pg a.btn[href="#check"]::after{display:none}
@media(hover:hover) and (pointer:fine){
 .pg .editorial-story.on-dark:hover,.pg .card.on-dark:hover{
  box-shadow:inset 0 1px 0 rgba(247,246,243,.17),inset 0 -1px 0 rgba(30,27,24,.22),0 8px 24px rgba(30,27,24,.11),0 0 10px rgba(30,27,24,.05);
 }
}

/* A broad, visible reflection on the featured ink surface. */
.pg .editorial-story.on-dark{
 background-image:radial-gradient(ellipse 115% 75% at 24% -12%,rgba(247,246,243,.24) 0%,rgba(247,246,243,.11) 38%,rgba(247,246,243,.025) 70%,transparent 100%),linear-gradient(180deg,rgba(247,246,243,.035),transparent 48%,rgba(30,27,24,.12));
 box-shadow:inset 0 1px 0 rgba(247,246,243,.22),inset 0 -1px 0 rgba(30,27,24,.25);
}
/* Button colours follow their surrounding surface. */
.pg{--button-fill:var(--ink);--button-text:var(--paper);--button-hover:var(--sienna)}
.pg .on-dark,.pg .panel-dark{--button-fill:var(--paper);--button-text:var(--ink);--button-hover:var(--stone)}
.pg .panel-sienna,.pg .panel-stone,.pg .book,.pg .enquiry-surface{--button-fill:var(--ink);--button-text:var(--paper);--button-hover:var(--ember)}
.pg .btn{
 background-color:var(--button-fill);color:var(--button-text);border-color:var(--button-fill);
 background-image:linear-gradient(180deg,rgba(247,246,243,.14),rgba(247,246,243,.025) 42%,rgba(30,27,24,.12));
 box-shadow:inset 0 1px 0 rgba(247,246,243,.24),inset 0 -2px 1px rgba(30,27,24,.15),0 2px 4px rgba(30,27,24,.10);
}
.pg .btn:hover{background-color:var(--button-hover);color:var(--button-text);border-color:var(--button-hover)}
.pg .btn:active{box-shadow:inset 0 1px 3px rgba(30,27,24,.20),inset 0 -1px 0 rgba(247,246,243,.12)}

/* Native select behaviour, with a consistently inset decorative chevron. */
.pg #insight-sort{
 appearance:none;-webkit-appearance:none;padding-right:48px;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m2 2 5 5 5-5' fill='none' stroke='%231E1B18' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 20px center;background-size:14px 9px;
}
@media(forced-colors:active){.pg #insight-sort{appearance:auto;-webkit-appearance:auto;background-image:none;padding-right:20px}}

/* Primary actions stay ink; secondary actions respond to the surrounding surface. */
.pg{--button-fill:var(--stone);--button-text:var(--ink);--button-hover:var(--stone)}
.pg .on-dark,.pg .panel-dark,.pg .panel-sienna,.pg .panel-stone,.pg .book,.pg .enquiry-surface{
 --button-fill:var(--paper);--button-text:var(--ink);--button-hover:var(--stone);
}
.pg .btn-primary,.pg a.btn[href="/contact"]:not(.btn-secondary),.pg button.btn[type="submit"]{
 --button-fill:var(--ink);--button-text:var(--paper);--button-hover:var(--ink);
}
.pg .btn{
 background-image:linear-gradient(180deg,rgba(247,246,243,.08),rgba(247,246,243,.012) 45%,rgba(30,27,24,.09));
 box-shadow:inset 0 1px 1px rgba(247,246,243,.13),inset 0 -1px 2px rgba(30,27,24,.12),0 2px 4px rgba(30,27,24,.08);
}
.pg .on-dark .btn-primary,.pg .on-dark a.btn[href="/contact"]:not(.btn-secondary),.pg .on-dark button.btn[type="submit"]{border-color:rgba(247,246,243,.55)}

/* Shared response for every button, including navigation and utility controls. */
.pg :is(.btn,button,.site-search-link,[role="button"]){
 transform-origin:center;transition:scale .28s var(--ease),box-shadow .28s var(--ease),background-color .28s var(--ease),color .28s var(--ease),border-color .28s var(--ease);
}
.pg :is(.btn,button,.site-search-link,[role="button"]):where(:not(:disabled):not([aria-disabled="true"])):focus-visible{outline:2px solid var(--sienna);outline-offset:4px}
@media(hover:hover) and (pointer:fine){
 .pg :is(.btn,button,.site-search-link,[role="button"]):where(:not(:disabled):not([aria-disabled="true"])):hover{
  scale:1.025;box-shadow:inset 0 1px 1px rgba(247,246,243,.14),inset 0 -1px 2px rgba(30,27,24,.12),0 5px 12px rgba(30,27,24,.16);
 }
 .pg .btn-primary:hover,.pg a.btn[href="/contact"]:not(.btn-secondary):hover,.pg button.btn[type="submit"]:hover{--button-hover:var(--ember)}
 /* Selection pills keep stable geometry for the gliding indicator. */
 .pg .chip:not(:disabled):hover{scale:1;box-shadow:0 0 0 1px var(--sienna),0 3px 8px rgba(30,27,24,.10);border-color:var(--sienna)}
 .pg .menu-btn:not(:disabled):hover{background-color:var(--stone);color:var(--ink)}
}
.pg :is(.btn,button,.site-search-link,[role="button"]):where(:not(:disabled):not([aria-disabled="true"])):active{scale:.99;box-shadow:inset 0 1px 3px rgba(30,27,24,.20)}
.pg .chip:not(:disabled):active{scale:1}
@media(prefers-reduced-motion:reduce){
 .pg :is(.btn,button,.site-search-link,[role="button"]){transition:none}
 .pg :is(.btn,button,.site-search-link,[role="button"]):hover,.pg :is(.btn,button,.site-search-link,[role="button"]):active{scale:1}
}

/* Body copy on ink uses full-strength brand paper for clarity. */
.pg .editorial-story.on-dark>p,
.pg .panel-dark .muted,.pg .panel-dark .faint,
.pg .feat.on-dark .muted,.pg .feat.on-dark .faint,
.pg .card.on-dark .muted,.pg .card.on-dark .faint{color:var(--paper)}

/* Opaque sticky surfaces avoid repeated backdrop sampling while scrolling. */
.pg .hdr,.pg .hdr.scrolled,.pg .mbar{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}
/* Comfortable insets on both narrower desktop windows and phones. */
@container pg (max-width:1100px){
 .pg .panel{padding-inline:clamp(32px,4vw,44px)}
 .pg .featured-copy,.pg .featured-controls{padding-inline:clamp(32px,4vw,44px)}
 .pg .editorial-story:first-child{padding:32px}
 .pg .card-body{padding:28px}
}
@container pg (max-width:680px){
 .pg .panel,.pg .featured-copy,.pg .featured-controls{padding-inline:28px}
 .pg .editorial-story:first-child{padding:28px}
 .pg .enquiry-surface{padding:28px!important}
 .pg .discovery-toolbar{padding:28px}
 .pg .panel .btn,.pg .featured-copy .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.3;padding-block:14px}
 .pg .panel>*,.pg .featured-copy>*{min-width:0}
}

/* Explicit sizing keeps native mobile selects and date fields aligned. */
.pg .discovery-field input,.pg .discovery-field select{
 box-sizing:border-box;display:block;height:52px;min-height:52px;max-width:100%;line-height:24px;padding-block:12px;font-size:16px;
}
.pg .discovery-field select{
 appearance:none;-webkit-appearance:none;padding-right:48px;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m2 2 5 5 5-5' fill='none' stroke='%231E1B18' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 20px center;background-size:14px 9px;
}
.pg .discovery-field input[type="date"]{appearance:none;-webkit-appearance:none;min-inline-size:0}
.pg .discovery-field input[type="date"]::-webkit-date-and-time-value{min-height:24px;text-align:left}
.pg .discovery-field input[type="date"]::-webkit-datetime-edit{padding:0}
.pg .discovery-submit{top:6px;right:6px}
@media(forced-colors:active){.pg .discovery-field select{appearance:auto;-webkit-appearance:auto;background-image:none;padding-right:20px}}
