/* Hallmark · macrostructure: Split Studio · tone: luxury-editorial · anchor hue: gold
 * Brand-preserved cream/charcoal/gold; the existing homepage's Georgia + system sans stacks.
 * Audience: business owners · purpose: request a free design concept, not a free production site.
 * Nav: N1 minimal, genuinely two in-page destinations · footer: Ft2 inline rule.
 * Enrichment: deterministic illustrative SVG; no client proof, fake browser chrome, or remote assets.
 * Motion: button press only. The form precedes artwork in mobile reading order.
 * Hallmark · pre-emit critique: P4 H5 E4 S4 R5 V4 · contrast: WCAG AA tested with axe.
 */
:root {
    color-scheme: light;
    --color-paper: #faf8f5;
    --color-paper-deep: #f1ece3;
    --color-card: #fffdfa;
    --color-ink: #1c1917;
    --color-ink-soft: #292524;
    --color-muted: #57534e;
    --color-rule: #d9d1c4;
    --color-input-border: #918475;
    --color-gold: #b8860b;
    --color-accent: #8a611d;
    --color-accent-hover: #715019;
    --color-gold-light: #e6c87f;
    --color-on-dark: #faf8f5;
    --color-on-dark-muted: #d2c8b9;
    --color-dark-rule: #5c5346;
    --color-focus: #8a611d;
    --color-error: #9d2d24;
    --color-error-wash: #fff1eb;
    --color-success: #315b43;
    --color-success-wash: #e5ede4;
    --color-shadow: #1c19170d;
    --color-transparent: transparent;
    --font-display: Georgia, "Times New Roman", ui-serif, serif;
    --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --text-small: 0.875rem;
    --text-base: 1rem;
    --text-lede: 1.125rem;
    --text-section: clamp(2.25rem, 3.4vw, 3.5rem);
    --text-display: clamp(2.7rem, 6vw, 5rem);
    --space-xs: 0.5rem;
    --space-sm: 0.75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    --space-4xl: 6rem;
    --page-gutter: clamp(1.25rem, 4.3vw, 4rem);
    --radius-control: 3px;
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --dur-press: 120ms;
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-padding-top: 1rem; }
body { margin: 0; overflow-x: clip; font: 400 var(--text-base)/1.6 var(--font-body); color: var(--color-ink); background: var(--color-paper); -webkit-font-smoothing: antialiased; }
body { padding-inline: env(safe-area-inset-left) env(safe-area-inset-right); }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { min-width: 0; overflow-wrap: anywhere; }
h1, h2 { font-family: var(--font-display); font-weight: 400; font-style: normal; line-height: 1.07; letter-spacing: -0.045em; }
h2 { font-size: var(--text-section); }
h3 { font-size: 1.125rem; font-weight: 600; line-height: 1.3; letter-spacing: -0.025em; }
p { text-wrap: pretty; }
a { color: inherit; text-underline-offset: 0.22em; }
button, input, select, textarea { font: inherit; }
button, summary { -webkit-tap-highlight-color: var(--color-transparent); }
img, svg { max-width: 100%; height: auto; }
img { display: block; }
[hidden] { display: none !important; }
::selection { color: var(--color-ink); background: var(--color-gold-light); }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
.shell { width: 100%; max-width: 1328px; margin-inline: auto; padding-inline: var(--page-gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; z-index: 10; top: 0.5rem; left: 0.5rem; max-width: calc(100% - 1rem); padding: 0.875rem 1rem; color: var(--color-on-dark); background: var(--color-ink); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }

/* Compact, non-sticky navigation: no overlay can cover form focus. */
.site-header { border-bottom: 1px solid var(--color-rule); }
.header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); }
.wordmark { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 0.6rem; min-height: 44px; font: 400 1.45rem/1 var(--font-display); letter-spacing: -0.06em; text-decoration: none; white-space: nowrap; }
.wordmark img { width: 32px; height: 32px; }
.header-nav { display: none; align-items: center; gap: var(--space-xl); }
.header-nav a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; font-size: var(--text-small); white-space: nowrap; }
.header-note { max-width: 10ch; font-size: 0.75rem; line-height: 1.5; text-align: right; color: var(--color-muted); }

