/* Phase 3 public pages. Scoped layouts share the approved Cobalt & Ivory primitives. */
.p-wrap { width:min(var(--gk-width),calc(100% - var(--gk-gutter)*2)); margin-inline:auto; }
.public-page { overflow:clip; }
.public-page p { overflow-wrap:anywhere; }
.public-page h1 { font-size:clamp(46px,6.4vw,96px); line-height:1.04; letter-spacing:-.065em; font-weight:500; overflow-wrap:anywhere; }
.public-page h1>span,.public-conversation h2>span { color:var(--gk-action-primary); }
.public-page h2 { font-size:clamp(30px,3.5vw,52px); line-height:1.12; letter-spacing:-.05em; font-weight:500; }
.public-page h3 { font-size:clamp(23px,2.2vw,32px); line-height:1.2; letter-spacing:-.04em; }
.public-page .p-kicker,.public-conversation .p-kicker { font:10px/1.8 var(--gk-font-mono); color:var(--gk-text-secondary); letter-spacing:.055em; margin-bottom:24px; }
.p-masthead { padding-top:clamp(42px,6vw,88px); padding-bottom:64px; border-bottom:1px solid var(--gk-border); }
.p-headline { display:grid; grid-template-columns:1.75fr 1fr; align-items:end; gap:clamp(32px,6vw,95px); }
.p-headline>div>p { font-size:16px; line-height:1.9; max-width:390px; }
.p-headline .button,.p-headline .p-link { margin-top:24px; }
.p-section { padding-block:var(--gk-section-space); }
.p-link { display:inline-flex; gap:28px; align-items:center; min-height:44px; padding-block:10px; border-bottom:1px solid var(--gk-border-strong); font-size:13px; color:var(--gk-action-primary); }
.p-link>span { transition:transform .2s; font-size:20px; }
.p-link:hover>span { transform:translate(3px,-3px); }
.p-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; align-items:center; font-size:11px; color:var(--gk-text-secondary); margin-bottom:44px; }
.p-breadcrumb [aria-current] { color:var(--gk-text-primary); overflow-wrap:anywhere; }
.p-breadcrumb a:hover { color:var(--gk-action-primary); }
.p-preserve { white-space:pre-line; }
.p-reading>p:not(.p-kicker),.p-reading-section>p { font-size:16px; line-height:2; margin-top:26px; }
.p-reading-section { margin-top:64px; }
.p-detail-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr); gap:clamp(40px,9vw,140px); align-items:start; }
.p-reading { max-width:760px; min-width:0; }
.p-side-note { position:sticky; top:120px; background:var(--gk-bg-soft); border:1px solid var(--gk-border); padding:36px; border-radius:var(--gk-radius-md); min-width:0; }
.p-side-note h2 { font-size:32px; margin-bottom:28px; }
.p-side-note .p-link { margin-top:30px; }
.p-side-note .p-note { font-size:12px; line-height:1.9; margin-top:20px; }
.p-list { margin:0; padding:0; list-style:none; }
.p-list li { padding:13px 0 13px 18px; border-bottom:1px solid var(--gk-border); position:relative; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.p-list li::before { content:''; width:4px; height:4px; background:var(--gk-action-primary); position:absolute; left:0; top:23px; border-radius:50%; }
.p-benefits { padding:0; margin:28px 0 0; list-style:none; counter-reset:benefit; }
.p-benefits li { counter-increment:benefit; border-top:1px solid var(--gk-border); padding:22px 0; display:flex; gap:24px; font-size:17px; }
.p-benefits li::before { content:'0' counter(benefit); color:var(--gk-action-primary); font:11px/2 var(--gk-font-mono); }
.p-detail-visual { margin:40px 0 0; }
.p-detail-visual img { width:100%; height:auto; border-radius:var(--gk-radius-md); }
.p-service-row { display:grid; grid-template-columns:70px minmax(0,1.65fr) minmax(240px,1fr); gap:clamp(25px,4vw,65px); border-bottom:1px solid var(--gk-border); padding-block:58px; align-items:start; }
.p-service-row:first-child { padding-top:0; }
.p-service-index { font:12px var(--gk-font-mono); color:var(--gk-action-primary); padding-top:10px; }
.p-service-copy>p { font-size:14px; line-height:1.95; margin-top:20px; max-width:630px; }
.p-service-copy>.p-service-summary { font-size:18px; color:var(--gk-text-primary); margin-top:25px; line-height:1.65; }
.p-service-copy .p-link { margin-top:22px; }
.p-service-features { background:var(--gk-bg-surface); border:1px solid var(--gk-border); padding:28px; border-radius:var(--gk-radius-md); }
.p-service-features .p-kicker { margin-bottom:10px; }
.p-empty { padding:55px clamp(24px,5vw,70px); background:var(--gk-bg-soft); border:1px solid var(--gk-border); border-radius:var(--gk-radius-md); }
.p-empty>p:not(.p-kicker) { max-width:530px; font-size:15px; line-height:1.9; margin-top:25px; }
.p-empty>.button,.p-empty>.p-link { margin-top:25px; }
.public-conversation { background:var(--gk-bg-soft); border-top:1px solid var(--gk-border); padding-block:clamp(55px,7vw,100px); }
.conversation-layout { display:grid; grid-template-columns:1.8fr 1fr; gap:50px; align-items:end; }
.public-conversation h2 { font-size:clamp(36px,4.2vw,64px); line-height:1.08; letter-spacing:-.055em; font-weight:500; }
.conversation-layout>div>p:not(.p-kicker) { font-size:15px; line-height:1.9; max-width:330px; }
.conversation-layout .button { margin-top:28px; }
@media(max-width:1000px) { .p-headline { grid-template-columns:1.5fr 1fr; gap:35px; }.p-service-row { grid-template-columns:35px minmax(0,1.5fr) minmax(210px,1fr); gap:24px; }.p-service-features { padding:22px; }.p-detail-layout { gap:40px; } }
@media(max-width:760px) {
 .p-headline,.p-detail-layout,.conversation-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
 .p-masthead { padding-bottom:40px; }.p-headline>div>p { font-size:14px; max-width:500px; }.p-headline .button,.p-headline .p-link { margin-top:20px; }
 .p-breadcrumb { margin-bottom:32px; gap:8px; }.p-service-row { grid-template-columns:28px minmax(0,1fr); padding-block:38px; gap:20px; }
 .p-service-features { grid-column:2; }.p-service-copy>.p-service-summary { font-size:17px; }.p-service-copy>p { font-size:13px; }
 .p-side-note { position:static; padding:28px; }.p-reading>p:not(.p-kicker),.p-reading-section>p { font-size:14px; }.p-reading-section { margin-top:42px; }
 .public-conversation .p-kicker { margin-bottom:20px; }.conversation-layout { gap:26px; }
}
@media(max-width:480px) { .public-page h1 { font-size:clamp(40px,11vw,53px); }.p-service-row { column-gap:13px; }.p-service-features { grid-column:1/-1; }.p-benefits li { font-size:15px; }.p-side-note h2 { font-size:29px; } }
/* Portfolio and case studies */
.p-project-filters { display:grid; grid-template-columns:1.5fr 1fr 1fr auto; gap:20px; align-items:end; background:var(--gk-bg-surface); border:1px solid var(--gk-border); padding:28px; border-radius:var(--gk-radius-md); }
.p-project-filters .field { gap:10px; min-width:0; }.p-project-filters input,.p-project-filters select { width:100%; }.p-project-filters .button { min-height:44px; white-space:nowrap; padding:12px 20px; }
.p-results-heading { display:flex; justify-content:space-between; gap:20px; margin-block:32px; font-size:12px; }.p-results-heading a { color:var(--gk-action-primary); }
.p-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px 32px; }
.p-project { min-width:0; }.p-project:first-child { grid-column:1/-1; }.p-project-image { aspect-ratio:1.45; position:relative; overflow:hidden; background:var(--gk-bg-soft); border-radius:var(--gk-radius-md); }.p-project:first-child .p-project-image { aspect-ratio:1.95; }
.p-project-image img { width:100%; height:100%; object-fit:cover; transition:transform .65s var(--gk-ease); }.p-project:hover .p-project-image img { transform:scale(1.035); }
.p-project-arrow { position:absolute; right:22px; bottom:22px; width:50px; height:50px; display:grid; place-items:center; background:var(--gk-action-primary); color:var(--gk-on-action); border-radius:50%; font-size:25px; }
.p-project-type { height:100%; padding:clamp(28px,5vw,70px); display:flex; flex-direction:column; justify-content:space-between; gap:22px; }.p-project-type strong { font:500 clamp(28px,4.5vw,65px)/1.1 var(--gk-font-display); letter-spacing:-.05em; max-width:80%; overflow-wrap:anywhere; }.p-project-type>span:last-child { color:var(--gk-text-secondary); font-size:12px; max-width:80%; }
.p-project-category { margin-block:23px 12px; display:flex; flex-wrap:wrap; align-items:center; gap:15px; font-size:11px; color:var(--gk-text-secondary); }.p-project-caption { display:flex; justify-content:space-between; gap:36px; }.p-project-caption h3 { max-width:55%; overflow-wrap:anywhere; }.p-project-caption p { max-width:40%; font-size:13px; line-height:1.9; }
.p-project:not(:first-child) .p-project-caption { flex-direction:column; gap:15px; }.p-project:not(:first-child) .p-project-caption h3,.p-project:not(:first-child) .p-project-caption p { max-width:100%; }.p-project-technologies,.p-headline>div>.p-case-stack { margin-top:20px; font:10px/1.9 var(--gk-font-mono); }
.p-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:25px; margin-top:60px; font-size:12px; }.p-pagination a { padding:12px 18px; border:1px solid var(--gk-border-strong); border-radius:var(--gk-radius-sm); color:var(--gk-action-primary); min-height:44px; }.p-pagination a:hover { background:var(--gk-bg-soft); }
.case-demo { margin-bottom:20px; }.p-case-hero { margin:0 0 80px; }.p-case-hero img { width:100%; height:auto; max-height:850px; object-fit:contain; background:var(--gk-bg-soft); border-radius:var(--gk-radius-md); }
.p-case-details dl { margin:0; }.p-case-details dt { font-size:11px; color:var(--gk-text-secondary); margin-top:22px; }.p-case-details dd { font-size:14px; margin:7px 0 0; line-height:1.7; overflow-wrap:anywhere; }.p-case-details .p-link { display:flex; gap:14px; font-size:12px; }
.p-case-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; margin-top:80px; }.p-case-gallery figure { margin:0; }.p-case-gallery img { width:100%; height:auto; border-radius:var(--gk-radius-md); background:var(--gk-bg-soft); }.p-case-gallery figcaption { font-size:12px; line-height:1.8; color:var(--gk-text-secondary); padding-top:14px; }.p-case-related { border-top:1px solid var(--gk-border); padding-top:65px; margin-top:80px; }.p-case-related h2 { margin-bottom:35px; }
@media(max-width:1100px) { .p-project-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }.p-project-filters .button { justify-self:start; } }
@media(max-width:760px) { .p-project-grid { grid-template-columns:minmax(0,1fr); gap:44px; }.p-project:first-child .p-project-image { aspect-ratio:1.4; }.p-project-caption { flex-direction:column; gap:14px; }.p-project-caption h3,.p-project-caption p { max-width:100%; }.p-case-gallery { grid-template-columns:minmax(0,1fr); gap:28px; margin-top:45px; }.p-case-hero { margin-bottom:45px; }.p-case-related { padding-top:45px; margin-top:45px; } }
@media(max-width:480px) { .p-project-filters { grid-template-columns:minmax(0,1fr); padding:22px; }.p-project-type { padding:24px; }.p-project-type>span:last-child { font-size:10px; }.p-project-arrow { width:42px; height:42px; right:16px; bottom:16px; }.p-results-heading { font-size:11px; } }
/* Studio and legal reading */
.p-about-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:clamp(40px,8vw,130px); align-items:start; }.p-about-mark { min-height:420px; background:var(--gk-bg-soft); border:1px solid var(--gk-border); border-radius:var(--gk-radius-md); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:60px; padding:40px; }.p-about-logo { font-size:clamp(8px,1vw,14px); }.p-about-mark>p { font:10px var(--gk-font-mono); text-align:center; }
.p-about-values { background:var(--gk-bg-surface); border-block:1px solid var(--gk-border); }.p-about-values .p-headline { margin-bottom:50px; }.p-about-values .p-headline>p { max-width:330px; line-height:1.9; font-size:14px; }.p-value-list article { display:grid; grid-template-columns:55px minmax(0,1fr) minmax(0,1fr); gap:35px; padding-block:34px; border-top:1px solid var(--gk-border); }.p-value-list article>span { color:var(--gk-action-primary); font:11px/2 var(--gk-font-mono); }.p-value-list p { font-size:14px; line-height:1.9; max-width:420px; }
.p-about-foundation { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:center; }.p-about-foundation>div>p:not(.p-kicker) { max-width:390px; margin-top:24px; line-height:1.9; font-size:14px; }.p-technology-list { display:flex; flex-wrap:wrap; gap:12px; }.p-technology-list span { padding:14px 18px; background:var(--gk-bg-surface); border:1px solid var(--gk-border); border-radius:var(--gk-radius-sm); font-size:14px; }
.p-legal { max-width:820px; }.p-legal h2 { font-size:28px; margin-top:40px; }.p-legal h2:first-child { margin-top:0; }.p-legal p { font-size:15px; line-height:2; margin-top:18px; }.p-legal a { color:var(--gk-action-primary); text-decoration:underline; }
@media(max-width:760px) { .p-about-intro,.p-about-foundation { grid-template-columns:minmax(0,1fr); gap:40px; }.p-about-mark { min-height:280px; gap:40px; }.p-about-logo { font-size:12px; }.p-value-list article { grid-template-columns:28px minmax(0,1fr); gap:15px; }.p-value-list article>p { grid-column:2; }.p-technology-list { gap:10px; }.p-technology-list span { font-size:12px; padding:12px 15px; } }
/* Contact and Free Preview: the existing model and form contracts are shared. */
.p-inquiry-layout { display:grid; grid-template-columns:minmax(240px,1fr) minmax(0,1.8fr); gap:clamp(40px,7vw,110px); align-items:start; }.p-inquiry-aside { position:sticky; top:120px; }.p-inquiry-aside h2 { font-size:clamp(30px,3vw,44px); }.p-inquiry-aside>p:not(.p-kicker) { margin-top:24px; font-size:14px; line-height:1.95; max-width:340px; }.p-conversation-steps { margin:32px 0 0; padding:0; list-style:none; }.p-conversation-steps li { display:flex; gap:18px; align-items:start; padding:17px 0; border-top:1px solid var(--gk-border); font-size:13px; }.p-conversation-steps span { color:var(--gk-action-primary); font:10px/1.8 var(--gk-font-mono); }.p-inquiry-logo { font-size:10px; margin-top:36px; }
.p-inquiry-form { border:1px solid var(--gk-border); border-radius:var(--gk-radius-lg); background:var(--gk-bg-surface); padding:clamp(25px,4vw,56px); min-width:0; }.p-form-intro { margin-bottom:35px; }.p-form-intro h2 { font-size:29px; }.p-form-intro>p { font-size:12px; margin-top:13px; }.p-form-section { border:0; padding:0; margin:0 0 32px; min-width:0; }.p-form-section legend { width:100%; padding:0 0 18px; margin-bottom:24px; border-bottom:1px solid var(--gk-border); font-weight:600; font-size:14px; }.p-form-section legend>span { margin-right:14px; font:10px var(--gk-font-mono); color:var(--gk-action-primary); }
.p-inquiry-form .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 22px; }.p-inquiry-form .field { min-width:0; gap:9px; }.p-inquiry-form .full { grid-column:1/-1; }.p-inquiry-form .field small { font:11px/1.8 var(--gk-font-body); color:var(--gk-text-secondary); }.p-optional { font-weight:400; font-size:11px; color:var(--gk-text-secondary); }.p-inquiry-form textarea { resize:vertical; }.p-inquiry-form .field>span { font-size:12px; line-height:1.6; }.p-consent { display:flex; align-items:start; gap:12px; font-size:12px; line-height:1.9; }.p-consent input { margin-top:3px; }.p-consent a { color:var(--gk-action-primary); text-decoration:underline; }.p-form-submit { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:30px; padding-top:28px; border-top:1px solid var(--gk-border); }.p-form-submit p { max-width:220px; font-size:11px; line-height:1.8; }
.p-confirmation { max-width:950px; padding-block:85px 120px; }.p-confirmation h1 { font-size:clamp(46px,7vw,96px); }.p-confirmation>p:not(.p-kicker) { max-width:520px; font-size:16px; line-height:1.9; margin-top:30px; }.p-confirmation .hero-actions { margin-top:36px; }.p-confirmation-mark { width:68px; height:68px; border-radius:50%; display:grid; place-items:center; background:var(--gk-bg-soft); color:var(--gk-action-primary); margin-bottom:34px; }.p-confirmation-mark .ui-icon { width:30px; height:30px; }
@media(max-width:1000px) { .p-inquiry-layout { grid-template-columns:minmax(210px,1fr) minmax(0,1.8fr); gap:35px; }.p-inquiry-form .form-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:760px) { .p-inquiry-layout { grid-template-columns:minmax(0,1fr); gap:36px; }.p-inquiry-aside { position:static; }.p-inquiry-aside>p:not(.p-kicker) { max-width:500px; }.p-inquiry-logo { display:none; }.p-conversation-steps { margin-top:24px; }.p-inquiry-form { padding:26px 22px; }.p-form-intro h2 { font-size:25px; }.p-form-submit { gap:16px; }.p-confirmation { padding-block:65px 85px; }.p-confirmation>p:not(.p-kicker) { font-size:14px; } }
/* Free Preview carries a clear, nonbinding expectation alongside the existing form. */
.p-preview-brief { padding:32px; background:var(--gk-bg-soft); border:1px solid var(--gk-border); border-radius:var(--gk-radius-md); }.p-preview-brief h2 { font-size:clamp(29px,2.7vw,39px); }.p-preview-brief>p:not(.p-kicker) { font-size:13px; line-height:1.95; margin-top:22px; }.p-preview-brief .p-preview-note { border-top:1px solid var(--gk-border-strong); padding-top:22px; font-size:12px; }.preview-page .p-inquiry-layout { grid-template-columns:minmax(280px,1fr) minmax(0,1.7fr); gap:50px; }
@media(max-width:1000px) { .preview-page .p-inquiry-layout { grid-template-columns:minmax(240px,1fr) minmax(0,1.7fr); gap:30px; }.p-preview-brief { padding:25px; } }
@media(max-width:760px) { .preview-page .p-inquiry-layout { grid-template-columns:minmax(0,1fr); }.p-preview-brief { padding:28px; }.p-preview-brief>p:not(.p-kicker) { max-width:480px; } }
