.public-nav { display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; font-size:13px; }
.public-nav a { color:#dbe8e2; text-decoration:none; }
.public-nav a:hover { color:var(--mint); }
.public-nav .team-link { border:1px solid #415b51; border-radius:8px; padding:8px 12px; }
.public-hero { padding-bottom:72px; background:radial-gradient(ellipse at 85% 25%,#244b3f 0,transparent 50%),var(--navy); }
.public-hero .hero-copy { max-width:740px; }
.public-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:22px; margin-top:28px; }
.public-cta { display:inline-flex; align-items:center; justify-content:center; padding:14px 22px; border:0; border-radius:10px; background:var(--mint); color:#12382b; font-weight:750; text-decoration:none; }
.public-cta:hover { background:#a8ebd2; }
.public-secondary { color:#e3f0e9; text-underline-offset:4px; }
.public-hero-note { max-width:740px; margin-top:22px; color:#b7c8c0; font-size:13px; }
.public-title { max-width:840px; margin:0; font-size:clamp(27px,3.1vw,38px); line-height:1.2; letter-spacing:-.03em; }
.public-audit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:32px; }
.public-audit-grid h3 { font-size:24px; line-height:1.25; margin:12px 0; }
.public-audit-grid .audit-choice { margin:0; }
.growth-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:0; margin:36px 0 0; list-style:none; }
.growth-grid li { position:relative; padding:28px; border:1px solid #d8e6de; border-radius:14px; background:#fff; }
.growth-number { display:block; margin-bottom:18px; color:var(--mint-dark); font-size:24px; font-weight:750; }
.growth-grid h3 { margin:10px 0; font-size:20px; line-height:1.3; }
.growth-grid li > p:last-child { margin-bottom:0; color:var(--muted); font-size:14px; }
.public-request { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.public-request-card { padding:28px; border:1px solid var(--line); border-radius:16px; background:#f7faf8; }
.public-request-card form { display:grid; gap:12px; }
.public-request-card label { font-weight:700; }
.public-request-card input[type=text] { width:100%; padding:13px; border:1px solid #bdcec4; border-radius:8px; font:inherit; }
.public-request-card .choice-note { margin:0; }
.public-text-link { display:inline-block; margin-top:20px; color:var(--mint-dark); font-weight:650; text-underline-offset:4px; }
.inquiry-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:48px; align-items:start; }
.inquiry-intro h1 { margin:0; font-size:clamp(30px,3vw,40px); line-height:1.2; letter-spacing:-.03em; }
.inquiry-intro h2 { font-size:22px; margin-top:32px; }
.inquiry-domain { padding:16px; border:1px solid #bcd9c8; border-radius:10px; background:#fff; overflow-wrap:anywhere; }
.inquiry-next { padding-left:20px; color:var(--muted); }
.inquiry-next li { padding:0 0 12px 6px; }
.contact-form-card { padding:24px; background:var(--navy); border:1px solid #2e4550; border-radius:16px; }
.contact-form-card h2 { margin:0; color:#fff; font-size:24px; line-height:1.25; }
.contact-form-card > p { color:#c8d8d1; font-size:13px; }
.contact-form-card a { color:var(--mint); }
.redfern-contact-form { display:block; width:100%; height:1800px; border:0; }
.public-page :is(a,button,input):focus-visible { outline:3px solid #42876d; outline-offset:4px; }
.public-page .site-footer a { color:#d5e7de; }
@media(max-width:800px) { .public-nav { gap:10px 14px; font-size:12px; } .site-header:has(.public-nav) { flex-direction:column; gap:16px; padding:20px; } .public-request,.inquiry-layout { grid-template-columns:1fr; gap:30px; } }
@media(max-width:540px) { .public-audit-grid { grid-template-columns:1fr; } .public-hero { padding-bottom:40px; } .public-page .band { padding:42px 0; } .public-page .band-inner { width:calc(100% - 32px); } .contact-form-card,.public-request-card { padding:18px; } .public-nav { justify-content:center; } }
.public-page { background:#fff; }
.public-page .band { padding:72px 0; }
.public-page .band-white { background:#fff; }
.public-page .band-light { background:#f2f7f4; border-top:1px solid #e3ede7; border-bottom:1px solid #e3ede7; }
.public-page .band-inner { width:min(1120px,calc(100% - 48px)); margin:0 auto; }
.public-page .section-eyebrow { margin:0 0 12px; color:var(--mint-dark); font-size:11px; font-weight:750; letter-spacing:.12em; }
.public-page .section-lead { margin:16px 0 0; color:#536378; font-size:16px; line-height:1.7; }
.public-page .site-footer { display:block; padding:32px 0; color:#c9d4df; background:var(--navy); }
.public-page .footer-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; width:min(1120px,calc(100% - 48px)); margin:0 auto; }
.public-page .footer-brand { display:flex; flex-wrap:wrap; gap:6px 14px; font-size:12px; }
@media(max-width:800px) { .growth-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .growth-grid { grid-template-columns:1fr; } }

/* Free AEO preview (preview.php): real scores; check titles, details, and fixes locked, sticky unlock panel. */
.preview-page .shell { width: min(1240px, calc(100% - 48px)); }
.preview-start { max-width: 760px; margin: 64px auto 80px; }
.preview-start h1 { margin: 0; color: var(--ink); font-size: clamp(30px, 3.6vw, 42px); line-height: 1.15; letter-spacing: -.03em; }
.preview-form { margin-top: 28px; padding: 26px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 10px 30px #16243a0d; }
.preview-form label { display: block; margin-bottom: 7px; font-weight: 700; font-size: 13px; }
.preview-form .input-row { display: flex; gap: 8px; }
.preview-form .input-row input { flex: 1; min-width: 0; height: 48px; padding: 0 14px; border: 1px solid #d4dce5; border-radius: 10px; font-size: 15px; }
.preview-form .input-row button, .unlock-form .input-row button { display: inline-flex; height: 48px; align-items: center; justify-content: center; gap: 10px; padding: 0 20px; border: 0; border-radius: 10px; color: #fff; background: var(--ink); font-weight: 750; }
.preview-form .cf-turnstile, .unlock-form .cf-turnstile { margin-top: 14px; }
.preview-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; margin: 36px 0 70px; }
.preview-main { display: grid; gap: 22px; min-width: 0; }
.preview-hero { padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.preview-badge { padding: 5px 10px; border-radius: 20px; color: #7a4d0b; background: #fbeed8; font-size: 10.5px; font-weight: 800; letter-spacing: .1em; }
.preview-score-row { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; margin: 18px 0 22px; }
.preview-hero .category-rings { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; padding-top: 18px; border-top: 1px solid var(--line); }
.preview-found, .preview-locked { padding: 26px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.preview-found h2, .locked-head h2 { margin: 0; color: var(--ink); font-size: 22px; letter-spacing: -.02em; }
.preview-issues { display: grid; gap: 6px; margin: 18px 0 0; padding: 0; list-style: none; }
.preview-issues li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; background: #f7f9fa; font-size: 14px; }
.preview-issues small { display: block; color: var(--muted); font-size: 11.5px; }
.preview-locked { background: linear-gradient(180deg, #fff, #f7faf8); }
.locked-head { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 20px; }
.locked-head p:last-child { margin: 8px 0 0; color: #536378; font-size: 14px; line-height: 1.6; }
.lock-icon { display: grid; flex: 0 0 auto; width: 44px; height: 44px; place-items: center; border-radius: 12px; color: var(--mint-dark); background: #eaf5ee; }
.lock-icon svg { width: 22px; height: 22px; }
.lock-icon.small { width: 32px; height: 32px; border-radius: 9px; }
.lock-icon.small svg { width: 16px; height: 16px; }
.locked-pillar { margin-top: 12px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.locked-pillar header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.locked-pillar h3 { margin: 0; color: var(--ink); font-size: 15.5px; }
.locked-pillar ul { display: grid; gap: 4px; margin: 12px 0 0; padding: 0; list-style: none; }
.locked-pillar li { display: grid; grid-template-columns: 22px minmax(0, 1fr) minmax(80px, 34%); align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid #eef1f4; font-size: 13.5px; }
.locked-lines { display: grid; gap: 5px; }
.locked-lines i { display: block; height: 7px; border-radius: 6px; background: linear-gradient(90deg, #e3e9ee, #eef2f5); }
.locked-lines i:last-child { width: 62%; }
.locked-extras { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.locked-extra { display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 12px; align-items: center; padding: 14px; border: 1px dashed #cfdcd4; border-radius: 12px; background: #fff; }
.locked-extra strong { color: var(--ink); font-size: 13.5px; }
.locked-extra small { grid-column: 2; color: var(--muted); font-size: 12px; }
.locked-extra .lock-icon { grid-row: span 2; }

.unlock-panel { position: sticky; top: 20px; transition: opacity .35s ease, transform .35s ease; }
.js-unlock .unlock-panel:not(.is-visible) { visibility: hidden; opacity: 0; transform: translateX(28px); }
.unlock-bar { display: none; }
.unlock-card { padding: 24px; border: 1px solid #bcd9c8; border-radius: 18px; background: #fff; box-shadow: 0 2px 4px #16243a0a, 0 24px 60px #16243a1f; }
.unlock-card h2 { margin: 0; color: var(--ink); font-size: 20px; line-height: 1.25; letter-spacing: -.02em; overflow-wrap: anywhere; }
.unlock-card .choice-points { margin: 14px 0 18px; }
.unlock-form { display: grid; gap: 12px; }
.unlock-form label { display: grid; gap: 5px; color: var(--ink); font-size: 12.5px; font-weight: 700; }
.unlock-form label input:not([type=checkbox]) { height: 44px; padding: 0 12px; border: 1px solid #d4dce5; border-radius: 10px; font-size: 14.5px; outline: none; }
.unlock-form label input:not([type=checkbox]):focus { border-color: var(--mint-dark); box-shadow: 0 0 0 3px #176e5720; }
.unlock-form .unlock-consent { display: flex; align-items: flex-start; gap: 9px; color: #39485d; font-weight: 500; line-height: 1.45; }
.unlock-consent input { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 2px; accent-color: var(--mint-dark); }
.unlock-form .input-row button { width: 100%; }
.unlock-form .form-error { margin: 0; color: var(--fail); font-size: 13px; }
.unlock-form .choice-note a { color: var(--mint-dark); }

@media (max-width: 1000px) {
    .preview-layout { grid-template-columns: minmax(0, 1fr); margin-bottom: 110px; }
    .unlock-panel { position: fixed; z-index: 20; top: auto; right: 0; bottom: 0; left: 0; }
    .js-unlock .unlock-panel:not(.is-visible) { transform: translateY(100%); }
    .unlock-bar { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border: 0; color: #fff; background: var(--ink); text-align: left; box-shadow: 0 -8px 30px #16243a33; }
    .unlock-bar small { display: block; color: #c9d4df; font-size: 12px; }
    .unlock-card { display: none; max-height: 75vh; overflow-y: auto; border-radius: 0; }
    .unlock-panel.is-open .unlock-card { display: block; }
    .unlock-panel.is-open .unlock-bar span:last-child { transform: rotate(180deg); }
    body:not(.js-unlock) .unlock-panel { position: static; }
    body:not(.js-unlock) .unlock-card { display: block; border-radius: 18px; }
    body:not(.js-unlock) .unlock-bar { display: none; }
}
@media (max-width: 640px) {
    .preview-page .shell { width: calc(100% - 32px); }
    .preview-hero .category-rings { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .locked-pillar li { grid-template-columns: 22px minmax(0, 1fr); }
    .locked-lines { display: none; }
    .locked-extras { grid-template-columns: 1fr; }
    .preview-form .input-row { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    .unlock-panel { transition: none; }
}

/* Homepage card CTAs: run a preview (AEO) and see a sample (AI Visibility). */
.public-audit-grid .audit-choice { display: flex; flex-direction: column; }
.public-card-cta { margin-top: auto; padding-top: 24px; }
.public-card-cta label { display: block; margin-bottom: 7px; color: var(--ink); font-size: 12.5px; font-weight: 700; }
.public-card-cta .input-row { display: flex; gap: 8px; }
.public-card-cta .input-row input { flex: 1 1 auto; min-width: 0; height: 46px; padding: 0 14px; border: 1px solid #d4dce5; border-radius: 10px; font-size: 14.5px; }
.public-card-cta .input-row button { display: inline-flex; flex: 0 0 auto; height: 46px; align-items: center; gap: 10px; padding: 0 16px; border: 0; border-radius: 10px; color: #fff; background: var(--ink); font-size: 14px; font-weight: 700; }
.public-card-cta .input-row button:hover, .public-card-cta .choice-button:hover { background: #24395a; }
@media (max-width: 600px) { .public-card-cta .input-row { flex-direction: column; } .public-card-cta .input-row button { justify-content: center; } }

/* Public AI Visibility sample (sample/). */
.sample-page .vis-shell { width: min(1120px, calc(100% - 48px)); }
.sample-intro { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 22px 40px; margin: 22px 0 26px; padding: 28px; border: 1px solid #cfe5d8; border-radius: 18px; background: linear-gradient(135deg, #eef7f1, #fff 70%); }
.sample-intro > div { max-width: 700px; }
.sample-intro h1 { margin: 0; color: var(--ink); font-size: clamp(26px, 3vw, 34px); line-height: 1.2; letter-spacing: -.03em; }
.sample-intro .choice-button { width: auto; }
.sample-pending { padding: 28px; }
.sample-pending h2 { margin: 0 0 8px; }
@media (max-width: 600px) { .sample-page .vis-shell { width: calc(100% - 32px); } .sample-intro { padding: 20px; } }
.preview-page .site-header { padding: 0 max(24px, calc((100% - 1240px) / 2)); }

/* Redacted check titles: grey bars stand in for text that is never sent to the browser. */
.redact-bar { display: block; height: 11px; border-radius: 6px; background: linear-gradient(90deg, #cfd8e0, #dfe5ea); }
.preview-issues .redact-bar { margin: 3px 0 6px; }
.redact-bar.w0 { width: 72%; } .redact-bar.w1 { width: 54%; } .redact-bar.w2 { width: 86%; } .redact-bar.w3 { width: 63%; } .redact-bar.w4 { width: 45%; }

/* Preview hero: score on the left, the visitor's homepage in a browser window on the right. */
.preview-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 44%); gap: 24px; align-items: start; }
.preview-hero-text { min-width: 0; }
.preview-shot { display: grid; gap: 12px; }
.preview-shot .preview-badge { justify-self: end; }
.preview-shot .browser-shot { margin: 0; }
@media (max-width: 760px) {
    .preview-hero-grid { grid-template-columns: 1fr; }
    .preview-shot .preview-badge { justify-self: start; grid-row: 1; }
}