/* Split campaign: introduction → real form → compact illustration on mobile. */
.hero { display: grid; grid-template-areas: "intro" "form" "concept"; grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-block: 2.25rem 3rem; align-items: start; }
.hero-intro { grid-area: intro; min-width: 0; }
.offer-label { display: flex; align-items: center; gap: var(--space-sm); margin-bottom: 1rem; color: var(--color-accent); font-size: 0.75rem; font-weight: 650; letter-spacing: 0.1em; text-transform: uppercase; }
.offer-line { flex: 0 0 24px; height: 2px; background: var(--color-gold); }
h1 { max-width: 14ch; font-size: var(--text-display); line-height: 1.05; }
h1 span { color: var(--color-accent); }
.hero-copy { max-width: 47ch; margin-top: var(--space-lg); font-size: 1.0625rem; line-height: 1.65; color: var(--color-muted); }
.hero-copy strong { font-weight: 600; color: var(--color-ink); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-lg); min-height: 52px; max-width: 100%; border: 1px solid var(--color-transparent); border-radius: var(--radius-control); padding: 0.85rem 1.2rem; font-size: var(--text-base); line-height: 1.4; font-weight: 600; letter-spacing: -0.02em; text-decoration: none; cursor: pointer; white-space: nowrap; transition: transform var(--dur-press) var(--ease-out); }
.button-primary { background: var(--color-accent); color: var(--color-on-dark); }
.button > span[aria-hidden="true"] { font-size: 1.25rem; line-height: 1; }
.button:active { transform: translateY(1px); }
.button:disabled { background: var(--color-ink-soft); cursor: wait; }
.hero-cta { margin-top: 1.5rem; width: 100%; }
.reassurance { display: flex; flex-wrap: wrap; gap: 0.25rem 0.875rem; margin: var(--space-sm) 0 0; padding: 0; list-style: none; color: var(--color-muted); font-size: 0.75rem; line-height: 1.65; }
.reassurance li { display: inline-flex; align-items: center; gap: 0.35rem; white-space: nowrap; }
.reassurance li::before { content: "✓"; font-weight: 650; color: var(--color-accent); }
.offer-boundary { max-width: 47ch; margin-top: var(--space-sm); font-size: var(--text-small); line-height: 1.6; color: var(--color-muted); }

