/* Specialist wine merchant layout. Shared form, article and legal primitives
   remain in style.css; this file owns the approved merchant composition. */
.container { max-width: 1320px; }
.header-inner { min-height: 84px; }
.brand-type { font-weight: 600; letter-spacing: -.025em; }
.brand-type > span { font-size: var(--text-xs); letter-spacing: .06em; }
.brand-mark { width: 32px; height: 40px; }
.main-nav { gap: var(--space-6); }
.main-nav a { font-weight: 500; }
.button { font-weight: 600; min-height: 48px; padding: var(--space-3) var(--space-5); gap: var(--space-6); }
.button-small { min-height: 44px; }
.hero.merchant-hero { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(var(--space-8), 6vw, var(--space-20)); padding-block: var(--space-12); align-items: center; }
.merchant-hero .hero-copy { min-height: 0; padding: 0; display: block; }
.merchant-hero h1 { font-size: var(--text-hero); margin-top: var(--space-5); max-width: 14ch; }
.merchant-hero .hero-description { max-width: 46ch; margin-block: var(--space-6); line-height: 1.6; }
.merchant-hero .hero-note { line-height: 1.7; color: var(--color-text-muted); font-size: var(--text-xs); margin-top: var(--space-5); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-6); }
.hero-call { font-size: var(--text-sm); font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid var(--color-border); }
.merchant-portrait { margin: 0; min-width: 0; }
.merchant-portrait .hero-image { position: static; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: 40% 50%; background: var(--color-surface-offset); }
.merchant-portrait figcaption { display: flex; justify-content: space-between; align-items: start; gap: var(--space-4); padding-top: var(--space-4); font-size: var(--text-xs); line-height: 1.5; }
.merchant-portrait figcaption strong, .merchant-portrait figcaption > span > span { display: block; }
.merchant-portrait figcaption strong { font-size: var(--text-sm); font-weight: 600; }
.merchant-portrait figcaption a { min-height: 44px; display: inline-flex; align-items: center; gap: var(--space-2); color: var(--color-primary); }
h1, h2 { font-weight: 600; }
.article-head h1 { overflow-wrap: anywhere; }
.section-pad { padding-block: var(--space-12); }
.service-directory { padding-top: var(--space-8); padding-bottom: var(--space-10); }
.directory-intro { border-top: 2px solid var(--color-text); padding-top: var(--space-6); display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3) var(--space-16); }
.directory-intro .eyebrow { grid-column: 1 / -1; color: var(--color-primary); }
.directory-intro h2 { font-size: var(--text-xl); }
.directory-intro > p:last-child { font-size: var(--text-sm); color: var(--color-text-muted); max-width: 55ch; }
.service-rows { margin-top: var(--space-6); }
.service-row { display: grid; grid-template-columns: 1.05fr 1.1fr .55fr; align-items: center; gap: var(--space-6); border-top: 1px solid var(--color-border); padding-block: var(--space-6); font-size: var(--text-sm); }
.service-row:last-child { border-bottom: 1px solid var(--color-border); }
.service-row-title { display: flex; align-items: center; gap: var(--space-4); color: var(--color-text); }
.service-row-title strong { font-size: var(--text-base); font-weight: 600; }
.service-row-title .wi-icon { width: 22px; height: 22px; color: var(--color-primary); }
.service-row > span:nth-child(2) { color: var(--color-text-muted); }
.row-action { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-4); font-weight: 500; color: var(--color-primary); }
.service-row:hover .service-row-title, .service-row:focus-visible .service-row-title { color: var(--color-primary); }
.service-row:active { background: var(--color-surface-offset); }
.directory-note { margin-top: var(--space-4); font-size: var(--text-xs); color: var(--color-text-muted); }
.merchant-note { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); padding-block: var(--space-8) var(--space-12); }
.merchant-note h2 { font-size: var(--text-xl); margin-top: var(--space-4); }
.merchant-note-copy p { font-size: var(--text-base); color: var(--color-text-muted); }
.merchant-note-copy p + p { margin-top: var(--space-4); }
.merchant-note-copy .text-link { margin-top: var(--space-3); }
.enquiry-section { padding-block: var(--space-12); }
.enquiry-layout { grid-template-columns: .9fr 1.1fr; gap: clamp(var(--space-8), 7vw, var(--space-20)); align-items: start; }
.enquiry-intro { padding-top: var(--space-4); }
.enquiry-intro h2 { font-size: clamp(2.5rem, 1.5rem + 3vw, 3.75rem); margin-block: var(--space-4) var(--space-5); font-weight: 600; }
.enquiry-intro > p:not(.eyebrow) { max-width: 42ch; }
.enquiry-budget { border-block: 1px solid oklch(97% .012 80 / .25); padding-block: var(--space-5); margin-block: var(--space-6); }
.enquiry-budget > span { font-size: var(--text-xs); }
.enquiry-budget strong { display: block; font: 600 var(--text-xl)/1.2 var(--font-display); margin-block: var(--space-3); }
.enquiry-budget p { font-size: var(--text-sm); max-width: 40ch; }
.enquiry-side-note { font-size: var(--text-sm); }
.enquiry-side-note a { display: flex; width: fit-content; min-height: 44px; align-items: center; font-size: var(--text-lg); font-weight: 600; text-decoration: none; }
.contact-hours { display: block; font-size: var(--text-xs); }
.enquiry-panel {
  /* Keep the entire enquiry flow on a readable ivory surface in either theme. */
  color-scheme: light;
  --color-bg: oklch(97% .012 80);
  --color-surface: oklch(100% 0 0);
  --color-surface-offset: oklch(94% .025 355);
  --color-text: oklch(24% .008 40);
  --color-text-muted: oklch(43% .012 40);
  --color-primary: oklch(32% .083 355);
  --color-primary-hover: oklch(40% .1 355);
  --color-border: oklch(57% .018 55);
  --color-error: oklch(42% .15 25);
  background: var(--color-bg);
  color: var(--color-text);
  padding: var(--space-8);
  border: 1px solid oklch(100% 0 0 / .55);
  border-radius: var(--radius-sm);
  box-shadow: 0 var(--space-4) var(--space-10) oklch(12% .035 355 / .2);
  scroll-margin-top: var(--space-24);
}
.enquiry-panel .goal-option {
  background: var(--color-surface);
  border-radius: var(--radius-sm);
  min-height: 76px;
}
.enquiry-panel .goal-option:hover { border-color: var(--color-primary); }
.enquiry-panel .goal-option:has(input:checked) {
  background: var(--color-surface-offset);
  border-color: var(--color-primary);
  box-shadow: inset 0 0 0 1px var(--color-primary);
}
.enquiry-panel .goal-option > span > strong { font-size: var(--text-base); }
.enquiry-panel .radio-circle { width: 22px; height: 22px; }
.enquiry-panel :is(input, textarea)::placeholder { color: var(--color-text-muted); opacity: 1; }
.enquiry-panel :is(input, select, textarea):focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}
.enquiry-panel input[type="checkbox"][aria-invalid="true"] {
  outline: 2px solid var(--color-error);
  outline-offset: 2px;
}
.enquiry-panel :is(.demo-note, .check-label, .email-fallback) a { color: var(--color-primary); }
.enquiry-panel #edit-brief {
  color: var(--color-primary);
  background: transparent;
  border-color: var(--color-primary);
}
.enquiry-panel #edit-brief:hover { background: var(--color-surface-offset); }
.form-progress { padding-bottom: var(--space-5); margin-bottom: var(--space-6); }
legend, .form-title { font-family: var(--font-body); font-size: var(--text-lg); font-weight: 600; line-height: 1.3; }
.goal-option > span > strong { font-weight: 600; }
.goal-option { padding-block: var(--space-3); }
.demo-note { display: block; }
.process-intro { align-items: end; gap: var(--space-8); }
.process-intro h2 { margin-top: var(--space-3); }
.process-list { margin-top: var(--space-6); }
.process-list li { grid-template-columns: 40px .85fr 1.3fr; gap: var(--space-6); padding-block: var(--space-5); }
.process-number { font: 600 var(--text-sm)/1.5 var(--font-body); letter-spacing: 0; padding-top: 0; }
.process-list h3 { font-size: var(--text-base); font-weight: 600; }
.investment-note { padding: var(--space-5); margin-top: var(--space-6); gap: var(--space-6); grid-template-columns: .85fr 1.3fr; }
.collector-desk { padding-block: var(--space-6) var(--space-12); }
.desk-heading { border-top: 2px solid var(--color-text); padding-top: var(--space-6); display: grid; grid-template-columns: 1fr auto; gap: var(--space-2) var(--space-5); align-items: center; }
.desk-heading .eyebrow { grid-column: 1 / -1; color: var(--color-primary); }
.desk-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: var(--space-12); margin-top: var(--space-6); }
.desk-feature { background: var(--color-surface-offset); padding: var(--space-8); display: flex; flex-direction: column; align-items: flex-start; }
.desk-feature h3 { font: 600 clamp(1.7rem, 1.2rem + 1vw, 2.25rem)/1.15 var(--font-display); margin-block: var(--space-5); max-width: 23ch; }
.desk-feature p { font-size: var(--text-base); color: var(--color-text-muted); }
.desk-feature-link { font-size: var(--text-sm); font-weight: 600; color: var(--color-primary); margin-top: auto; padding-top: var(--space-8); display: flex; gap: var(--space-6); }
.desk-feature:hover h3 { color: var(--color-primary); }
.desk-list a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); padding-block: var(--space-4); border-bottom: 1px solid var(--color-border); min-height: 80px; }
.desk-list a:first-child { border-top: 1px solid var(--color-border); }
.desk-list a .eyebrow { display: block; color: var(--color-text-muted); margin-bottom: var(--space-1); font-size: var(--text-xs); letter-spacing: .04em; }
.desk-list strong { font-size: var(--text-base); font-weight: 600; }
.desk-list a:hover strong { color: var(--color-primary); }
.desk-footnote { display: flex; align-items: start; justify-content: space-between; gap: var(--space-8); margin-top: var(--space-6); }
.desk-footnote p { font-size: var(--text-sm); color: var(--color-text-muted); max-width: 65ch; }
.desk-footnote a { flex-shrink: 0; }
.faq-section { grid-template-columns: .7fr 1.3fr; gap: var(--space-16); border-top: 1px solid var(--color-border); }
.faq-intro h2 { margin-top: var(--space-4); }
.faq-intro > p:last-child { margin-top: var(--space-4); }
.faq-list summary { padding-block: var(--space-5); font-weight: 500; }
.site-footer { border-top: 1px solid var(--color-border); }
.footer-top { padding-bottom: var(--space-6); }
.footer-details { padding-top: var(--space-6); }
.article-head { padding-block: var(--space-5) var(--space-8); background: var(--color-bg); }
.breadcrumbs { margin-bottom: var(--space-5); }
.article-head h1 { font-size: clamp(2.25rem, 1.5rem + 2.5vw, 3.5rem); font-weight: 600; line-height: 1.1; margin-block: var(--space-4); max-width: 27ch; }
.article-head .article-deck { max-width: 72ch; line-height: 1.65; }
.article-byline { margin-top: var(--space-4); }
.article-layout { grid-template-columns: 220px minmax(0, 720px); gap: var(--space-12); padding-top: var(--space-8); }
.article-sidebar { top: 104px; }
.article-sidebar a { line-height: 1.5; padding-block: var(--space-2); }
.article-body p, .article-body li { line-height: 1.7; color: var(--color-text); }
.article-body h2 { font-size: var(--text-xl); font-weight: 600; margin-bottom: var(--space-4); }
.article-body h3 { font-weight: 600; }
.article-body strong { font-weight: 600; }
.article-body section { margin-top: var(--space-8); }
.article-body > p:first-child { margin-top: 0; }
.article-cta { padding: var(--space-6) var(--space-8); margin-top: var(--space-8); }
.article-body .article-cta p { color: var(--color-cream); opacity: 1; }
.article-cta h2 { font-size: var(--text-xl); }
.article-cta p { margin-block: var(--space-3) var(--space-5); }
.article-related { margin-top: var(--space-12); }
.article-related > h2 { margin-bottom: var(--space-5); }
.guide-main { padding-bottom: var(--space-12); }
.guide-grid, .article-related .guide-grid { display: grid; grid-template-columns: 1fr; gap: 0; }
.guide-card { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); padding-block: var(--space-5); border-top: 1px solid var(--color-border); border-bottom: 0; align-items: start; }
.guide-card:last-child { border-bottom: 1px solid var(--color-border); }
.guide-card h3 { font: 600 var(--text-lg)/1.3 var(--font-body); letter-spacing: -.015em; max-width: none; display: flex; justify-content: space-between; gap: var(--space-4); }
.guide-card h3 span { color: var(--color-primary); }
.guide-card p { font-size: var(--text-sm); color: var(--color-text-muted); margin: 0; max-width: 55ch; line-height: 1.6; }
.guide-card:hover h3 { color: var(--color-primary); }
.guide-card:active { background: var(--color-surface-offset); }
.notebook-head .article-deck { max-width: 62ch; }
.notebook-note { margin-top: var(--space-4); font-size: var(--text-xs); }
.topic-nav { margin-top: var(--space-5); gap: var(--space-2) var(--space-6); }
.topic-nav a { gap: var(--space-3); font-weight: 500; }
.notebook-group { display: grid; grid-template-columns: .65fr 1.7fr; gap: var(--space-12); padding-block: var(--space-8); border: 0; }
.notebook-group .guides-heading { display: block; }
.notebook-group .guides-heading h2 { margin-top: var(--space-2); font-size: var(--text-xl); max-width: 18ch; }
.notebook-group .guides-heading > p { font-size: var(--text-sm); color: var(--color-text-muted); margin-top: var(--space-3); max-width: 30ch; }
.notebook-group .guides-heading > .eyebrow { color: var(--color-primary); }
.notebook-group .guide-card { grid-template-columns: 1fr 1fr; gap: var(--space-6); }
.business-body { max-width: 920px; padding-block: var(--space-8) var(--space-12); }
.business-body h2 { margin-top: var(--space-8); }
.head-enquiry { margin-bottom: var(--space-2); }
.about-main .portrait-image { float: right; width: 38%; margin: var(--space-4) 0 var(--space-6) var(--space-8); }
.about-main .article-cta { clear: both; }
@media (max-width: 1100px) {
  .main-nav { gap: var(--space-4); }
  .header-inner { gap: var(--space-4); }
  .brand-type { font-size: 1.5rem; }
  .service-row { grid-template-columns: 1fr 1fr; }
  .row-action { grid-column: 2; justify-content: flex-start; }
  .notebook-group { grid-template-columns: 1fr 2fr; gap: var(--space-8); }
  .notebook-group .guide-card { grid-template-columns: 1fr; gap: var(--space-2); }
  .enquiry-panel { padding: var(--space-6); }
  .enquiry-layout { gap: var(--space-8); }
}
@media (max-width: 700px) {
  :root { --text-base: 1.0625rem; --text-sm: .9375rem; }
  .table-scroll.guide-comparison td::before {
    content: attr(data-label);
    display: block;
    font-size: var(--text-xs);
    line-height: 1.5;
    color: var(--color-text-muted);
    font-weight: 500;
    margin-bottom: var(--space-1);
  }
  .header-inner { min-height: 72px; }
  .hero.merchant-hero { grid-template-columns: 1fr; gap: var(--space-6); padding-block: var(--space-8); }
  .merchant-hero h1 { font-size: clamp(2.6rem, 1.5rem + 5vw, 3.7rem); max-width: 15ch; margin-top: var(--space-3); }
  .merchant-hero h1 br { display: none; }
  .merchant-hero .hero-description { margin-block: var(--space-4); }
  .hero-actions { gap: var(--space-1) var(--space-4); }
  .merchant-hero .hero-note { margin-top: var(--space-3); }
  .merchant-portrait { display: grid; grid-template-columns: 128px 1fr; gap: var(--space-4); border-top: 1px solid var(--color-border); padding-top: var(--space-5); }
  .merchant-portrait .hero-image { aspect-ratio: 1; }
  .merchant-portrait figcaption { display: flex; flex-direction: column; justify-content: center; gap: var(--space-1); padding-top: 0; }
  .merchant-portrait figcaption a { line-height: 1.5; }
  .brand-type { font-size: 1.35rem; }
  .section-pad { padding-block: var(--space-8); }
  .service-directory { padding-block: var(--space-5) var(--space-8); }
  .directory-intro { grid-template-columns: 1fr; gap: var(--space-3); padding-top: var(--space-5); }
  .directory-intro h2 { max-width: 22ch; }
  .service-rows { margin-top: var(--space-5); }
  .service-row { grid-template-columns: 1fr; gap: var(--space-2); padding-block: var(--space-5); }
  .service-row-title { gap: var(--space-3); }
  .row-action { grid-column: auto; justify-content: flex-start; margin-top: var(--space-1); }
  .service-row-title strong { font-size: var(--text-base); }
  .merchant-note { grid-template-columns: 1fr; gap: var(--space-5); padding-block: 0 var(--space-8); }
  .merchant-note h2 { margin-top: var(--space-3); }
  .merchant-note h2 br { display: none; }
  .enquiry-section { padding-block: var(--space-8); }
  .enquiry-layout { grid-template-columns: 1fr; gap: var(--space-6); }
  .enquiry-intro { padding-top: 0; }
  .enquiry-intro h2 { font-size: var(--text-xl); margin-block: var(--space-3); }
  .enquiry-intro h2 br { display: none; }
  .enquiry-intro > p:not(.eyebrow) { max-width: 45ch; font-size: var(--text-sm); }
  .enquiry-budget { margin-block: var(--space-5); padding-block: var(--space-4); }
  .enquiry-budget strong { font-family: var(--font-body); font-size: var(--text-base); margin-block: var(--space-2); }
  .enquiry-budget strong br { display: none; }
  .enquiry-budget p { font-size: var(--text-xs); }
  .enquiry-side-note a { display: inline-flex; font-size: var(--text-base); margin-left: var(--space-3); }
  .enquiry-panel { padding: var(--space-5); }
  .form-progress { gap: var(--space-2); margin-bottom: var(--space-5); }
  .progress-item { gap: var(--space-1); }
  .progress-item > span { width: 19px; height: 19px; }
  .progress-rule { min-width: 4px; }
  .process-intro { display: block; }
  .process-intro .text-link { margin-top: var(--space-3); }
  .process-list li { grid-template-columns: 24px 1fr; gap: var(--space-2) var(--space-4); }
  .process-list p { grid-column: 2; }
  .investment-note { grid-template-columns: 1fr; gap: var(--space-3); }
  .collector-desk { padding-block: var(--space-5) var(--space-8); }
  .desk-heading { grid-template-columns: 1fr; gap: var(--space-3); }
  .desk-heading > a { justify-self: start; }
  .desk-layout { grid-template-columns: 1fr; gap: var(--space-6); margin-top: var(--space-5); }
  .desk-feature { padding: var(--space-6); }
  .desk-feature h3 { font-size: var(--text-xl); margin-block: var(--space-4); }
  .desk-feature-link { padding-top: var(--space-5); }
  .desk-footnote { display: block; margin-top: var(--space-5); }
  .desk-footnote a { margin-top: var(--space-3); }
  .faq-section { grid-template-columns: 1fr; gap: var(--space-6); }
  .faq-list summary { padding-block: var(--space-4); }
  .article-head { padding-block: var(--space-3) var(--space-5); }
  .breadcrumbs { margin-bottom: var(--space-3); }
  .article-head h1 { font-size: clamp(2rem, 1.3rem + 3vw, 2.75rem); margin-block: var(--space-3); }
  .article-head .article-deck { font-size: var(--text-base); }
  .article-byline { margin-top: var(--space-3); }
  .article-layout { grid-template-columns: 1fr; gap: var(--space-5); padding-top: var(--space-4); }
  .article-sidebar { position: static; }
  .article-body section { margin-top: var(--space-6); }
  .article-body h2 { font-size: var(--text-xl); }
  .article-cta { padding: var(--space-6); }
  .article-related { margin-top: var(--space-8); }
  .guide-card, .notebook-group .guide-card { grid-template-columns: 1fr; gap: var(--space-3); padding-block: var(--space-5); }
  .guide-card h3 { font-size: var(--text-base); line-height: 1.4; }
  .guide-card p { font-size: var(--text-sm); }
  .notebook-group { grid-template-columns: 1fr; gap: var(--space-5); padding-block: var(--space-6); }
  .notebook-group .guides-heading h2 { max-width: none; font-size: var(--text-xl); }
  .notebook-group .guides-heading > p { max-width: 50ch; }
  .topic-nav { display: grid; grid-template-columns: 1fr; gap: 0; }
  .topic-nav a { justify-content: space-between; }
  .business-body { padding-top: var(--space-6); }
  .about-main .portrait-image { float: none; width: 100%; max-width: 420px; margin: var(--space-6) 0; }
  .footer-details { gap: var(--space-6); }
  .responsible-note { padding-top: var(--space-5); }
}
@media (max-width: 360px) {
  .enquiry-panel { padding: var(--space-4); }
  .progress-item { font-size: var(--text-xs); }
  .progress-item > span { display: none; }
  .brand-mark { width: 24px; }
  .brand-type { font-size: 1.25rem; }
  .hero-actions > .button { gap: var(--space-3); padding-inline: var(--space-4); }
}
