/* Shared finishing layer. Page-specific layouts and the EPUB canvas stay independent. */
:root {
  --bw-gold: #d4b88b;
  --bw-ink: #eee7db;
  --bw-muted: #bdb5a7;
  --bw-line: #d4b88b30;
  --bw-radius: 8px;
  --bw-measure: 1160px;
  --bw-gutter: clamp(18px, 4vw, 40px);
  --bw-font-ui: Arial, Helvetica, sans-serif;
  --bw-focus: #d4b88b;
  --bw-placeholder: #aaa293;
  --bw-button-tracking: .12em;
}
html { scroll-padding-top: 32px; }
body { line-height: 1.7; -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
:where(h1,h2,h3) { text-wrap: balance; line-height: 1.2; }
:where(p,li) { overflow-wrap: break-word; }
:where(button,input,select,textarea) { font: inherit; }
:where(button,a,input,select,textarea,summary):focus-visible {
  outline: 2px solid var(--bw-focus) !important; outline-offset: 3px !important;
}
:where(button,a,input,select,textarea) { -webkit-tap-highlight-color: #d4b88b26; }
:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea) {
  min-height: 44px; border-radius: var(--bw-radius); accent-color: var(--bw-gold);
}
:where(input,textarea)::placeholder { opacity: 1; color: var(--bw-placeholder); }
.button, a.button:visited {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 11px 20px; gap: 8px; border: 1px solid var(--bw-line);
  border-radius: var(--bw-radius); color: var(--bw-ink); background: #d4b88b08;
  font: 12px/1.5 var(--bw-font-ui); letter-spacing: var(--bw-button-tracking);
  text-align: center; text-decoration: none; white-space: normal; overflow-wrap: anywhere; max-width: 100%;
  transition: background .2s, border-color .2s, transform .2s;
}
.button::after { display: none; }
.button:hover { letter-spacing: var(--bw-button-tracking); background: #d4b88b18; border-color: var(--bw-gold); transform: translateY(-2px); }
.button.copper { -webkit-text-fill-color: currentColor; background-clip: border-box; border-color: #d4b88b70; color: var(--bw-gold); }
:where(button[type=submit],.contact-form button,.footer-archive-form button) {
  min-height: 44px; border-radius: var(--bw-radius);
}
button:disabled { cursor: default; }
.hero-statement h1, .about-hero h1, .start-here-hero h1,
.reading-lists-hero h1, .limited-editions-intro h1 {
  font-size: clamp(30px,4.2vw,54px); font-weight: normal; letter-spacing: -.035em;
  line-height: 1.16; max-width: 850px; margin-inline: auto;
}
.works-header h2, .contact-wrap h2, .start-here-wrap h2,
.limited-editions-wrap h2, .reading-lists-wrap h2 {
  font-weight: normal; font-size: clamp(25px,2.7vw,36px); letter-spacing: -.025em;
}
.about-section, .contact-wrap, .start-here-wrap, .limited-editions-wrap,
.reading-lists-wrap, .featured-inner, .footer-content {
  max-width: var(--bw-measure); margin-inline: auto;
}
.about-section { padding-block: clamp(40px,6vw,80px); padding-inline: clamp(20px,4vw,40px); }
.contact-wrap, .start-here-wrap, .limited-editions-wrap, .reading-lists-wrap {
  padding-inline: clamp(20px,4vw,40px);
}
.works-header p, .contact-intro p, .limited-editions-intro p, .reading-lists-hero p {
  max-width: 68ch; margin-inline: auto; line-height: 1.8; color: var(--bw-muted);
}
.series p { line-height: 1.8; }
.work img, .store-product-image img, .series .carousel img {
  object-fit: contain; border-radius: 3px; filter: drop-shadow(0 12px 18px #0005);
  transition: transform .25s ease, filter .25s ease;
}
.series .carousel { aspect-ratio: 2 / 3; max-width: 240px; margin-inline: auto; }
.series .carousel img { width: 100%; height: 100%; }
.work:hover img, .series a:hover .carousel img, .store-product-card:hover .store-product-image img {
  transform: translateY(-4px); filter: drop-shadow(0 16px 22px #0008);
}
.work-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; }
.blackwood-nav .blackwood-nav-link { min-height: 44px; display: inline-flex; align-items: center; }
.blackwood-nav .blackwood-account-link {
  color: var(--bw-gold); border: 1px solid var(--bw-line); border-radius: 30px;
  padding: 8px 14px; white-space: nowrap;
}
.blackwood-nav a[aria-current=page] { color: var(--bw-gold); text-decoration: underline; text-underline-offset: 7px; }
.blackwood-dropdown { border-radius: var(--bw-radius); box-shadow: 0 16px 40px #0006; }
.footer { border-top: 1px solid var(--bw-line); }
.footer-title { color: var(--bw-ink); letter-spacing: .035em; }
.footer-heading { color: var(--bw-gold); font: 11px/1.5 Arial,sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.footer-col a { display: inline-flex; align-items: center; min-height: 36px; line-height: 1.5; }
.footer-bottom { gap: 20px; line-height: 1.7; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
@media(max-width:1024px) {
  .hero { height:auto; min-height:100svh; }
  .hero .blackwood-nav-item.is-open { flex-basis:100%; }
  .hero .blackwood-dropdown {
    display:none; position:static; width:100%; min-width:0; max-width:100%;
    margin:8px 0; transform:none !important;
    opacity:1; visibility:visible; pointer-events:auto;
  }
  .hero .blackwood-nav-item.is-open > .blackwood-dropdown { display:block; }
}
@media(max-width:600px) {
  .button { --bw-button-tracking: .08em; font-size: 11px; letter-spacing: var(--bw-button-tracking); }
  .work-actions .button { flex: 0 1 auto; width:100%; }
  .footer-top { gap: 32px; }
  .footer-links { flex-wrap: wrap; gap: 28px; }
  .footer-col { min-width: 130px; }
  .footer-bottom { flex-direction: column; text-align: center; }
  .store-product-image img { object-fit: contain; }
}
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Shared public-page scale, including specialised heroes with legacy overrides. */
body.sub-page .about-hero-content { min-width:0; max-width:100%; }
body.sub-page .about-hero h1,
body.submissions-page .submissions-hero h1 {
  font-size:clamp(30px,4.2vw,54px); font-weight:400; line-height:1.16;
  letter-spacing:-.035em; overflow-wrap:break-word;
}
body.sub-page .book-feature-content h2 { font-size:clamp(28px,3.4vw,42px); line-height:1.2; letter-spacing:-.025em; }
.work-actions .button { margin-top:0; }
.footer-archive-form :is(input,button) { min-height:46px; }
.footer-archive-form { gap:10px; }
body.author-desk-page { --bw-focus:#244b3d; --bw-placeholder:#68736c; }
body .circle-auth-tab,body .circle-button,body #hashtag { min-height:44px; }
body #hashtag { padding:10px 14px; line-height:1.5; border-radius:var(--bw-radius); }

/* These store rules intentionally supersede the old 8px / 30px overrides. */
body.store-page .store-filter-button,
body.store-page .store-offer-banner .button,
body.store-page .blackwood-circle-promo-button,
body.store-page .shopify-buy__btn,
body.store-page .shopify-buy__cart-toggle,
body.store-page .shopify-buy__quantity-increment,
body.store-page .shopify-buy__quantity-decrement {
  min-height:44px !important; font-size:11px !important; line-height:1.5 !important;
  padding:10px 14px !important; letter-spacing:.08em !important;
  white-space:normal !important; max-width:100%;
}
body.store-page .store-search-wrap input { min-height:46px !important; font-size:16px !important; }
body.store-page .shopify-buy__quantity { min-height:44px !important; height:44px !important; font-size:16px !important; }

@media(max-width:1024px) {
  .footer-col a { min-height:44px; }
  html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  body:not(.bp-reading-page) input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),
  body:not(.bp-reading-page) select,
  body:not(.bp-reading-page) textarea { font-size:16px; }
  .footer-archive-form input { font-size:16px; }
  body .simple-header .blackwood-nav-link { letter-spacing:.08em; }
  body .simple-header .blackwood-dropdown a { min-height:44px; }
}
@media(max-width:760px) {
  .footer-col a { min-height:44px; }
  .footer-archive-form { flex-wrap:wrap; }
  .footer-archive-form :is(input,button) { min-width:0; max-width:100%; }
  body.sub-page .about-hero-content { width:100%; padding-inline:var(--bw-gutter); }
  .hero-statement .cta,.work-actions { gap:12px; }
  .contact-form :is(input,select,textarea) { width:100%; min-width:0; }
  .contact-form textarea { min-height:160px; resize:vertical; }
}
@media(hover:none) {
  .button:hover { transform:none; }
  .work:hover img,.series a:hover .carousel img,.store-product-card:hover .store-product-image img { transform:none; }
}

.footer-legal a { display:inline-flex; align-items:center; min-height:44px; padding:4px 6px; }

/* Content is available before JavaScript; reveal effects are optional enhancement. */
.fade-in,.work { opacity:1; transform:none; }
.bw-reveal-pending:not(.visible) { opacity:0; transform:translateY(16px); }
.bw-reveal-pending,.bw-reveal-pending.visible { transition:opacity .35s ease,transform .35s ease; }
@media(max-width:1024px),(hover:none),(prefers-reduced-motion:reduce) {
 .fade-in,.work,.bw-reveal-pending { opacity:1!important; transform:none!important; transition:none!important; transition-delay:0ms!important; }
}

/* Standard 3D mockups have transparent landscape padding around the book. */
.series .carousel img.book-mockup { object-fit:cover; }

/* Explicit newsletter consent and accessible privacy controls. */
.footer-ml-form .footer-mail-consent { display:flex; flex:1 0 100%; align-items:flex-start; gap:12px; text-align:left; white-space:normal; font:14px/1.6 Arial,sans-serif; color:#cfc5b6; }
.footer-ml-form .footer-mail-consent input { flex:0 0 22px; width:22px; height:22px; min-height:22px!important; margin:2px 0 0; accent-color:#caa56c; }
.footer-ml-form { flex-wrap:wrap; }
.footer-privacy-settings { background:transparent; border:1px solid #75654b; color:#e5d6c2; border-radius:6px; padding:10px 14px; min-height:44px; font:14px/1.5 Arial,sans-serif; text-align:left; cursor:pointer; }
.footer-privacy-settings:focus-visible { outline:3px solid #e5c38c; outline-offset:3px; }

/* Shared footer: balanced link groups, clear signup, one legal row. */
.footer { width:100%; left:auto; transform:none; padding:40px var(--bw-gutter) 24px; }
.footer .footer-content { max-width:var(--bw-measure); padding:0; }
.footer .footer-top { display:block; }
.footer .footer-brand { display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:none; width:100%; margin:0 0 26px; padding:0 0 24px; border-bottom:1px solid var(--bw-line); text-align:left; }
.footer .footer-title { margin:0 0 4px; font:400 clamp(20px,2.2vw,26px)/1.3 Georgia,serif; font-variant:normal; text-transform:none; letter-spacing:0; color:var(--bw-ink); }
.footer .footer-sub { margin:0; font:13px/1.6 var(--bw-font-ui); color:var(--bw-muted); opacity:1; }
.footer .footer-seal { width:48px; height:48px; flex-shrink:0; margin:0; opacity:.55; object-fit:contain; filter:none; transform:none; }
.footer .footer-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; width:100%; justify-self:stretch; }
.footer .footer-col { min-width:0; align-items:flex-start; gap:0; text-align:left; letter-spacing:0; }
.footer .footer-heading { margin:0 0 12px; font:700 11px/1.5 var(--bw-font-ui); letter-spacing:.14em; opacity:1; }
.footer .footer-col a { display:flex; align-items:center; min-height:44px; width:fit-content; max-width:100%; padding:7px 0; font:14px/1.5 var(--bw-font-ui); letter-spacing:0; color:#d3ccbf; opacity:1; text-decoration:none; }
.footer .footer-col a::after,.footer .footer-legal a::after { display:none; }
.footer .footer-col a:hover,.footer .footer-legal a:hover { color:var(--bw-gold); text-decoration:underline; text-underline-offset:4px; transform:none; }
.footer .footer-archive-signup { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:28px 48px; align-items:start; width:100%; max-width:none; margin:32px 0 0; padding:28px 0; border-top:1px solid var(--bw-line); border-bottom:1px solid var(--bw-line); background:none; text-align:left; }
.footer .footer-archive-kicker { margin:0 0 10px; font:700 11px/1.5 var(--bw-font-ui); letter-spacing:.14em; color:var(--bw-gold); opacity:1; }
.footer .footer-archive-signup h2 { margin:0 0 12px; font:400 clamp(23px,2.8vw,30px)/1.25 Georgia,serif; letter-spacing:-.02em; text-transform:none; }
.footer .footer-archive-signup p:not(.footer-archive-kicker) { max-width:50ch; margin:0 0 12px; font:14px/1.65 var(--bw-font-ui); color:var(--bw-muted); }
.footer .footer-ml-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; width:100%; margin:0 0 14px; border:0; }
.footer .footer-ml-form input[type=email] { width:100%; min-width:0; min-height:48px; padding:11px 14px; border:1px solid #8f795a; border-radius:7px; background:#121710; color:var(--bw-ink); font:16px/1.5 var(--bw-font-ui); }
.footer .footer-ml-form button { min-height:48px; padding:10px 16px; border:1px solid #c2a273; border-radius:7px; background:#d4b88b; color:#191b15; font:600 14px/1.5 var(--bw-font-ui); letter-spacing:0; text-transform:none; white-space:normal; transform:none; }
.footer .footer-mail-consent { grid-column:1/-1; margin:2px 0 0; font:13px/1.6 var(--bw-font-ui); }
.footer .footer-archive-signup .footer-archive-note,.footer .footer-archive-signup .footer-newsletter-help { font-size:12px; }
.footer .footer-newsletter-help a { display:inline-flex; align-items:center; min-height:44px; color:var(--bw-gold); text-underline-offset:4px; }
.footer .footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 24px; margin:0; padding-top:18px; text-align:left; opacity:1; }
.footer .footer-bottom > p { margin:0; font:12px/1.7 var(--bw-font-ui); color:var(--bw-muted); }
.footer .footer-legal { display:flex; flex-wrap:wrap; align-items:center; gap:4px 18px; text-align:left; opacity:1; }
.footer .footer-legal a { display:inline-flex; align-items:center; min-height:44px; color:#c9c0b1; font:13px/1.5 var(--bw-font-ui); }
.footer .footer-privacy-settings { font-size:13px; padding:9px 12px; }
@media(max-width:700px) {
 .footer .footer-archive-signup { grid-template-columns:1fr; gap:16px; }
 .footer .footer-links { gap:20px; }
 .footer .footer-col a { font-size:13px; }
 .footer .footer-bottom { align-items:flex-start; }
}
@media(max-width:480px) {
 .footer { padding-inline:20px; }
 .footer .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 18px; }
 .footer .footer-col:last-child { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:18px; }
 .footer .footer-col:last-child .footer-heading { grid-column:1/-1; }
 .footer .footer-ml-form { grid-template-columns:1fr; }
 .footer .footer-ml-form button { grid-row:3; }
 .footer .footer-mail-consent { grid-row:2; }
 .footer .footer-brand { gap:16px; }
}
/* Override legacy phone centring so the footer keeps one consistent alignment. */
.footer .footer-brand { flex-direction:row; }
.footer .footer-brand > div { min-width:0; }
.footer .footer-seal { display:block; }
.footer .footer-archive-signup p:not(.footer-archive-kicker),.footer .footer-ml-form input[type=email] { text-align:left; }
.footer .footer-bottom { flex-direction:row; }
.footer .footer-legal { justify-content:flex-start; margin:0; }