/* Form: one task, three required fields, optional detail disclosure. */
.request-panel { grid-area: form; min-width: 0; padding: 1.375rem 1.125rem; scroll-margin-top: 1rem; background: var(--color-card); border: 1px solid var(--color-rule); border-top: 3px solid var(--color-gold); box-shadow: 0 12px 30px var(--color-shadow); }
.request-panel:focus { outline: none; }
.request-panel:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
.panel-heading { position: relative; padding-right: 2.5rem; }
.small-label { font-size: 0.75rem; line-height: 1.5; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-muted); }
.panel-heading h2 { font-size: 2.375rem; margin-top: var(--space-xs); }
.panel-heading > p:last-child { font-size: var(--text-small); color: var(--color-muted); line-height: 1.6; margin-top: 0.875rem; margin-right: -2.5rem; }
.panel-mark { position: absolute; top: 0.4rem; right: 0; display: grid; place-items: center; width: 36px; height: 36px; background: var(--color-paper-deep); color: var(--color-accent); border-radius: 50%; font-size: 1.5rem; }
.required-note { margin-top: var(--space-lg); margin-bottom: 0.875rem; color: var(--color-muted); font-size: 0.75rem; }
.field + .field { margin-top: 0.875rem; }
.field label { display: block; margin-bottom: 0.375rem; font-size: var(--text-small); line-height: 1.5; font-weight: 600; }
.optional { font-weight: 400; color: var(--color-muted); }
.field input, .field select, .field textarea { display: block; width: 100%; min-width: 0; max-width: 100%; min-height: 46px; padding: 0.625rem 0.75rem; border: 1px solid var(--color-input-border); border-radius: var(--radius-control); background: var(--color-card); color: var(--color-ink); font-size: 1rem; line-height: 1.5; box-shadow: none; }
.field textarea { min-height: 100px; resize: vertical; }
.field select { padding-inline-end: 0.375rem; text-overflow: ellipsis; }
.field input::placeholder, .field textarea::placeholder { color: var(--color-muted); opacity: 1; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--color-focus); outline-offset: 2px; border-color: var(--color-focus); }
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: var(--color-error); box-shadow: inset 0 0 0 1px var(--color-error); }
.field input:user-invalid, .field textarea:user-invalid { border-color: var(--color-error); }
.field-hint { margin-top: 0.3125rem; color: var(--color-muted); font-size: 0.75rem; line-height: 1.6; }
.field-error { color: var(--color-error); font-size: var(--text-small); margin-top: var(--space-xs); }
.extra-details { margin-block: 1rem 1.125rem; border-top: 1px solid var(--color-rule); border-bottom: 1px solid var(--color-rule); }
summary { display: flex; align-items: center; gap: var(--space-xs); min-height: 52px; cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
.extra-details > summary { font-size: var(--text-small); font-weight: 600; letter-spacing: -0.02em; }
.extra-details > summary > span:not(.plus) { font-size: 0.75rem; font-weight: 400; color: var(--color-muted); }
.plus { display: block; flex: 0 0 18px; position: relative; width: 18px; height: 18px; margin-left: auto; color: var(--color-accent); }
.plus::before, .plus::after { content: ""; position: absolute; background: currentColor; }
.plus::before { width: 12px; height: 1.5px; left: 3px; top: 8px; }
.plus::after { width: 1.5px; height: 12px; top: 3px; left: 8px; }
details[open] > summary .plus::after { display: none; }
.extra-fields { padding-top: var(--space-xs); padding-bottom: var(--space-lg); }
.submit-button { display: flex; width: 100%; gap: var(--space-sm); }
.submit-button .submit-arrow { margin-left: auto; }
.form-error { border-left: 3px solid var(--color-error); padding: 0.875rem 1rem; margin-block: 1rem; background: var(--color-error-wash); color: var(--color-error); font-size: var(--text-small); }
.form-error p { margin-top: 0.25rem; }
.form-status { margin-top: 0.5rem; font-size: var(--text-small); color: var(--color-muted); }
.form-status:empty { display: none; }
.request-privacy { margin-top: 0.875rem; color: var(--color-muted); font-size: 0.75rem; line-height: 1.65; }
.request-privacy a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; font-weight: 600; color: var(--color-ink); }
.no-script-note { margin-top: var(--space-md); font-size: var(--text-small); }
.spinner { width: 18px; height: 18px; flex: 0 0 18px; margin-left: auto; border: 2px solid var(--color-on-dark-muted); border-right-color: var(--color-transparent); border-radius: 50%; }
@media (prefers-reduced-motion: no-preference) { .spinner { animation: spin 900ms linear infinite; } }
@keyframes spin { to { transform: rotate(360deg); } }

/* Concept artwork is deliberately labeled illustration, never client proof. */
.concept { grid-area: concept; min-width: 0; }
.concept-art { position: relative; padding: 0; background: var(--color-paper-deep); }
.concept-art img { width: 100%; height: auto; aspect-ratio: 680 / 360; }
.concept-note { position: absolute; bottom: 11%; right: 7%; font: 400 clamp(0.875rem, 2vw, 1.3125rem)/1.2 var(--font-display); letter-spacing: -0.025em; transform: rotate(-6deg); border-bottom: 1px solid var(--color-accent); color: var(--color-ink); padding-bottom: 3px; }
.concept figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; margin-top: var(--space-sm); color: var(--color-muted); font-size: 0.75rem; line-height: 1.5; }
.concept figcaption > span:first-child { font-weight: 600; }
.concept-caption-detail { display: none; }

/* The paid boundary and ordered sequence are an editorial band, not card grids. */
.process-section { background: var(--color-ink); color: var(--color-on-dark); padding-block: var(--space-3xl); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); }
.section-heading h2 { max-width: 14ch; }
.section-heading > p { font-size: var(--text-base); color: var(--color-on-dark-muted); }
.process-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 2.5rem 0 0; padding: 0; list-style: none; }
.process-list li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); column-gap: var(--space-sm); padding-block: var(--space-lg); border-top: 1px solid var(--color-dark-rule); }
.step-number { grid-column: 1; grid-row: 1 / 3; color: var(--color-gold-light); font: 400 1.25rem/1.2 var(--font-display); font-variant-numeric: tabular-nums; }
.process-list h3 { grid-column: 2; }
.process-list p { grid-column: 2; color: var(--color-on-dark-muted); font-size: var(--text-small); line-height: 1.7; margin-top: var(--space-xs); }
.scope-note { display: flex; align-items: flex-start; gap: var(--space-md); padding-top: var(--space-lg); margin-top: var(--space-md); border-top: 1px solid var(--color-dark-rule); }
.scope-symbol { flex: 0 0 30px; font-size: 1.75rem; line-height: 1.2; color: var(--color-gold-light); }
.scope-note p { max-width: 85ch; color: var(--color-on-dark-muted); font-size: var(--text-small); line-height: 1.7; }
.scope-note strong { color: var(--color-on-dark); font-weight: 600; }

.faq-section { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); padding-block: var(--space-3xl); }
.faq-intro > p { margin-top: var(--space-lg); color: var(--color-muted); }
.faq-list { min-width: 0; }
.faq-list details { border-bottom: 1px solid var(--color-rule); }
.faq-list details:first-child { border-top: 1px solid var(--color-rule); }
.faq-list summary { padding-block: 1.125rem; gap: var(--space-lg); font-weight: 600; line-height: 1.5; }
.faq-list details > p { max-width: 65ch; padding: 0 1.5rem 1.5rem 0; font-size: var(--text-small); line-height: 1.75; color: var(--color-muted); }
.closing-section { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: var(--space-lg); padding-block: 0 var(--space-3xl); }
.closing-section h2 { margin-top: var(--space-sm); }
.closing-action { width: 100%; }
.closing-action .button { width: 100%; }
.closing-action p { margin-top: var(--space-sm); font-size: 0.75rem; color: var(--color-muted); text-align: center; }
.site-footer { border-top: 1px solid var(--color-rule); padding-block: 1.5rem max(1.5rem, env(safe-area-inset-bottom)); }
.footer-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-xs) var(--space-lg); }
.footer-inner .wordmark { font-size: 1.375rem; }
.footer-inner p { display: none; color: var(--color-muted); font-size: var(--text-small); }
.footer-inner nav { display: flex; gap: var(--space-lg); }
.footer-inner nav a { display: inline-flex; min-height: 44px; min-width: 44px; align-items: center; font-size: var(--text-small); white-space: nowrap; }

/* Neutral by default; verified request styling appears only after receipt cookie. */
.confirmation-page { min-height: 100svh; display: flex; flex-direction: column; }
.confirmation-main { flex: 1; padding-block: 2.5rem 3rem; }
.confirmation-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.confirmation-copy h1 { max-width: 12ch; font-size: clamp(2.7rem, 5vw, 4.75rem); }
.confirmation-copy > p:not(.offer-label) { max-width: 46ch; margin-top: var(--space-lg); color: var(--color-muted); font-size: var(--text-lede); }
.confirmation-copy .button { width: 100%; margin-top: var(--space-xl); }
.confirmation-receipt { display: flex; align-items: flex-start; gap: var(--space-sm); border: 1px solid var(--color-success); background: var(--color-success-wash); color: var(--color-success); padding: var(--space-md); margin-bottom: var(--space-xl); font-size: var(--text-small); }
.confirmation-receipt > span { font-size: 1.125rem; }
.next-panel { padding: 1.75rem 1.25rem; background: var(--color-ink); color: var(--color-on-dark); }
.next-panel h2 { font-size: 2.125rem; }
.next-list { margin: var(--space-lg) 0 0; padding: 0; list-style: none; }
.next-list li { position: relative; padding: var(--space-lg) 0 var(--space-lg) 2.125rem; border-top: 1px solid var(--color-dark-rule); }
.next-list li > span { position: absolute; left: 0; top: 1.5rem; color: var(--color-gold-light); font: 400 1.125rem/1.3 var(--font-display); }
.next-list p { margin-top: var(--space-xs); color: var(--color-on-dark-muted); font-size: var(--text-small); line-height: 1.7; }
.confirmation-boundary { margin-top: var(--space-lg); padding-top: var(--space-lg); border-top: 1px solid var(--color-rule); color: var(--color-muted); font-size: var(--text-small); line-height: 1.7; max-width: 65ch; }
.confirmation-boundary strong { color: var(--color-ink); }

@media (min-width: 25rem) {
    .header-note { max-width: none; }
    .hero-cta { width: auto; }
    .request-panel { padding: 1.75rem; }
    .concept-caption-detail { display: inline; }
    .reassurance { font-size: 0.8125rem; }
}
@media (min-width: 40rem) {
    .header-inner { min-height: 88px; }
    .header-nav { display: flex; }
    .header-note { display: none; }
    .hero { padding-block: var(--space-2xl) var(--space-3xl); gap: 2.5rem; }
    .hero-intro, .request-panel, .concept { width: 100%; max-width: 640px; margin-inline: auto; }
    .hero-copy { font-size: var(--text-lede); }
    .request-panel { padding: 2rem; }
    .section-heading { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: var(--space-xl); }
    .process-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-xl); }
    .process-list li { display: block; }
    .step-number { display: block; margin-bottom: var(--space-lg); }
    .process-list h3 { min-height: 1.5rem; }
    .closing-section { flex-direction: row; align-items: center; }
    .closing-action { width: auto; }
    .closing-action .button { width: auto; }
    .confirmation-copy .button { width: auto; }
    .next-panel { padding: 2rem; }
}
@media (min-width: 64rem) {
    .header-note { display: block; font-size: 0.8125rem; }
    .header-nav { margin-left: auto; margin-right: var(--space-2xl); }
    .hero { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); grid-template-rows: auto 1fr; grid-template-areas: "intro form" "concept form"; column-gap: clamp(2rem, 5vw, 5rem); row-gap: var(--space-xl); padding-block: 2.75rem 4.5rem; }
    .hero-intro, .request-panel, .concept { margin: 0; max-width: none; }
    .hero-intro { padding-top: var(--space-xs); }
    .hero-copy { max-width: 43ch; margin-top: var(--space-lg); }
    .hero-cta { margin-top: var(--space-lg); }
    .request-panel { padding: 1.75rem; }
    .concept { align-self: start; }
    .concept-caption-detail { display: none; }
    .process-section { padding-block: var(--space-3xl); }
    .section-heading { grid-template-columns: minmax(0, 1fr) minmax(0, 0.68fr); }
    .section-heading > p { font-size: var(--text-lede); }
    .process-list { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--space-xl); }
    .process-list li { padding-top: var(--space-lg); }
    .process-list p { max-width: 27ch; }
    .faq-section { grid-template-columns: minmax(0, 0.75fr) minmax(0, 1fr); gap: var(--space-3xl); padding-block: var(--space-4xl); }
    .closing-section { padding-bottom: var(--space-4xl); }
    .footer-inner p { display: block; }
    .confirmation-main { padding-block: 5rem; }
    .confirmation-layout { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 5rem; align-items: start; }
}
@media (min-width: 78rem) {
    .concept-caption-detail { display: inline; }
    .request-panel { padding: 2rem; }
    .panel-heading h2 { font-size: 2.625rem; }
}
@media (hover: hover) and (pointer: fine) {
    .button-primary:hover:not(:disabled) { background: var(--color-accent-hover); }
    .header-nav a:hover, .footer-inner a:hover { color: var(--color-accent); }
    summary:hover { color: var(--color-accent); }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
    .button, .request-panel, .next-panel { border: 1px solid ButtonText; }
    .plus::before, .plus::after { background: ButtonText; }
}
