/*
Theme Name:     Arvind Prakashan Catalog & Store
Theme URI:      https://arvindprakashan.com
Description:    Storefront child theme for Arvind Prakashan and its imprints. Catalog or store, switched from Directus (global.store_mode). Colours, imprints, homepage and store rules all come from Directus via n8n.
Author:         Arvind Prakashan
Version:        4.9.2
Template:       storefront
Requires PHP:   8.1
Text Domain:    arvind-theme
*/

/* ============================================================
   4.0 (spec docs/specs/2026-09-theme-4-store-design.md, canvas "Arvind Prakashan Store 4.0")
   DESIGN TOKENS — brand colours are overridden at runtime from Directus global.theme_*
   (functions.php → arvind_dynamic_css). Imprint colours come from ap_imprints; division
   colours from ap_divisions.accent_color when B pushes it, else the fallback palette in PHP.
   ============================================================ */

:root {
  --ap: #DC2626;            /* primary (Directus theme_primary): the one action colour */
  --ap-dk: #991B1B;
  --ap-soft: #FEE2E2;
  --acc: #F59E0B;           /* accent (Directus theme_accent): editorial badges */
  --acc-soft: #FEF3C7;
  --bl: #1565C0;            /* legacy; 4.7.1: imprint fallbacks use --ink / --border, never this */
  --ok: #15803D; --ok-soft: #DCFCE7;
  --warn: #B45309;
  --bad: #B91C1C; --bad-soft: #FEE2E2;
  --info: #3730A3;
  --sun: #FCD34D;           /* 4.7.2 About band (owner: Sunshine); becomes a Directus site_theme field in 4.8 */
  --sun-line: #E7B52C;
  --sun-muted: #6B4E0E;     /* 5.4:1 on --sun */

  --bg: #F6F2EA;            /* Directus theme_background: warm paper */
  --surface: #FFFFFF;
  --surface-alt: #FBFAF7;
  --surface-warm: #EFE9DD;
  --border: #E7DFD1;
  --border-soft: #F0EAE0;
  --field: #D9CFBF;

  --ink: #1B1712;           /* Directus theme_ink */
  --ink-soft: #4A433B;
  --ink-muted: #6B635A;     /* 5.3:1 on paper, 4.9:1 on the warm surface at 12 px (Lighthouse 2026-10-03; #7A7167 was 4.3:1) */

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --shadow-sm: 0 1px 2px rgba(27,23,18,0.06);
  --shadow-md: 0 6px 16px rgba(27,23,18,0.10);
  --shadow-cover: 0 10px 24px rgba(27,23,18,0.16);
  --transition: 0.18s ease;

  --font-body: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-mono: 'IBM Plex Mono', 'SF Mono', Menlo, monospace;
  --measure: 1200px;
}

/* ============================================================
   GLOBAL
   ============================================================ */

html { -webkit-text-size-adjust: 100%; }
body { font-family: var(--font-body); color: var(--ink); background: var(--bg); font-size: var(--fs-body, 15px); line-height: 1.5; }
h1, h2, h3, h4, h5, h6, .font-display { font-family: var(--font-display); color: var(--ink); font-weight: var(--h-weight, 500); letter-spacing: -0.01em; }
a { color: var(--ink); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--ap-dk); }
img { max-width: 100%; height: auto; }
.mono { font-family: var(--font-mono); }
.ap-muted { color: var(--ink-muted); font-size: 14px; }
.ap-k { font-size: 12px; color: var(--ink-muted); }
.ap-intro { max-width: 720px; color: var(--ink-soft); margin: -8px 0 24px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.site-header { background: transparent !important; box-shadow: none !important; padding: 0 !important; }
.storefront-handheld-footer-bar, .site-search, .storefront-breadcrumb { display: none !important; }
.col-full { max-width: none; padding: 0; }
.storefront-primary-navigation { display: none; }

/* ============================================================
   BUTTONS · CHIPS · FIELDS · NOTICES (system sheet)
   ============================================================ */

.btn, .ap-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 22px; border-radius: var(--btn-radius, var(--radius-md)); font-family: var(--font-body); font-size: 15px; font-weight: 600; line-height: 1; text-decoration: none; cursor: pointer; border: 1px solid transparent; background: var(--surface); color: var(--ink); transition: all var(--transition); white-space: nowrap; }
.btn-primary { background: var(--ap); color: #fff; }
.btn-primary:hover { background: var(--ap-dk); color: #fff; }
.btn-secondary { border-color: var(--field); }
.btn-secondary:hover { border-color: var(--ink); color: var(--ink); }
.btn-ghost { background: transparent; padding: 0; }
.btn-ghost:hover { color: var(--ap-dk); }
.btn-dark { background: var(--ink); color: #fff; }
.btn-dark:hover { background: #000; color: #fff; }
.btn-sm { height: 38px; padding: 0 14px; font-size: 14px; border-radius: var(--btn-radius, 8px); }
.btn[disabled], .btn.is-disabled { background: var(--surface-warm); color: var(--ink-muted); cursor: default; }

.ap-chip { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 500; background: var(--surface-warm); color: var(--ink-soft); white-space: nowrap; }
.ap-chip-solid { color: #fff; }
.ap-chip-ink { background: var(--ink); color: #fff; }
.ap-badge-new { background: var(--ok-soft); color: #166534; }
.ap-badge-sale { background: var(--bad-soft); color: #991B1B; }
.ap-badge-pick { background: var(--acc-soft); color: #92400E; }

/* WooCommerce buttons inherit the system */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .wc-block-components-button,
.woocommerce #payment #place_order, .woocommerce-page #payment #place_order {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 22px !important;
  background-color: var(--ap) !important; color: #fff !important; border: 0 !important; border-radius: var(--btn-radius, var(--radius-md)) !important;
  font-family: var(--font-body) !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1 !important; text-decoration: none !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce button.button.alt:hover, .woocommerce #payment #place_order:hover { background-color: var(--ap-dk) !important; }
.woocommerce a.button.disabled, .woocommerce button.button:disabled { background: var(--surface-warm) !important; color: var(--ink-muted) !important; }

/* Fields (cascades into cart, checkout and account until 4.1 restyles them fully) */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .quantity .qty, .woocommerce-cart table.cart td.actions .coupon .input-text, .woocommerce-ordering select,
.ap-field { height: 48px; padding: 0 14px; border: 1px solid var(--field); border-radius: var(--radius-md); background: var(--surface); color: var(--ink); font: inherit; font-size: 15px; box-shadow: none; }
.woocommerce form .form-row textarea { height: auto; min-height: 96px; padding: 12px 14px; }
.woocommerce form .form-row label { font-size: 13px; font-weight: 600; color: var(--ink-soft); }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .ap-field:focus { outline: 2px solid var(--ink); outline-offset: 0; border-color: var(--ink); }
.select2-container--default .select2-selection--single { height: 48px !important; border: 1px solid var(--field) !important; border-radius: var(--radius-md) !important; display: flex; align-items: center; }

/* Quiet notices replace Storefront's full-width green and blue bars */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments, .wc-block-components-notice-banner {
  background: var(--surface) !important; color: var(--ink) !important; border: 1px solid var(--border) !important; border-left: 4px solid var(--ok) !important;
  border-radius: var(--radius-md) !important; padding: 14px 16px 14px 48px !important; margin: 0 0 16px !important; font-size: 15px; box-shadow: none !important;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { color: var(--ok) !important; top: 14px !important; left: 16px !important; }
.woocommerce-info { border-left-color: var(--info) !important; } .woocommerce-info::before { color: var(--info) !important; }
.woocommerce-error { border-left-color: var(--bad) !important; } .woocommerce-error::before { color: var(--bad) !important; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button { height: 38px; padding: 0 14px !important; font-size: 14px !important; background: transparent !important; color: var(--ink) !important; border: 1px solid var(--field) !important; }
.woocommerce-error li { margin: 0; }

/* ============================================================
   HEADER
   ============================================================ */

.ap-announcement { background: var(--ann-bg, var(--ink)); color: var(--ann-fg, #fff); text-align: center; font-size: 13px; padding: 8px 16px; }
.ap-topbar { background: var(--bg); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 100; }
.ap-topbar-inner { max-width: var(--measure); margin: 0 auto; padding: 0 24px; height: 72px; display: flex; align-items: center; gap: 28px; }
.ap-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; font-family: var(--font-display); font-size: 19px; font-weight: 600; color: var(--ink); flex-shrink: 0; }
.ap-logo:hover { color: var(--ink); }
.ap-logo-mark { width: 36px; height: 36px; border-radius: 8px; background: var(--ap); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-display); font-weight: 600; font-size: 16px; letter-spacing: 0; flex-shrink: 0; }
.ap-logo-img { height: 40px; width: auto; max-width: 180px; display: block; object-fit: contain; }
.ap-logo.has-image { font-size: 0; }

.ap-nav { display: flex; align-items: center; gap: 24px; font-size: 14px; font-weight: 500; }
.ap-nav a { color: var(--ink); text-decoration: none; padding: 6px 0; border-bottom: 2px solid transparent; }
.ap-nav a:hover { color: var(--ap-dk); }
.ap-nav a.is-active { border-bottom-color: var(--ink); }

.ap-search { margin: 0 0 0 auto; display: flex; align-items: center; gap: 8px; width: 320px; height: 42px; border: 1px solid var(--field); border-radius: var(--radius-md); background: var(--surface); padding: 0 12px; box-sizing: border-box; }
.ap-search:focus-within { border-color: var(--ink); }
.ap-search svg { flex-shrink: 0; color: var(--ink-muted); }
.ap-search input { border: 0; outline: 0; box-shadow: none; -webkit-appearance: none; appearance: none; flex: 1; min-width: 0; font: inherit; font-size: 14px; background: transparent; color: var(--ink); padding: 0; height: auto; } /* 4.5.3: Storefront gives every form margin-bottom 1.618em (pushed the box 12px up) and inputs an inset shadow (the line inside the box) */
.ap-search input::placeholder { color: var(--ink-muted); }
.ap-icons { display: flex; align-items: center; gap: 2px; }
.ap-icon-link { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; color: var(--ink); position: relative; border-radius: var(--radius-md); }
.ap-icon-link:hover { background: var(--surface-warm); color: var(--ink); }
.ap-search-icon { display: none; }
.ap-cart-count { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; border-radius: 999px; background: var(--ap); color: #fff; font-size: 11px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.ap-cart-count.is-empty { display: none; }
.ap-mobile-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 6px; color: var(--ink); }

@media (max-width: 1024px) {
  .ap-search { width: 220px; }
  .ap-nav { gap: 18px; }
}
@media (max-width: 860px) {
  .ap-topbar-inner { height: 64px; gap: 8px; padding: 0 16px; }
  .ap-search { display: none; }
  .ap-search-icon { display: inline-flex; }
  .ap-icons { margin-left: auto; }
  .ap-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--surface); flex-direction: column; align-items: stretch; padding: 8px 16px 16px; box-shadow: var(--shadow-md); gap: 0; border-bottom: 1px solid var(--border); }
  .ap-nav.is-open { display: flex; }
  .ap-nav a { padding: 14px 0; border-bottom: 1px solid var(--border-soft); font-size: 16px; }
  .ap-nav a:last-child { border-bottom: 0; }
  .ap-nav a.is-active { border-bottom-color: var(--border-soft); color: var(--ap-dk); }
  .ap-mobile-toggle { display: inline-flex; order: -1; }
  .ap-logo-img { height: 34px; max-width: 150px; }
}

/* ============================================================
   SECTIONS · GRIDS
   ============================================================ */

.ap-page { background: var(--bg); }
.ap-section { max-width: var(--measure); margin: 0 auto; padding: var(--section-pad, 40px) 24px; }
.ap-section-tight { padding-top: 0; }
.ap-section-header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.ap-section-title { font-size: 30px; margin: 0; line-height: 1.1; }
.ap-section-eyebrow { display: block; font-family: var(--font-body); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-muted); margin-bottom: 6px; }
.ap-section-cta { font-size: 15px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.ap-section-cta:hover { color: var(--ap-dk); }

.ap-grid { display: grid; gap: 20px; }
.ap-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ap-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ap-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ap-grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1024px) { .ap-grid-6, .ap-grid-5 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .ap-grid-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 768px)  { .ap-section { padding: 28px 16px; } .ap-section-title { font-size: 24px; } .ap-grid { gap: 12px; } .ap-grid-6, .ap-grid-5, .ap-grid-4, .ap-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ============================================================
   HERO (home) · DOORS · IMPRINT ROW
   ============================================================ */

.ap-hero { background: var(--bg); padding: 64px 24px 24px; }
.ap-hero-inner { max-width: var(--measure); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 48px; align-items: center; }
.ap-hero-text { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.ap-eyebrow { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; background: var(--surface-warm); color: var(--ink-soft); font-size: 12px; font-weight: 500; }
.ap-hero h1 { font-size: 56px; line-height: 1.04; margin: 0; max-width: 640px; }
.ap-hero p { color: var(--ink-soft); font-size: 18px; margin: 0; max-width: 560px; }
.ap-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.ap-hero-stack { display: flex; gap: 14px; align-items: flex-end; justify-content: flex-end; }
.ap-hero-stack .ap-cover { width: 120px; aspect-ratio: 3/4; border-radius: var(--radius-sm); box-shadow: var(--shadow-cover); display: block; overflow: hidden; }
.ap-hero-stack .ap-cover:nth-child(2) { width: 136px; transform: translateY(-14px); }
.ap-hero-stack .ap-cover-generated .ttl { font-size: 14px; -webkit-line-clamp: 4; }
.ap-hero-stack .ap-cover-generated .pub { font-size: 7px; }
@media (max-width: 900px) {
  .ap-hero { padding: 40px 16px 16px; }
  .ap-hero-inner { grid-template-columns: 1fr; gap: 28px; }
  .ap-hero h1 { font-size: 36px; }
  .ap-hero p { font-size: 16px; }
  .ap-hero-stack { justify-content: center; }
  .ap-hero-stack .ap-cover { width: 96px; }
  .ap-hero-stack .ap-cover:nth-child(2) { width: 108px; }
}

.ap-doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ap-doors.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ap-door { background: var(--surface); border: 1px solid var(--border); border-top: 4px solid var(--door, var(--ink)); border-radius: var(--radius-lg); padding: 32px; display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--ink); transition: box-shadow var(--transition), transform var(--transition); }
.ap-door:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); color: var(--ink); }
.ap-door .ap-chip { align-self: flex-start; }
.ap-door h2 { font-size: 28px; margin: 0; line-height: 1.1; }
.ap-door p { margin: 0; color: var(--ink-soft); }
.ap-door .ap-door-cta { font-weight: 600; margin-top: 6px; }
@media (max-width: 768px) { .ap-doors, .ap-doors.is-3 { grid-template-columns: 1fr; } .ap-door { padding: 22px; } .ap-door h2 { font-size: 22px; } }

.ap-imprint-row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 14px; }
.ap-imprint-tile { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px 14px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; text-decoration: none; color: var(--ink); transition: box-shadow var(--transition); min-width: 0; }
.ap-imprint-tile:hover { box-shadow: var(--shadow-md); color: var(--ink); }
.ap-imprint-dot { width: 12px; height: 12px; border-radius: 3px; background: var(--imprint-color, var(--ink-muted)); }
.ap-imprint-tile img { height: 28px; width: auto; max-width: 100%; object-fit: contain; object-position: left; }
.ap-imprint-tile-name { font-weight: 600; font-size: 14px; line-height: 1.25; }
@media (max-width: 1024px) { .ap-imprint-row { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ap-imprint-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ============================================================
   PRODUCT CARDS
   ============================================================ */

.ap-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px; display: flex; flex-direction: column; gap: 8px; transition: box-shadow var(--transition); min-width: 0; box-shadow: var(--card-shadow, none); }
.ap-card:hover { box-shadow: var(--card-shadow-hover, var(--shadow-md)); }
.ap-card-link { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: inherit; flex: 1; min-width: 0; }
.ap-card-link:hover { color: inherit; }

.ap-cover { width: 100%; aspect-ratio: 3/4; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--surface-warm); border-radius: var(--radius-sm); box-shadow: var(--shadow-cover); transition: transform var(--transition); }
.ap-card:hover .ap-cover { transform: translateY(-2px); }
.ap-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ap-cover-large { border-radius: var(--radius-sm); box-shadow: var(--shadow-cover); }
/* Generated cover: imprint colour, imprint name in small caps, title in the display face, class chip. Fallback only. */
.ap-cover-generated { --cover-bg: var(--ink); width: 100%; height: 100%; display: flex; flex-direction: column; text-align: left; padding: 14px; box-sizing: border-box; color: #fff; background: var(--cover-bg); background-image: linear-gradient(160deg, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 45%, rgba(0,0,0,0.20) 100%); position: relative; overflow: hidden; }
.ap-cover-generated::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: linear-gradient(90deg, rgba(0,0,0,0.30), rgba(0,0,0,0.06)); }
.ap-cover-generated .pub { font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; opacity: 0.85; padding-left: 6px; }
.ap-cover-generated .ttl-wrap { margin-top: auto; padding-left: 6px; }
.ap-cover-generated .rule { display: none; }
.ap-cover-generated .ttl { font-family: var(--font-display); font-size: 16px; font-weight: 500; margin: 0; line-height: 1.15; letter-spacing: -0.01em; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: normal; hyphens: manual; }
.ap-cover-generated .ttl-large { font-size: 30px; }
.ap-cover-generated .sub { margin-top: 6px; font-size: 11px; opacity: 0.85; }
.ap-cover-generated .cls { position: absolute; bottom: 12px; right: 12px; background: rgba(255,255,255,0.92); color: var(--cover-bg); padding: 3px 8px; border-radius: 3px; font-size: 10px; font-weight: 700; }
.ap-cover-badge { position: absolute; top: 8px; left: 8px; background: var(--acc); color: #78350F; font-size: 10px; font-weight: 600; padding: 3px 8px; border-radius: 3px; }
.ap-cover-badge.ap-badge-sale { left: auto; right: 8px; background: var(--ap); color: #fff; }

.ap-card-badges { display: flex; gap: 6px; flex-wrap: wrap; min-height: 26px; }
.ap-badge { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 500; background: var(--surface-warm); color: var(--ink-soft); }
.ap-badge-primary { background: var(--ink); color: #fff; }
.ap-badge-blue { color: #fff; }
.ap-badge-soft { background: var(--surface-warm); color: var(--ink-soft); }
.ap-card-title { font-family: var(--font-display); font-size: 17px; font-weight: 500; color: var(--ink); margin: 0; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ap-card-link:hover .ap-card-title { color: var(--ap-dk); }
.ap-card-meta { font-size: 12px; color: var(--ink-muted); margin: 0; }
.ap-card-isbn { font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); margin: 0; letter-spacing: -0.04em; }
.ap-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 4px; min-height: 38px; }
.ap-card-price { font-size: 17px; color: var(--ink); font-weight: 600; margin: 0; }
.ap-card-price .ap-price-label { font-size: 11px; color: var(--ink-muted); font-weight: 500; margin-right: 4px; }
.ap-card-price del { color: var(--ink-muted); font-weight: 400; font-size: 13px; margin-right: 4px; }
.ap-card-price ins { text-decoration: none; color: var(--ap-dk); }
.ap-card-stock { font-size: 12px; margin: 0; font-weight: 500; }
.ap-stock-instock { color: var(--ok); }
.ap-stock-onbackorder { color: var(--warn); }
.ap-stock-outofstock { color: var(--bad); }
.ap-card-foot .button { height: 38px !important; padding: 0 14px !important; font-size: 14px !important; border-radius: var(--btn-radius, 8px) !important; margin: 0 !important; }
.ap-card-foot .added_to_cart { font-size: 12px; font-weight: 600; margin-left: 6px; }

/* ============================================================
   SPOTLIGHT · ABOUT BAND (dark) · CONTACT STRIP
   ============================================================ */

.ap-spotlight { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 32px; display: flex; align-items: center; gap: 32px; }
.ap-spotlight-text { flex: 1; }
.ap-spotlight .eyebrow { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-muted); font-weight: 600; }
.ap-spotlight h2 { font-size: 30px; margin: 8px 0 10px; line-height: 1.1; }
.ap-spotlight p { color: var(--ink-soft); margin: 0 0 18px; font-size: 15px; }
.ap-spotlight-cover { flex-shrink: 0; width: 150px; }
.ap-spotlight-cover .ap-cover { display: block; }
@media (max-width: 768px) { .ap-spotlight { flex-direction: column; padding: 20px; gap: 16px; } .ap-spotlight-cover { width: 120px; } }

.ap-about-band { padding-top: 0; }
.ap-about-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: center; background: var(--sun); color: var(--about-fg, var(--ink)); border-radius: var(--radius-lg); padding: 40px; }
.ap-about-grid .ap-section-eyebrow { color: var(--sun-muted); }
.ap-about-title { font-size: 34px; margin: 0 0 12px; line-height: 1.1; color: var(--about-fg, var(--ink)); }
.ap-about-body { color: var(--ink-soft); font-size: 15px; line-height: 1.7; max-width: 620px; }
.ap-about-body p { margin: 0 0 12px; }
.ap-about-grid .ap-section-cta { color: var(--about-fg, var(--ink)); }
.ap-about-grid .ap-about-body { color: var(--about-fg, var(--ink-soft)); }
.ap-about-grid .ap-section-cta:hover { color: var(--ap-dk); }
.ap-about-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 0; }
.ap-about-stat { display: flex; flex-direction: column-reverse; background: var(--about-card, var(--surface)); border: 0; border-radius: var(--radius-md); padding: 18px; }
.ap-about-stat dd { font-family: var(--font-display); font-size: 32px; color: var(--about-figure, var(--ap)); margin: 0; line-height: 1.1; }
.ap-about-stat dt { font-size: 12px; color: var(--ink-muted); margin-top: 4px; }
.ap-about-imprints { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin-top: 16px; }
.ap-about-imprints img { height: 26px; width: auto; max-width: 110px; object-fit: contain; filter: grayscale(1) brightness(1.6); opacity: 0.8; }
.ap-about-imprints span { font-size: 12px; color: #C9BFAF; }
@media (max-width: 900px) { .ap-about-grid { grid-template-columns: 1fr; padding: 24px; } .ap-about-title { font-size: 26px; } }

.ap-contact-strip { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px 28px; }
.ap-contact-strip h2 { font-size: 22px; margin: 0 0 4px; }
.ap-contact-strip p { margin: 0; color: var(--ink-soft); }
@media (max-width: 768px) { .ap-contact-strip { flex-direction: column; align-items: flex-start; } }

/* ============================================================
   SINGLE PRODUCT — three columns, sticky buy box
   ============================================================ */

.ap-single { padding-top: 20px; }
.ap-breadcrumb { font-size: 12px; color: var(--ink-muted); margin-bottom: 20px; }
.ap-breadcrumb a { color: var(--ink-muted); }
.ap-breadcrumb .current { color: var(--ink); }
.single-product div.product.ap-product-grid { display: grid; grid-template-columns: 360px minmax(0, 1fr) 320px; gap: 40px; align-items: start; background: transparent; padding: 0; border: 0; box-shadow: none; }
/* Storefront's clearfix (::before/::after, display: table) would become grid items (3.4.3). */
.single-product div.product.ap-product-grid::before, .single-product div.product.ap-product-grid::after { display: none !important; content: none !important; }
/* 4.8.2: Storefront gives .summary 52.94% width and .images 41% + floats (woocommerce.css, >= 768 px); inside the grid every column takes its track. */
.single-product div.product.ap-product-grid > * { width: auto !important; float: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.ap-product-cover-wrap { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 14px; }
.ap-product-cover-wrap .ap-cover { box-shadow: var(--shadow-cover); }
.ap-product-cover-wrap .ap-cover-generated { padding: 28px; }
.ap-gallery-thumbs { display: flex; gap: 10px; flex-wrap: wrap; }
.ap-gallery-thumbs img, .ap-gallery-thumbs a { width: 64px; height: 84px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border); display: block; }
.ap-product-main { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.single-product .ap-card-badges { min-height: 0; }
.single-product .product_title { font-size: 40px; margin: 0; line-height: 1.08; }
.single-product .ap-title-alt { margin: 8px 0 0; font-family: 'Noto Sans Devanagari', 'Nirmala UI', 'Mangal', var(--font-body, sans-serif); font-size: 22px; line-height: 1.35; color: var(--ink-muted); } /* 4.6: Devanagari title under the Roman one */
.single-product .woocommerce-product-details__short-description { color: var(--ink-soft); font-size: 16px; margin: 0; }
.single-product .woocommerce-product-details__short-description p { margin: 0 0 8px; }
.ap-product-facts { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--ink-muted); }
.ap-product-facts .mono { font-size: 12px; }
.ap-description { margin-top: 8px; padding-top: 18px; border-top: 1px solid var(--border); }
.ap-description h2, .ap-description h3 { font-family: var(--font-body); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-soft); margin: 0 0 10px; }
.ap-description div { color: var(--ink-soft); font-size: 15px; line-height: 1.65; }
.ap-description p { margin: 0 0 12px; }
.ap-book-meta { padding-top: 6px; }
.ap-book-meta-title { font-family: var(--font-body); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-soft); margin: 0 0 6px; }
.ap-book-meta table { width: 100%; border-collapse: collapse; }
.ap-book-meta th { text-align: left; padding: 9px 12px 9px 0; color: var(--ink-muted); font-size: 14px; font-weight: 400; width: 140px; border-bottom: 1px solid var(--border-soft); }
.ap-book-meta td { padding: 9px 0; font-size: 14px; color: var(--ink); border-bottom: 1px solid var(--border-soft); }
.ap-book-meta .isbn-val { font-family: var(--font-mono); font-size: 13px; letter-spacing: -0.04em; }

.ap-buybox { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px; display: flex; flex-direction: column; gap: 14px; position: sticky; top: 96px; }
.ap-buybox .price { font-size: 30px; color: var(--ink); font-weight: 600; margin: 0; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; font-family: var(--font-body); }
.ap-buybox .price .ap-price-label { font-size: 12px; color: var(--ink-muted); font-weight: 400; order: 2; }
.ap-buybox .price del { color: var(--ink-muted); font-weight: 400; font-size: 18px; }
.ap-buybox .price ins { text-decoration: none; color: var(--ap-dk); }
.ap-buybox .price.ap-price-missing { font-size: 18px; color: var(--ink-soft); font-weight: 500; }
.ap-stock { font-size: 14px; font-weight: 500; margin: 0; display: flex; align-items: center; gap: 8px; }
.ap-cta { display: flex; flex-direction: column; gap: 10px; }
.ap-cta form.cart { display: flex; gap: 10px; align-items: center; margin: 0; }
.ap-cta form.cart .quantity { margin: 0; float: none; }
.ap-cta form.cart .quantity .qty { width: 72px; height: 48px; text-align: center; }
.ap-cta form.cart .single_add_to_cart_button { flex: 1; }
.ap-cta .btn { width: 100%; }
.ap-cta-hint { font-size: 12px; color: var(--ink-muted); margin: 0; }
.ap-trust { display: flex; flex-direction: column; gap: 8px; padding-top: 12px; border-top: 1px solid var(--border-soft); }
.ap-trust-row { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--ink-soft); line-height: 1.4; }
.ap-trust-row svg { flex-shrink: 0; width: 18px; height: 18px; margin-top: 1px; }
.ap-channel-links { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; border-top: 1px solid var(--border-soft); font-size: 12px; color: var(--ink-soft); font-weight: 600; }
.ap-channel-links-row { display: flex; flex-wrap: wrap; gap: 8px; }
.ap-channel-links a { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px; border: 1px solid var(--field); border-radius: 8px; background: var(--surface); color: var(--ink); text-decoration: none; font-weight: 600; font-size: 14px; }
.ap-channel-links a:hover { border-color: var(--ink); }
.ap-bulk-link { font-size: 13px; font-weight: 600; color: var(--ink-soft); }
.ap-bulk-link:hover { color: var(--ap-dk); }
.ap-related-title { font-size: 28px; }

@media (max-width: 1100px) {
  .single-product div.product.ap-product-grid { grid-template-columns: 300px minmax(0, 1fr); }
  .ap-buybox { grid-column: 1 / -1; position: static; }
}
@media (max-width: 768px) {
  .single-product div.product.ap-product-grid { grid-template-columns: 1fr; gap: 24px; }
  .ap-product-cover-wrap { max-width: 240px; margin: 0 auto; position: static; }
  .single-product .product_title { font-size: 28px; }
  .ap-buybox { grid-column: auto; }
}

/* ============================================================
   STORE MODE — catalog hides every commerce control.
   ============================================================ */

.ap-mode-catalog .single_add_to_cart_button,
.ap-mode-catalog form.cart,
.ap-mode-catalog .ap-cart-link,
.ap-mode-catalog .ap-account-link,
.ap-mode-catalog .site-header-cart,
.ap-mode-catalog ul.products li.product .button,
.ap-mode-catalog ul.products li.product .add_to_cart_button { display: none !important; }

/* ============================================================
   CATALOGUE / ARCHIVE — filter rail + grid (W-7 drawer kept)
   ============================================================ */

.ap-shop { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; align-items: start; }
/* 4.0.1: the drawer backdrop is the second grid child; at desktop it must not occupy the wide column, and
   Storefront's .widget-area width/float must not shrink the rail (found on staging 2026-09-30: rail 52 px, grid in row 2). */
.ap-filters-backdrop { display: none; }
.ap-shop-sidebar.widget-area, .ap-shop-main { width: auto !important; float: none !important; margin: 0 !important; min-width: 0; }
.ap-shop-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.ap-shop-head .ap-chip { margin-bottom: 8px; }
.ap-shop-title { font-size: 40px; margin: 0 0 4px; line-height: 1.05; }
.ap-shop-count { color: var(--ink-soft); font-size: 15px; }
.ap-shop-desc { color: var(--ink-soft); font-size: 15px; max-width: 640px; margin-top: 8px; }
.ap-shop-desc p { margin: 0; }
.ap-shop-sidebar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; padding-bottom: 8px; }
.ap-shop-sidebar-title { font-family: var(--font-body); font-size: 15px; font-weight: 600; margin: 0; }
.ap-filters-close, .ap-filters-toggle { display: none; }
.ap-filters-toggle { align-items: center; gap: 8px; height: 42px; padding: 0 14px; border: 1px solid var(--field); border-radius: var(--radius-md); background: var(--surface); font: inherit; font-size: 14px; font-weight: 600; color: var(--ink); cursor: pointer; white-space: nowrap; }
.ap-shop-sidebar .widget { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--border); }
.ap-shop-sidebar .widget:last-child { border-bottom: 0; }
.widget-area .widget-title, .widget-area .widgettitle, .ap-shop-sidebar .widget-title { font-family: var(--font-body); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-soft); border: 0; padding: 0; margin: 0 0 10px; display: block; }
.ap-shop-sidebar .widget ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.ap-shop-sidebar .widget li { font-size: 14px; padding: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px; }
.ap-shop-sidebar .widget li a { color: var(--ink); text-decoration: none; flex: 1; display: flex; align-items: center; gap: 10px; min-height: 30px; }
.ap-shop-sidebar .widget_layered_nav li a::before, .ap-shop-sidebar .widget_product_categories li a::before { content: ''; width: 18px; height: 18px; border: 1px solid var(--field); border-radius: 4px; background: var(--surface); flex-shrink: 0; box-sizing: border-box; }
.ap-shop-sidebar .widget li.chosen a::before, .ap-shop-sidebar .widget li.current-cat > a::before { background: var(--ink) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'><path d='m5 12 4 4L19 6'/></svg>") center / 12px no-repeat; border-color: var(--ink); }
.ap-shop-sidebar .widget li.chosen a, .ap-shop-sidebar .widget li.current-cat > a { font-weight: 600; }
.ap-shop-sidebar .widget li .count { color: var(--ink-muted); font-size: 12px; }
.ap-shop-sidebar .widget_layered_nav_filters ul { flex-direction: row; flex-wrap: wrap; gap: 6px; }
.ap-shop-sidebar .widget_layered_nav_filters li { min-height: 0; }
.ap-shop-sidebar .widget_layered_nav_filters li a { display: inline-flex; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--ink); color: #fff !important; font-size: 12px; font-weight: 600 !important; gap: 6px; }
.ap-shop-sidebar .widget_layered_nav_filters li a::before { content: '×'; width: auto; height: auto; border: 0; background: none; color: #fff; }
.ap-shop-sidebar .price_slider_wrapper .ui-slider .ui-slider-range, .ap-shop-sidebar .price_slider_wrapper .ui-slider .ui-slider-handle { background-color: var(--ink) !important; }
.ap-shop-sidebar .price_slider_amount .button { height: 38px !important; padding: 0 14px !important; font-size: 13px !important; background: var(--ink) !important; }
.ap-shop-sidebar .price_slider_amount .price_label { font-size: 13px; color: var(--ink-soft); }
.ap-shop-sidebar .widget_product_categories li.cat-item { display: flex; }
.ap-shop-sidebar .widget_product_categories .children { margin-left: 14px; width: 100%; }
.storefront-sorting { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 16px; flex-wrap: wrap; }
.storefront-sorting .woocommerce-ordering select { height: 38px; padding: 0 10px; border: 1px solid var(--field); border-radius: 8px; font: inherit; font-size: 14px; background: var(--surface); }
.storefront-sorting .woocommerce-result-count, .woocommerce-result-count { margin: 0; color: var(--ink-muted); font-size: 13px; }
.ap-shop ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 20px !important; list-style: none !important; padding: 0 !important; margin: 0 !important; }
.ap-shop ul.products::before, .ap-shop ul.products::after { display: none !important; }
.ap-shop ul.products li.product { width: auto !important; float: none !important; clear: none !important; margin: 0 !important; padding: 0 !important; display: flex; }
.ap-shop ul.products li.product .ap-card { flex: 1; }
.ap-shop .woocommerce-pagination { margin-top: 32px; text-align: center; }
.ap-shop .woocommerce-pagination ul.page-numbers { border: 0; display: inline-flex; gap: 8px; }
.ap-shop .woocommerce-pagination ul.page-numbers li { border: 0; }
.ap-shop .woocommerce-pagination .page-numbers li .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 12px; border: 1px solid var(--field); border-radius: 8px; background: var(--surface); color: var(--ink); font-weight: 600; font-size: 14px; }
.ap-shop .woocommerce-pagination .page-numbers li .page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }
.woocommerce-active-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
@media (max-width: 1200px) { .ap-shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 1024px) {
  .ap-shop { grid-template-columns: 1fr; }
  .ap-filters-toggle { display: inline-flex; }
  .ap-filters-close { display: inline-flex; background: none; border: 0; font-size: 26px; line-height: 1; cursor: pointer; color: var(--ink); padding: 0 4px; }
  .ap-shop-sidebar { position: fixed; top: 0; left: 0; bottom: 0; width: min(320px, 86vw); background: var(--surface); z-index: 1100; padding: 18px 20px 40px; overflow-y: auto; transform: translateX(-104%); transition: transform 0.22s ease; box-shadow: var(--shadow-md); }
  .ap-filters-backdrop { display: block; position: fixed; inset: 0; background: rgba(27,23,18,0.35); z-index: 1090; opacity: 0; pointer-events: none; transition: opacity 0.22s ease; }
  body.ap-filters-open .ap-shop-sidebar { transform: none; }
  body.ap-filters-open .ap-filters-backdrop { opacity: 1; pointer-events: auto; }
  body.ap-filters-open { overflow: hidden; }
  .ap-shop-title { font-size: 30px; }
}
@media (max-width: 768px) { .ap-shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; } .ap-shop-head { flex-direction: column; align-items: flex-start; } .ap-card { padding: 10px; } .ap-card-title { font-size: 15px; } }

/* ============================================================
   CART / CHECKOUT / ORDER RECEIVED / ACCOUNT (4.1, canvas boards 4 to 7)
   WooCommerce templates stay stock; inc/store-pages.php re-arranges hooks.
   ============================================================ */

.ap-store-page { max-width: var(--measure); padding-top: 32px; }
.ap-store-head { margin: 0 0 20px; }
.ap-store-head h1 { font-size: 36px; margin: 0; line-height: 1.05; }
.ap-store-content { max-width: none; }
.woocommerce-checkout .ap-store-head h1 { margin-bottom: 4px; }
.woocommerce table.shop_table { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); border-collapse: separate; border-spacing: 0; margin: 0; }
.woocommerce table.shop_table th { font-size: 12px; font-weight: 600; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color: var(--border-soft); padding: 14px; vertical-align: middle; }
.woocommerce table.shop_table tbody tr:last-child td { border-bottom: 0; }
.ap-checkout-notice { border-left-color: var(--info) !important; }

/* Cart */
.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper, .woocommerce-cart .woocommerce > .woocommerce-message, .woocommerce-cart .woocommerce > .woocommerce-info, .woocommerce-cart .woocommerce > .woocommerce-error, .woocommerce-cart .woocommerce > .cart-empty, .woocommerce-cart .woocommerce > .return-to-shop, .woocommerce-cart .woocommerce > form.woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-cart .cart-collaterals { grid-column: 2; grid-row: 1 / span 3; width: auto !important; position: sticky; top: 96px; }
.woocommerce-cart .cart-collaterals .cross-sells { display: none; }
.woocommerce-cart table.shop_table.cart thead { display: none; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail { width: 88px; padding-right: 0; }
.woocommerce-cart table.shop_table.cart td.product-thumbnail img { width: 72px; height: auto; border-radius: 5px; box-shadow: 0 6px 14px rgba(27,23,18,0.14); display: block; }
.woocommerce-cart table.shop_table.cart td.product-name a { font-family: var(--font-display); font-size: 18px; line-height: 1.2; color: var(--ink); }
.woocommerce-cart table.shop_table.cart td.product-name .variation, .woocommerce-cart table.shop_table.cart td.product-name .backorder_notification { font-size: 12px; color: var(--ink-muted); margin: 4px 0 0; }
.woocommerce-cart table.shop_table.cart td.product-price { display: none; }
.woocommerce-cart table.shop_table.cart td.product-quantity .quantity .qty { width: 72px; height: 44px; text-align: center; }
.woocommerce-cart table.shop_table.cart td.product-subtotal { font-weight: 600; font-size: 17px; text-align: right; white-space: nowrap; }
.woocommerce-cart table.shop_table.cart td.product-remove { width: 40px; text-align: right; }
.woocommerce-cart table.shop_table.cart td.product-remove a.remove { width: 32px; height: 32px; line-height: 30px; border-radius: 999px; color: var(--ink-muted) !important; font-size: 22px; font-weight: 400; background: transparent; }
.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover { background: var(--surface-warm); color: var(--ink) !important; }
.woocommerce-cart table.shop_table.cart td.actions { padding: 14px; background: var(--surface-alt); border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
.woocommerce-cart table.shop_table.cart td.actions .coupon { display: none; }  /* the coupon field is in the summary */
.woocommerce-cart table.shop_table.cart td.actions .button { height: 38px; padding: 0 14px !important; font-size: 14px !important; background: var(--surface) !important; color: var(--ink) !important; border: 1px solid var(--field) !important; float: none !important; }
.woocommerce-cart table.shop_table.cart td.actions .button:disabled { opacity: 0.45; }
.ap-cart-after { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 16px; flex-wrap: wrap; }
.ap-cart-continue { font-weight: 600; }
.woocommerce-cart .cart_totals { width: auto !important; float: none !important; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px; }
.woocommerce-cart .cart_totals h2 { font-size: 22px; margin: 0 0 12px; }
.woocommerce-cart .cart_totals table.shop_table { border: 0; background: transparent; }
.woocommerce-cart .cart_totals table.shop_table th, .woocommerce-cart .cart_totals table.shop_table td { padding: 8px 0; border: 0; font-size: 15px; text-transform: none; letter-spacing: 0; }
.woocommerce-cart .cart_totals table.shop_table th { font-weight: 400; color: var(--ink-soft); }
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; }
.woocommerce-cart .cart_totals tr.order-total th, .woocommerce-cart .cart_totals tr.order-total td { border-top: 1px solid var(--border-soft) !important; padding-top: 14px; font-size: 18px; font-weight: 600; color: var(--ink); }
.woocommerce-cart .cart_totals .woocommerce-shipping-destination, .woocommerce-cart .cart_totals .woocommerce-shipping-calculator { font-size: 12px; color: var(--ink-muted); margin: 4px 0 0; }
.woocommerce-cart .cart_totals ul#shipping_method { margin: 0; padding: 0; }
.woocommerce-cart .cart_totals ul#shipping_method li { margin: 0; font-size: 14px; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 12px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: flex !important; width: 100%; height: 52px; font-size: 16px !important; margin: 0 !important; }
.ap-gst-row td, .ap-gst-row th { color: var(--ink-muted) !important; font-size: 13px !important; }
.ap-nudge-row td { font-size: 12px; color: var(--ink-soft); background: var(--bg); border-radius: 8px; padding: 10px 12px !important; text-align: left !important; }
.ap-nudge-row td a { font-weight: 600; }
.woocommerce-cart .cart-empty, .woocommerce-cart .return-to-shop { text-align: left; }
.woocommerce-cart .return-to-shop a.button { background: var(--ink) !important; }
@media (max-width: 900px) {
  .woocommerce-cart .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-cart .cart-collaterals { grid-column: 1; grid-row: auto; position: static; }
  .woocommerce-cart table.shop_table.cart td.product-subtotal { text-align: left; }
}

/* Checkout: quiet header, three numbered cards on the left, sticky order summary on the right */
.woocommerce-checkout:not(.woocommerce-order-received) .ap-mobile-toggle { display: none !important; }
.ap-checkout-head { margin-left: auto; display: flex; align-items: center; gap: 24px; font-size: 14px; }
.ap-checkout-secure { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-soft); }
.ap-checkout-back { font-weight: 600; }
form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; grid-template-areas: "details review" "payment review"; gap: 28px 48px; align-items: start; }
form.checkout.woocommerce-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
form.checkout.woocommerce-checkout #customer_details { grid-area: details; display: flex; flex-direction: column; gap: 24px; width: auto !important; }
form.checkout.woocommerce-checkout #customer_details .col2-set { width: auto; display: flex; flex-direction: column; gap: 24px; }
form.checkout.woocommerce-checkout #customer_details .col-1, form.checkout.woocommerce-checkout #customer_details .col-2 { width: 100% !important; float: none !important; margin: 0 !important; }
form.checkout.woocommerce-checkout #customer_details .col-2:empty { display: none; }
form.checkout.woocommerce-checkout #order_review_heading { display: none; }
form.checkout.woocommerce-checkout #order_review { grid-area: review; position: sticky; top: 96px; width: auto !important; float: none !important; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px; display: flex; flex-direction: column; gap: 14px; }
form.checkout.woocommerce-checkout #order_review::before { content: 'Your order'; font-family: var(--font-display); font-size: 22px; color: var(--ink); }
form.checkout.woocommerce-checkout .ap-step-payment, form.checkout.woocommerce-checkout #payment { grid-area: payment; }
form.checkout.woocommerce-checkout .ap-step-payment { align-self: end; margin: 0; }
form.checkout.woocommerce-checkout #payment { margin-top: 44px; }
.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; }
.woocommerce-billing-fields > h3, .woocommerce-additional-fields > h3 { display: none; }
.woocommerce-shipping-fields > h3 { font-size: 15px; margin: 0; }
.woocommerce-shipping-fields > h3 label { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 500; font-family: var(--font-body); }
.woocommerce-shipping-fields .shipping_address { margin-top: 16px; }
.ap-step { display: flex; align-items: center; gap: 12px; font-family: var(--font-display); font-size: 20px; margin: 0 0 16px; }
.ap-step-n { width: 28px; height: 28px; border-radius: 999px; background: var(--ink); color: #fff; font-family: var(--font-body); font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
.woocommerce-billing-fields__field-wrapper .ap-step { margin-top: 12px; grid-column: 1 / -1; }
/* 4.1.1: WooCommerce's address-i18n.js re-sorts the rows by its own locale priorities after load (phone to the end,
   PIN after the street). The wrapper is a grid, so CSS order decides what the customer sees, whatever the DOM order. */
#billing_first_name_field, #shipping_first_name_field { order: 10; }
#billing_last_name_field, #shipping_last_name_field { order: 20; }
#billing_phone_field, #shipping_phone_field { order: 30; }
#billing_email_field { order: 40; }
#billing_country_field, #shipping_country_field { order: 45; }
.woocommerce-billing-fields__field-wrapper .ap-step { order: 50; }
#billing_postcode_field, #shipping_postcode_field { order: 60; }
#billing_city_field, #shipping_city_field { order: 70; }
#billing_state_field, #shipping_state_field { order: 80; }
#billing_address_1_field, #shipping_address_1_field { order: 90; }
#billing_address_2_field, #shipping_address_2_field { order: 100; }
.woocommerce-account-fields { order: 110; grid-column: 1 / -1; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.woocommerce form .form-row { width: auto !important; float: none !important; margin: 0 !important; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.woocommerce form .form-row.form-row-wide, .woocommerce form .form-row.notes { grid-column: 1 / -1; }
.woocommerce form .form-row label { margin: 0; line-height: 1.3; }
.woocommerce form .form-row .required { color: var(--bad); text-decoration: none; }
.woocommerce form .form-row .woocommerce-input-wrapper { display: block; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea { width: 100%; box-sizing: border-box; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--bad); box-shadow: none; }
.woocommerce form .form-row.woocommerce-validated input.input-text, .woocommerce form .form-row.woocommerce-validated select { border-color: var(--field); }
#billing_country_field, #shipping_country_field { display: none !important; } /* India only (shipping is IN-only; the select keeps its default value) */
.ap-cover-mini { width: 72px; aspect-ratio: 3/4; display: block; }
.ap-cover-mini .ap-cover-generated { padding: 8px; }
.ap-cover-mini .ap-cover-generated .pub { font-size: 6px; }
.ap-cover-mini .ap-cover-generated .ttl { font-size: 10px; -webkit-line-clamp: 3; }
.ap-cover-mini .ap-cover-generated .ttl-wrap { padding-left: 4px; }
@media (max-width: 768px) {
  .woocommerce-cart table.shop_table.cart td { background: transparent !important; }
  .woocommerce-cart table.shop_table.cart td.product-remove { text-align: left; width: auto; padding-bottom: 0; }
  .woocommerce-cart table.shop_table.cart td.product-thumbnail { width: auto; }
  .woocommerce-cart table.shop_table.cart td.product-name { font-size: 16px; }
}
.woocommerce form .form-row .optional { color: var(--ink-muted); font-weight: 400; font-size: 12px; }
.woocommerce-checkout .woocommerce-account-fields { padding: 0; }
.woocommerce-checkout #payment { background: var(--surface) !important; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0 !important; border: 0 !important; margin: 0 0 16px !important; display: flex; flex-direction: column; gap: 12px; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li { margin: 0; padding: 0 !important; border: 1px solid var(--field); border-radius: var(--radius-lg); background: var(--surface); }
.woocommerce-checkout #payment ul.payment_methods li > label { display: flex !important; align-items: center; gap: 12px; padding: 16px; margin: 0; font-weight: 600; cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods li > input[type=radio] { position: absolute; opacity: 0; }
.woocommerce-checkout #payment ul.payment_methods li > label::before { content: ''; width: 20px; height: 20px; border-radius: 999px; border: 2px solid var(--field); flex-shrink: 0; box-sizing: border-box; }
.woocommerce-checkout #payment ul.payment_methods li > input[type=radio]:checked + label::before { border-color: var(--ink); background: radial-gradient(var(--ink) 45%, transparent 50%); }
.woocommerce-checkout #payment ul.payment_methods li > input[type=radio]:checked + label { color: var(--ink); }
.woocommerce-checkout #payment ul.payment_methods li:has(input[type=radio]:checked) { border-color: var(--ink); background: var(--surface-alt); }
.woocommerce-checkout #payment ul.payment_methods li img { max-height: 24px; margin-left: auto; }
.woocommerce-checkout #payment div.payment_box { background: transparent !important; color: var(--ink-soft) !important; margin: 0 !important; padding: 0 16px 16px 48px !important; font-size: 13px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.payment_box p:last-child { margin: 0; }
.woocommerce-checkout #payment .place-order { padding: 0 !important; display: flex; flex-direction: column; gap: 14px; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p, .woocommerce-checkout #payment .woocommerce-terms-and-conditions-checkbox-text { font-size: 13px; color: var(--ink-soft); }
.woocommerce-checkout #payment .validate-required .woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 10px; }
.woocommerce-checkout #payment .woocommerce-form__input-checkbox { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--ink); }
.woocommerce-checkout #payment #place_order { width: 100%; height: 56px !important; font-size: 17px !important; float: none !important; }
.woocommerce-checkout #order_review table.shop_table { border: 0; background: transparent; }
.woocommerce-checkout #order_review table.shop_table thead { display: none; }
.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { padding: 8px 0; border: 0; font-size: 15px; text-transform: none; letter-spacing: 0; }
.woocommerce-checkout #order_review table.shop_table td.product-name { color: var(--ink); font-weight: 500; font-size: 14px; }
.woocommerce-checkout #order_review table.shop_table td.product-name .product-quantity { font-weight: 400; color: var(--ink-muted); }
.woocommerce-checkout #order_review table.shop_table td.product-total { text-align: right; font-weight: 600; white-space: nowrap; }
.woocommerce-checkout #order_review table.shop_table tfoot th { font-weight: 400; color: var(--ink-soft); }
.woocommerce-checkout #order_review table.shop_table tfoot td { text-align: right; }
.woocommerce-checkout #order_review table.shop_table tfoot tr.cart-subtotal th, .woocommerce-checkout #order_review table.shop_table tfoot tr.cart-subtotal td { border-top: 1px solid var(--border-soft) !important; padding-top: 12px; }
.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th, .woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td { border-top: 1px solid var(--border-soft) !important; padding-top: 12px; font-size: 18px; font-weight: 600; color: var(--ink); }
.woocommerce-checkout #order_review ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce-checkout #order_review ul#shipping_method li { font-size: 14px; margin: 0; }
.ap-coupon { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.ap-coupon .ap-field { height: 44px; }
.ap-coupon .btn { height: 44px; padding: 0 14px; font-size: 14px; }
.ap-coupon-result { grid-column: 1 / -1; }
.ap-coupon-result:empty { display: none; }
.ap-coupon-result .woocommerce-message, .ap-coupon-result .woocommerce-error { margin: 0 !important; font-size: 13px; padding: 10px 12px 10px 40px !important; }
.ap-checkout-trust { display: flex; flex-direction: column; gap: 10px; }
.ap-checkout-trust .ap-trust { padding-top: 0; border-top: 0; }
.ap-checkout-trust .ap-k a { font-weight: 600; }
@media (max-width: 900px) {
  form.checkout.woocommerce-checkout { grid-template-columns: 1fr; grid-template-areas: "review" "details" "payment"; gap: 20px; }
  form.checkout.woocommerce-checkout #order_review { position: static; }
  form.checkout.woocommerce-checkout #payment { margin-top: 0; }
  .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
  .ap-checkout-head { gap: 12px; font-size: 13px; }
}

/* Order received */
.woocommerce-order { display: flex; flex-direction: column; gap: 24px; }
.ap-thanks-head { display: flex; gap: 18px; align-items: center; }
.ap-thanks-icon { width: 56px; height: 56px; border-radius: 999px; background: var(--ok-soft); color: var(--ok); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ap-thanks-head.is-failed .ap-thanks-icon { background: var(--bad-soft); color: var(--bad); }
.ap-thanks-title { font-size: 34px; line-height: 1.05; margin: 0 0 6px; }
.ap-thanks-meta { margin: 0; color: var(--ink-soft); font-size: 14px; }
.ap-timeline { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px 24px 20px; position: relative; }
.ap-timeline::before { content: ''; position: absolute; left: 31px; right: 31px; top: 31px; height: 2px; background: var(--border); }
.ap-timeline-step { display: flex; flex-direction: column; gap: 6px; position: relative; }
.ap-timeline-dot { width: 14px; height: 14px; border-radius: 999px; background: var(--surface); border: 2px solid var(--field); box-sizing: border-box; }
.ap-timeline-step.is-done .ap-timeline-dot { background: var(--ok); border-color: var(--ok); }
.ap-timeline-label { font-weight: 600; font-size: 14px; color: var(--ink-muted); }
.ap-timeline-step.is-done .ap-timeline-label { color: var(--ink); }
.woocommerce-order .woocommerce-notice.woocommerce-thankyou-order-received { font-size: 15px; color: var(--ink-soft); margin: 0; }
.woocommerce-order ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.woocommerce-order ul.woocommerce-order-overview li { float: none !important; width: auto !important; margin: 0 !important; padding: 16px 18px !important; border: 1px solid var(--border) !important; border-radius: var(--radius-md); background: var(--surface); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-muted); display: flex; flex-direction: column; gap: 6px; }
.woocommerce-order ul.woocommerce-order-overview li strong { font-size: 16px; text-transform: none; letter-spacing: 0; color: var(--ink); font-weight: 600; }
.woocommerce-order ul.woocommerce-order-overview li.email { display: none; }
.ap-thanks-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ap-thanks-help { width: 100%; }
.woocommerce-order .woocommerce-order-details__title, .woocommerce-order .woocommerce-column__title, .woocommerce-order .woocommerce-customer-details h2 { font-size: 22px; margin: 8px 0 12px; }
.woocommerce-order table.woocommerce-table--order-details td, .woocommerce-order table.woocommerce-table--order-details th { font-size: 14px; }
.woocommerce-order .woocommerce-customer-details address { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 16px 18px; background: var(--surface); font-style: normal; font-size: 14px; color: var(--ink-soft); }
.woocommerce-order .woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.woocommerce-order .woocommerce-columns--addresses .woocommerce-column { width: auto !important; float: none !important; }
@media (max-width: 768px) {
  .ap-thanks-title { font-size: 26px; }
  .ap-timeline { grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 16px 12px; }
  .ap-timeline::before { left: 19px; right: 19px; top: 23px; }
  .ap-timeline .ap-k { display: none; }
  .ap-timeline-label { font-size: 11px; }
  .woocommerce-order ul.woocommerce-order-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce-order .woocommerce-columns--addresses { grid-template-columns: 1fr; }
}

/* Account */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; align-items: start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: auto !important; float: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border: 0 !important; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: flex; align-items: center; height: 44px; padding: 0 12px; border-radius: var(--radius-md); font-weight: 500; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--surface); border: 1px solid var(--border); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--ink-muted) !important; }
.woocommerce-account .woocommerce-MyAccount-content > h2, .woocommerce-account .woocommerce-MyAccount-content > h3 { font-size: 24px; margin: 0 0 14px; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td, .woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table th { font-size: 14px; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table .woocommerce-orders-table__cell-order-number a { font-family: var(--font-mono); font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table .button { height: 38px; padding: 0 14px !important; font-size: 14px !important; background: var(--ink) !important; }
.woocommerce-account .woocommerce-Address { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 18px 20px; }
.woocommerce-account .woocommerce-Address address { font-style: normal; color: var(--ink-soft); font-size: 14px; }
.woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register { grid-column: 1 / -1; max-width: 480px; background: var(--surface); border: 1px solid var(--border) !important; border-radius: var(--radius-lg) !important; padding: 28px !important; }
.woocommerce-account .u-columns.col2-set { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.woocommerce-account .u-columns.col2-set .col-1, .woocommerce-account .u-columns.col2-set .col-2 { width: auto !important; float: none !important; }
@media (max-width: 900px) {
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 20px; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: row; flex-wrap: wrap; }
  .woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
}

/* ============================================================
   IMPRINT PAGES
   ============================================================ */

.ap-imprint-hero { background: var(--surface); border-radius: var(--radius-lg); padding: 40px 32px; text-align: center; margin: 24px auto; max-width: var(--measure); border: 1px solid var(--border); border-top: 4px solid var(--imprint-color, var(--border)); }
.ap-imprint-hero h1 { font-size: 36px; margin: 12px 0 8px; }
.ap-imprint-hero p, .ap-imprint-description { color: var(--ink-soft); max-width: 720px; margin: 0 auto; }
.ap-imprint-hero img.imprint-logo { max-width: 200px; max-height: 90px; margin: 0 auto 16px; object-fit: contain; }
.ap-imprints-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ap-imprint-card { background: var(--surface); border-radius: var(--radius-lg); padding: 22px 16px; text-align: center; text-decoration: none; border: 1px solid var(--border); border-top: 3px solid var(--imprint-color, var(--border)); transition: all var(--transition); }
.ap-imprint-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.ap-imprint-card-logo { max-height: 48px; max-width: 140px; object-fit: contain; margin: 0 auto 10px; display: block; }
.ap-imprint-card-name { font-size: 15px; font-weight: 600; color: var(--ink); margin: 0 0 4px; }
.ap-imprint-card-count { font-size: 12px; color: var(--ink-muted); margin: 0; }
@media (max-width: 768px) { .ap-imprints-grid { grid-template-columns: repeat(2, 1fr); } }

/* ============================================================
   ABOUT PAGE · CONTACT PAGE · PLAIN PAGES — spec W-4
   ============================================================ */

.ap-page-plain { max-width: 820px; }
.ap-page-content { color: var(--ink-soft); font-size: 16px; line-height: 1.75; }
.ap-page-content > h2:first-child { display: none; }  /* the policy HTML repeats the page title */
.ap-page-content h2 { font-size: 28px; margin: 32px 0 10px; }
.ap-page-content h3 { font-size: 20px; margin: 26px 0 8px; color: var(--ink); }
.ap-page-content p { margin: 0 0 14px; }
.ap-page-content ul, .ap-page-content ol { margin: 0 0 14px 22px; }
.ap-page-content li { margin-bottom: 4px; }
.ap-page-content p > em:only-child { display: block; padding: 10px 14px; background: var(--acc-soft); border-left: 3px solid var(--acc); border-radius: var(--radius-sm); font-style: normal; font-size: 13px; color: #78350F; }
.ap-about-page-head { max-width: 760px; margin-bottom: 24px; }
.ap-about-page-head h1 { font-size: 40px; margin: 4px 0 0; line-height: 1.08; }
.ap-about-page-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 40px; align-items: start; }
.ap-about-page-grid .ap-about-body { color: var(--ink-soft); }
.ap-about-body-full { font-size: 16px; color: var(--ink-soft); }
.ap-about-page-grid .ap-about-stats .ap-about-stat { border-color: var(--border); background: var(--surface); }
.ap-about-page-grid .ap-about-stat dd { color: var(--ink); }
.ap-about-page-grid .ap-about-stat dt { color: var(--ink-muted); }
.ap-about-imprint-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.ap-about-imprint { display: flex; gap: 16px; align-items: flex-start; background: var(--surface); border: 1px solid var(--border); border-left: 3px solid var(--imprint-color, var(--border)); border-radius: var(--radius-md); padding: 16px 18px; text-decoration: none; color: inherit; transition: all var(--transition); }
.ap-about-imprint:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.ap-about-imprint img { width: 72px; height: 48px; object-fit: contain; flex-shrink: 0; }
.ap-about-imprint-name { font-weight: 600; margin: 0 0 4px; color: var(--ink); }
.ap-about-imprint-desc { font-size: 13px; color: var(--ink-soft); }
.ap-contact-grid { display: grid; grid-template-columns: 2fr 3fr; gap: 40px; align-items: start; }
.ap-contact-block { margin-bottom: 22px; }
.ap-contact-block h3 { font-family: var(--font-body); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-muted); margin: 0 0 6px; }
.ap-contact-block p { margin: 0 0 4px; }
.ap-contact-form { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 28px 32px; }
.ap-contact-form h3 { margin-top: 0; font-size: 22px; }
.ap-contact-form .wpcf7-form label { display: block; font-size: 13px; font-weight: 600; color: var(--ink-soft); margin-bottom: 14px; }
.ap-contact-form .wpcf7-form input[type=text], .ap-contact-form .wpcf7-form input[type=email], .ap-contact-form .wpcf7-form input[type=tel], .ap-contact-form .wpcf7-form textarea { width: 100%; height: 48px; padding: 0 14px; border: 1px solid var(--field); border-radius: var(--radius-md); font: inherit; margin-top: 6px; background: var(--surface); }
.ap-contact-form .wpcf7-form textarea { height: auto; min-height: 120px; padding: 12px 14px; }
.ap-contact-form .wpcf7-submit { height: 48px; background: var(--ap); color: #fff; border: 0; border-radius: var(--radius-md); padding: 0 22px; font-weight: 600; font-size: 15px; cursor: pointer; }
.btn-whatsapp { background: #25D366; color: #fff !important; }
.btn-whatsapp svg { width: 18px; height: 18px; fill: currentColor; }
@media (max-width: 900px) { .ap-about-page-grid, .ap-contact-grid, .ap-about-imprint-list { grid-template-columns: 1fr; } .ap-about-page-head h1 { font-size: 30px; } }

/* ============================================================
   EMPTY DIVISION (W-9) — notice from Directus global.empty_division_text
   ============================================================ */

.ap-empty-division { max-width: 640px; padding: 32px 0 48px; }
.ap-empty-division-text { font-size: 18px; line-height: 1.5; color: var(--ink); margin: 0 0 20px; }
.ap-empty-division-label { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-muted); margin: 0 0 8px; }
.ap-empty-division-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ap-empty-division-links a { display: inline-flex; align-items: center; height: 38px; padding: 0 14px; border: 1px solid var(--field); border-radius: 999px; color: var(--ink); text-decoration: none; font-weight: 600; background: var(--surface); }
.ap-empty-division-links a:hover { border-color: var(--ink); }

/* ============================================================
   4.2 — search suggestions · PIN estimate · saved books · recently viewed · availability facet
   ============================================================ */

.ap-search { position: relative; }
.ap-suggest { position: absolute; top: calc(100% + 6px); left: 0; right: 0; min-width: 360px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 6px; z-index: 120; display: flex; flex-direction: column; }
.ap-suggest[hidden] { display: none; }
.ap-suggest-item { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 10px; border-radius: var(--radius-md); color: var(--ink); text-decoration: none; }
.ap-suggest-item:hover, .ap-suggest-item.is-active { background: var(--surface-warm); color: var(--ink); }
.ap-suggest-item img, .ap-suggest-cover { width: 36px; height: 48px; object-fit: cover; border-radius: 3px; display: block; }
.ap-suggest-text { display: flex; flex-direction: column; min-width: 0; }
.ap-suggest-title { font-family: var(--font-display); font-size: 15px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-suggest-meta { font-size: 12px; color: var(--ink-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-suggest-price { font-weight: 600; font-size: 14px; white-space: nowrap; }
.ap-suggest-all { display: block; padding: 10px; margin-top: 4px; border-top: 1px solid var(--border-soft); font-size: 13px; font-weight: 600; color: var(--ink-soft); }
@media (max-width: 860px) { .ap-suggest { min-width: 0; } }

.ap-pin { display: flex; flex-direction: column; gap: 6px; }
.ap-pin .ap-k { font-weight: 600; color: var(--ink-soft); }
.ap-pin-row { display: flex; gap: 8px; }
.ap-pin-row .ap-field { width: 130px; height: 42px; }
.ap-pin-row .btn { height: 42px; }
.ap-pin-result, .ap-pin-note { font-size: 12px; color: var(--ink-muted); margin: 0; min-height: 1em; }
.ap-pin-result.is-ok, .ap-pin-note.is-ok { color: var(--ok); }
.ap-pin-result.is-bad, .ap-pin-note.is-bad { color: var(--bad); }
.ap-pin-note { display: block; margin-top: 4px; }

.ap-card { position: relative; }
.ap-save { position: absolute; top: 20px; right: 20px; width: 34px; height: 34px; border-radius: 999px; border: 0; background: rgba(255,255,255,0.92); color: var(--ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: var(--shadow-sm); padding: 0; z-index: 2; transition: transform var(--transition); }
.ap-save:hover { transform: scale(1.06); }
.ap-save.is-saved { color: var(--ap); }
.ap-save.is-saved svg { fill: var(--ap); }
.ap-save-single { position: absolute; top: 16px; right: 16px; background: var(--surface-warm); box-shadow: none; }
.ap-buybox { position: sticky; }
.ap-buybox .price { padding-right: 44px; }
.ap-saved-count { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.ap-saved-count.is-empty { display: none; }
.ap-panel { position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 94vw); background: var(--bg); z-index: 1200; box-shadow: var(--shadow-md); display: flex; flex-direction: column; }
.ap-panel[hidden] { display: none; }
.ap-panel-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--border); }
.ap-panel-head h2 { font-size: 24px; margin: 0; }
.ap-panel-close { width: 40px; height: 40px; border: 0; background: transparent; font-size: 26px; cursor: pointer; color: var(--ink); border-radius: var(--radius-md); }
.ap-panel-close:hover { background: var(--surface-warm); }
.ap-panel-body { padding: 20px 24px; overflow-y: auto; flex: 1; }
.ap-panel-foot { padding: 14px 24px; border-top: 1px solid var(--border); }
.ap-panel-empty { color: var(--ink-soft); margin: 0; }
.ap-panel-backdrop { position: fixed; inset: 0; background: rgba(27,23,18,0.35); z-index: 1190; }
.ap-panel-backdrop[hidden] { display: none; }
body.ap-panel-open { overflow: hidden; }
.ap-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#ap-recent[hidden] { display: none; }

.ap-widget-availability ul li a::before { content: ''; width: 18px; height: 18px; border: 1px solid var(--field); border-radius: 4px; background: var(--surface); flex-shrink: 0; box-sizing: border-box; }
.ap-widget-availability ul li.chosen a::before { background: var(--ink) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'><path d='m5 12 4 4L19 6'/></svg>") center / 12px no-repeat; border-color: var(--ink); }

/* ============================================================
   FOOTER — four columns on paper
   ============================================================ */

.site-footer { background: var(--footer-bg, var(--bg)) !important; color: var(--footer-fg, var(--ink-soft)) !important; padding: 0 !important; border-top: 1px solid var(--border); margin-top: 24px; }
.site-footer a { color: var(--footer-fg, var(--ink-soft)) !important; text-decoration: none; }
.site-footer a:hover { color: var(--ap-dk) !important; }
.ap-footer { max-width: var(--measure); margin: 0 auto; padding: 40px 24px 28px; display: flex; flex-direction: column; gap: 28px; }
.ap-footer-grid { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)); gap: 24px; font-size: 14px; }
.ap-footer-col { display: flex; flex-direction: column; gap: 2px; }
.ap-footer-col p { margin: 0; }
.ap-footer-col a { line-height: 2; }
.ap-footer-head { font-weight: 600; color: var(--ink) !important; margin-bottom: 6px !important; }
.ap-footer-brand { font-family: var(--font-display); font-size: 19px; font-weight: 600; color: var(--ink) !important; margin-bottom: 8px !important; }
.ap-footer-address { white-space: pre-line; max-width: 260px; }
.ap-footer-since, .ap-footer-note { font-size: 12px; color: var(--ink-muted); }
.ap-footer-text { font-size: 13px; color: var(--ink-muted); margin: 0; }
.ap-footer-bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--border); padding-top: 16px; font-size: 12px; color: var(--ink-muted); }
.site-info { display: none; }
@media (max-width: 900px) { .ap-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ap-footer-grid .ap-footer-col:first-child { grid-column: 1 / -1; } }
@media (max-width: 480px) { .ap-footer-grid { grid-template-columns: 1fr; } }

/* ============================================================
   4.3 — look inside pager · tracking · guest tracking page · invoices · reviews
   ============================================================ */

.ap-gallery-thumbs { display: flex; gap: 10px; flex-wrap: wrap; }
.ap-gallery-thumb, .ap-look-page { border: 0; background: transparent; padding: 0; cursor: pointer; font: inherit; color: inherit; text-align: left; }
.ap-gallery-thumb img { width: 64px; height: 84px; object-fit: cover; border-radius: 6px; border: 1px solid var(--border); display: block; }
.ap-gallery-thumb:hover img, .ap-look-page:hover img { border-color: var(--ink); }
.ap-look-inside { margin-top: 28px; }
.ap-look-inside h3 { font-size: 22px; margin: 0 0 12px; }
.ap-look-strip { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 8px; scroll-snap-type: x proximity; }
.ap-look-page { flex: 0 0 auto; display: flex; flex-direction: column; gap: 6px; scroll-snap-align: start; }
.ap-look-page img { width: 132px; height: 176px; object-fit: cover; border-radius: 6px; border: 1px solid var(--border); box-shadow: var(--shadow-sm); display: block; }
.ap-lightbox { border: 0; padding: 0; background: transparent; max-width: 94vw; max-height: 94vh; overflow: visible; }
.ap-lightbox::backdrop { background: rgba(27, 23, 18, 0.82); }
.ap-lightbox figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.ap-lightbox img { max-width: 92vw; max-height: 86vh; border-radius: 6px; box-shadow: var(--shadow-md); background: #fff; }
.ap-lightbox figcaption { color: #fff; font-size: 13px; font-family: var(--font-mono); }
.ap-lightbox-btn { position: fixed; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 999px; border: 0; background: rgba(255,255,255,0.92); color: var(--ink); font-size: 26px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.ap-lightbox-prev { left: 16px; }
.ap-lightbox-next { right: 16px; }
.ap-lightbox-close { position: fixed; top: 16px; right: 16px; transform: none; font-size: 24px; }

.ap-timeline-link { color: var(--ink-soft); text-decoration: underline; text-underline-offset: 2px; }
.ap-timeline.is-cancelled .ap-timeline-step.is-done .ap-timeline-dot { background: var(--ink-muted); border-color: var(--ink-muted); }
.ap-timeline-note { margin: -8px 0 16px; }
.ap-invoice-row { margin: 12px 0 0; }
.ap-order-delivery { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: baseline; font-size: 13px; }
.ap-order-delivery .mono { font-size: 13px; }
.woocommerce-orders-table__cell-order-delivery { max-width: 220px; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button { margin: 2px 4px 2px 0; }

.ap-track-page .ap-store-content { max-width: 760px; }
.ap-track-form { display: flex; flex-direction: column; gap: 8px; max-width: 420px; }
.ap-track-form .ap-k { font-weight: 600; color: var(--ink-soft); margin-top: 8px; }
.ap-track-form .ap-field { height: 46px; }
.ap-track-form .btn { margin-top: 12px; align-self: flex-start; }
.ap-track-intro { margin: 0 0 8px; color: var(--ink-soft); }
.ap-notice-error { color: var(--bad); background: var(--surface-warm); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 10px 12px; margin: 0; }
.ap-track-result { display: flex; flex-direction: column; gap: 20px; }
.ap-track-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ap-track-card { padding: 18px 20px; }
.ap-track-card h3 { font-size: 18px; margin: 0 0 10px; }
.ap-track-card p { margin: 0 0 8px; }
.ap-track-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ap-track-items li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; border-bottom: 1px solid var(--border-soft); padding-bottom: 6px; }
.ap-track-total { display: flex; justify-content: space-between; font-weight: 600; margin-top: 10px !important; }
@media (max-width: 700px) { .ap-track-cards { grid-template-columns: 1fr; } }

.ap-rating { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ink-soft); text-decoration: none; margin-top: -4px; }
.ap-rating:hover { color: var(--ink); }
.ap-reviews { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--border); }
.ap-reviews #reviews h2, .ap-reviews .comment-reply-title { font-size: 22px; font-weight: 500; margin: 0 0 14px; }
.ap-reviews .commentlist { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ap-reviews .comment_container { display: flex; gap: 14px; }
.ap-reviews .comment_container img.avatar { width: 40px; height: 40px; border-radius: 999px; }
.ap-reviews .comment-text { flex: 1; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 12px 16px; }
.ap-reviews .comment-text .meta { font-size: 12px; color: var(--ink-muted); margin: 4px 0 6px; }
.ap-reviews .comment-text .description p { margin: 0; }
.ap-reviews .star-rating, .ap-reviews p.stars a { color: var(--accent, #F59E0B); }
.ap-reviews .comment-form { display: flex; flex-direction: column; gap: 10px; max-width: 560px; }
.ap-reviews .comment-form textarea, .ap-reviews .comment-form input[type="text"], .ap-reviews .comment-form input[type="email"] { width: 100%; border: 1px solid var(--field); border-radius: var(--radius-md); padding: 10px 12px; font: inherit; background: var(--surface); }
.ap-reviews .comment-form .form-submit input { height: 46px; padding: 0 20px; border-radius: 10px; border: 0; background: var(--ink); color: #fff; font-weight: 600; cursor: pointer; }
.ap-reviews .woocommerce-verification-required { color: var(--ink-soft); }

/* ============================================================
   4.4 — sample PDF viewer · sets (bundles) · also bought
   ============================================================ */

.ap-sample { border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); margin-bottom: 10px; }
.ap-sample iframe { display: block; width: 100%; height: 560px; border: 0; }
.ap-sample-link { margin: 0 0 14px; }
@media (max-width: 700px) { .ap-sample iframe { height: 420px; } }

.ap-set-line { margin: 0; font-size: 14px; color: var(--ink-soft); font-weight: 500; }
.ap-set-includes { margin-top: 24px; }
.ap-set-includes h2, .ap-set-includes h3, .ap-set-offers h2, .ap-set-offers h3 { font-size: 22px; margin: 0 0 12px; }
.ap-set-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ap-set-list a { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); text-decoration: none; color: var(--ink); }
.ap-set-list a:hover { border-color: var(--ink); }
.ap-set-list img { width: 44px; height: 58px; object-fit: cover; border-radius: 4px; display: block; }
.ap-set-item-title { display: block; font-family: var(--font-display); font-size: 15px; line-height: 1.2; }
.ap-set-item-price { font-weight: 600; font-size: 14px; white-space: nowrap; }
.ap-set-offers { margin-top: 24px; display: flex; flex-direction: column; gap: 10px; }
.ap-set-offer { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 14px; border: 1px dashed var(--field); border-radius: var(--radius-lg); background: var(--surface); text-decoration: none; color: var(--ink); }
.ap-set-offer:hover { border-color: var(--ink); }
.ap-set-offer-tag { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.ap-set-offer-title { display: block; font-family: var(--font-display); font-size: 16px; line-height: 1.2; }
.ap-set-offer-price { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.ap-set-offer-price strong { font-size: 18px; }
.ap-set-offer-price s { font-size: 12px; color: var(--ink-muted); }

/* ============================================================
   4.4.1 — accessibility pass (Lighthouse 2026-10-03)
   ============================================================ */
.ap-track-form .ap-k a { text-decoration: underline; text-underline-offset: 2px; }
.ap-shop ul.products li.product .ap-card { width: 100%; }


/* ============================================================
   4.5 — homepage motion (season strip, cover marquee, stats line, door fans, This week, reveal)
   and division home pages (hero, countdown, tiles, chips, series cards, proof band, share).
   Motion rules: one marquee, one 300 ms reveal per section, nothing else moves. All of it
   stops under prefers-reduced-motion.
   ============================================================ */

:root { --motion-reveal: 300ms; --marquee: 60s; }

/* Season strip */
.ap-season { display: flex; align-items: center; justify-content: center; gap: 14px; min-height: 44px; padding: 8px 16px; background: var(--ink); color: var(--bg); font-size: 14px; flex-wrap: wrap; }
.ap-season .ap-chip { background: var(--ap); color: #fff; height: 22px; }
.ap-season a { color: var(--acc); font-weight: 600; }
.ap-season a:hover { color: #fff; }

/* Hero: stats line under the actions */
.ap-stats-line { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 12px; }
.ap-stats-line > span { display: flex; flex-direction: column; }
.ap-stats-line strong { font-family: var(--font-display); font-weight: 500; font-size: 26px; line-height: 1.1; }

/* Cover marquee: two rows, opposite directions, paused on hover and focus */
.ap-marquee { overflow: hidden; position: relative; }
.ap-marquee-track { display: flex; gap: 12px; width: max-content; animation: ap-marquee var(--marquee) linear infinite; will-change: transform; }
.ap-marquee-rev .ap-marquee-track { animation-direction: reverse; }
.ap-marquee:hover .ap-marquee-track, .ap-marquee:focus-within .ap-marquee-track { animation-play-state: paused; }
.ap-marquee-cover { display: block; width: 104px; aspect-ratio: 3/4; border-radius: var(--radius-sm); overflow: hidden; box-shadow: var(--shadow-cover); flex-shrink: 0; background: var(--surface-warm); }
.ap-marquee-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ap-hero-marquee { display: flex; flex-direction: column; gap: 14px; min-width: 0; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
@keyframes ap-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Doors: cover fans */
.ap-door { position: relative; overflow: hidden; }
.ap-door-fan { position: absolute; right: -10px; bottom: -28px; display: flex; pointer-events: none; }
.ap-door-fan img, .ap-door-fan .ap-cover-generated { width: 64px; height: 86px; object-fit: cover; border-radius: 4px; box-shadow: var(--shadow-cover); display: block; }
.ap-door-fan > * { transform: rotate(-8deg); transition: transform var(--transition); }
.ap-door-fan > *:nth-child(2) { margin-left: -22px; transform: rotate(2deg); }
.ap-door-fan > *:nth-child(3) { margin-left: -22px; transform: rotate(10deg); }
.ap-door:hover .ap-door-fan > * { transform: rotate(-10deg) translateY(-3px); }
.ap-door:hover .ap-door-fan > *:nth-child(2) { transform: rotate(0deg) translateY(-4px); }
.ap-door:hover .ap-door-fan > *:nth-child(3) { transform: rotate(12deg) translateY(-3px); }
.ap-door.has-fan { padding-bottom: 72px; }
.ap-door.has-fan p { max-width: 70%; }

/* This week strip */
.ap-week-sub { font-size: 12px; color: var(--ink-muted); margin-left: 12px; font-family: var(--font-body); }

/* Reveal on first view (JS adds .ap-motion to <html>, .is-in to each section) */
.ap-motion .ap-reveal { opacity: 0; transform: translateY(8px); transition: opacity var(--motion-reveal) ease, transform var(--motion-reveal) ease; }
.ap-motion .ap-reveal.is-in { opacity: 1; transform: none; }

/* ---- Division home page ---- */
.ap-div-hero { background: var(--div); color: #fff; padding: 56px 24px 0; overflow: hidden; }
.ap-div-calm .ap-div-hero { background: var(--surface); color: var(--ink); border-bottom: 1px solid var(--border); padding-bottom: 48px; }
.ap-div-hero-inner { max-width: var(--measure); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: end; }
.ap-div-calm .ap-div-hero-inner { align-items: center; }
.ap-div-hero-text { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; padding-bottom: 28px; }
.ap-div-hero h1 { color: inherit; font-size: 64px; line-height: 1; font-weight: 600; max-width: 720px; margin: 0; }
.ap-div-calm .ap-div-hero h1 { font-size: 56px; font-weight: 500; line-height: 1.04; }
.ap-div-hero p { margin: 0; font-size: 18px; max-width: 600px; color: rgba(255,255,255,.86); }
.ap-div-calm .ap-div-hero p { color: var(--ink-soft); }
.ap-div-eyebrow { background: rgba(0,0,0,.26); color: #fff; } /* 4.5.2: 12 px white on a lightened teal was 3.9:1 (Lighthouse 2026-10-04) */
.ap-div-calm .ap-div-eyebrow { background: var(--surface-warm); color: var(--ink-soft); }
.ap-div-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.ap-div-btn-light { background: #fff; color: var(--div); }
.ap-div-btn-light:hover { background: var(--bg); color: var(--div); }
.ap-div-calm .ap-div-btn-light { background: var(--div); color: #fff; }
.ap-div-btn-ghost { border-color: rgba(255,255,255,.5); background: transparent; color: #fff; }
.ap-div-btn-ghost:hover { border-color: #fff; color: #fff; }
.ap-div-calm .ap-div-btn-ghost { border-color: var(--field); color: var(--ink); }
.ap-div-hero-img { width: 100%; max-height: 340px; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-cover); margin-bottom: 28px; }
.ap-countdown { display: flex; flex-direction: column; gap: 8px; padding-bottom: 36px; }
.ap-countdown-k { color: rgba(255,255,255,.8); text-transform: uppercase; letter-spacing: .08em; display: flex; align-items: center; gap: 8px; }
.ap-countdown-k::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var(--acc); }
.ap-countdown-title { font-family: var(--font-display); font-size: 26px; line-height: 1.15; }
.ap-countdown-nums { display: flex; gap: 18px; }
.ap-countdown-nums > span { display: flex; flex-direction: column; }
.ap-countdown-nums strong { font-size: 34px; font-weight: 500; line-height: 1.1; }
.ap-countdown .ap-k { color: rgba(255,255,255,.75); }
.ap-countdown-link { color: #fff; font-weight: 600; font-size: 14px; }
.ap-marquee-hero { margin: 0 -24px -22px; padding-bottom: 22px; }
.ap-marquee-hero .ap-marquee-cover { width: 118px; }

.ap-div-browse { padding-top: 64px; }
.ap-tiles { display: grid; gap: 14px; }
.ap-tiles-exam, .ap-tiles-collection { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ap-tiles-class { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 12px; }
.ap-tile { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 4px; color: var(--ink); text-decoration: none; transition: border-color var(--transition), box-shadow var(--transition); min-height: 72px; }
.ap-tile:hover { border-color: var(--div); box-shadow: var(--shadow-sm); color: var(--ink); }
.ap-tiles-class .ap-tile { align-items: center; justify-content: center; text-align: center; min-height: 92px; padding: 12px 8px; }
.ap-tiles-class .ap-tile b { font-family: var(--font-display); font-size: 24px; font-weight: 600; line-height: 1; }
.ap-tile-title { font-family: var(--font-display); font-size: 20px; line-height: 1.15; }
.ap-tile-desc { font-size: 13px; color: var(--ink-soft); }
.ap-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 14px; }
.ap-chips-label { margin-right: 6px; }
.ap-chips .ap-chip:hover { background: var(--ink); color: #fff; }
.ap-chip-imprint { height: 36px; padding: 0 14px; gap: 8px; }
.ap-imprint-dot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

.ap-series-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; display: flex; flex-direction: column; gap: 8px; color: var(--ink); text-decoration: none; transition: box-shadow var(--transition); }
.ap-series-card:hover { box-shadow: var(--shadow-md); color: var(--ink); }
.ap-set-card { border-top: 4px solid var(--div); }
.ap-series-fan { position: relative; height: 150px; display: block; }
.ap-series-fan img { position: absolute; top: 14px; left: 0; width: 92px; height: 124px; object-fit: cover; border-radius: 6px; box-shadow: var(--shadow-cover); }
.ap-series-fan img:nth-child(2) { left: 34px; top: 7px; }
.ap-series-fan img:nth-child(3) { left: 68px; top: 0; }
.ap-series-k { text-transform: uppercase; letter-spacing: .08em; }
.ap-series-title { font-family: var(--font-display); font-size: 20px; line-height: 1.15; }
.ap-series-desc { color: var(--ink-soft); font-size: 14px; }
.ap-series-price strong { font-size: 18px; }

.ap-proof { background: var(--surface); background-image: linear-gradient(135deg, color-mix(in srgb, var(--div, var(--acc)) 12%, transparent), color-mix(in srgb, var(--acc) 14%, transparent)); border: 1px solid var(--border); border-top: 4px solid var(--div, var(--acc)); color: var(--ink); border-radius: var(--radius-lg); padding: 36px 40px; display: grid; gap: 40px; align-items: center; }
.ap-proof.has-clip { grid-template-columns: minmax(0, 1fr) 260px; }
.ap-proof-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.ap-proof-point { display: flex; flex-direction: column; gap: 8px; }
.ap-proof-title { font-family: var(--font-display); font-size: 28px; line-height: 1.1; color: var(--div, var(--ap)); }
.ap-proof-text { color: var(--ink-soft); }
.ap-proof-clip { width: 100%; aspect-ratio: 9/16; max-height: 420px; border-radius: 12px; background: #000; display: block; }

.ap-div-foot-grid { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 24px; align-items: stretch; }
.ap-div-foot-grid.is-single { grid-template-columns: 1fr; }
.ap-div-imprints { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.ap-div-imprints .ap-chips { margin-top: 0; }
.ap-share { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 6px; }
.ap-share .is-done { border-color: var(--ok); color: var(--ok); }
.ap-div-cta { background: var(--div); color: #fff; border-radius: var(--radius-lg); padding: 24px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.ap-div-cta h2 { color: #fff; }
.ap-div-cta p { margin: 0; color: rgba(255,255,255,.86); }
.ap-div-cta .btn { align-self: flex-start; }
.ap-shop-back { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; margin-bottom: 8px; }

@media (max-width: 1000px) {
  .ap-tiles-class { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .ap-tiles-exam, .ap-tiles-collection { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ap-div-hero-inner { grid-template-columns: 1fr; gap: 20px; }
  .ap-div-hero h1, .ap-div-calm .ap-div-hero h1 { font-size: 44px; }
  .ap-proof.has-clip { grid-template-columns: 1fr; }
  .ap-proof-points { grid-template-columns: 1fr; gap: 18px; }
  .ap-div-foot-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .ap-tiles-class { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ap-tiles-exam, .ap-tiles-collection { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-div-hero { padding: 36px 16px 0; }
  .ap-div-hero h1, .ap-div-calm .ap-div-hero h1 { font-size: 34px; }
  .ap-div-hero p { font-size: 16px; }
  .ap-proof { padding: 24px 20px; }
  .ap-proof-title { font-size: 22px; }
  .ap-stats-line { gap: 18px; }
  .ap-stats-line strong { font-size: 22px; }
  .ap-door.has-fan { padding-bottom: 60px; }
  .ap-marquee-cover, .ap-marquee-hero .ap-marquee-cover { width: 84px; }
  .ap-season { font-size: 13px; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .ap-marquee-track { animation: none; }
  .ap-motion .ap-reveal { opacity: 1; transform: none; transition: none; }
  .ap-door-fan > *, .ap-door:hover .ap-door-fan > * { transition: none; }
}

/* ============================================================
 *  4.7 — acceptance-review fixes (spec 2026-10-theme-4-7-review-fixes)
 * ============================================================ */

/* §3 Header: bigger logo and nav */
.ap-topbar-inner { height: 80px; }
.ap-logo-img { height: 52px; max-width: 240px; }
.ap-nav { font-size: 16px; font-weight: 600; gap: 28px; }
.ap-search { height: 44px; }
.ap-search input { font-size: 15px; }
.ap-nav a { white-space: nowrap; }
/* Laptop widths: the bigger logo, nav and search do not fit one row, so the nav takes a second row under them. */
@media (min-width: 861px) and (max-width: 1240px) {
  .ap-topbar-inner { flex-wrap: wrap; height: auto; padding-top: 12px; padding-bottom: 0; row-gap: 2px; }
  .ap-search { width: 340px; }
  .ap-nav { order: 10; width: 100%; gap: 32px; padding: 2px 0 10px; }
}
@media (max-width: 860px) {
  .ap-topbar-inner { height: 68px; }
  .ap-logo-img { height: 40px; max-width: 170px; }
  .ap-nav { font-size: 16px; }
}

/* §1 Collapsible filter groups */
.ap-shop-sidebar .ap-fg .widget-title { margin: 0; }
.ap-fg-toggle { all: unset; box-sizing: border-box; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; font: inherit; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-soft); padding: 6px 0; min-height: 36px; }
.ap-fg-toggle::after { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); transition: transform var(--transition); flex-shrink: 0; }
.ap-fg[data-open="1"] .ap-fg-toggle::after { transform: rotate(-135deg) translate(-2px, -2px); }
.ap-fg-toggle:hover { color: var(--ink); }
.ap-fg-toggle:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; border-radius: 4px; }
.ap-fg .ap-fg-body { padding-top: 8px; }
.ap-fg[data-open="0"] .ap-fg-body { display: none; }
.ap-shop-sidebar .ap-fg { padding: 10px 0; }

/* §2 Add to cart + Buy now on cards */
.ap-card.is-buyable { container-type: inline-size; }
.ap-card.is-buyable .ap-card-foot { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; align-items: stretch; }
.ap-card.is-buyable .ap-card-foot .button, .ap-buy-now-card .btn { white-space: nowrap; padding: 0 10px !important; }
.ap-card.is-buyable .ap-card-foot > div:first-child { grid-column: 1 / -1; }
.ap-card.is-buyable .ap-card-foot .button { width: 100%; justify-content: center; text-align: center; background: var(--surface) !important; color: var(--ink) !important; border: 1px solid var(--ink) !important; display: inline-flex !important; align-items: center; }
.ap-card.is-buyable .ap-card-foot .button:hover { background: var(--paper) !important; }
.ap-card.is-buyable .ap-card-foot .added_to_cart { grid-column: 1 / -1; margin: 0; }
.ap-buy-now-card { margin: 0; display: flex; }
.ap-buy-now-card .btn { width: 100%; height: 38px; }
@container (max-width: 260px) { .ap-card-foot { grid-template-columns: 1fr !important; } }
@media (max-width: 420px) { .ap-card.is-buyable .ap-card-foot { grid-template-columns: 1fr; } }

/* §6 Spotlight - 4.7.2: white card, art panel + stripe + active dot in the book's division colour (--spot-acc) */
.ap-spotlight-section { padding-top: 8px; padding-bottom: 8px; }
.ap-spotlight { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: stretch; gap: 0; padding: 0; background: var(--surface); color: var(--ink); border: 0; border-radius: var(--radius-lg); position: relative; overflow: hidden; }
.ap-spotlight::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 6px; background: var(--spot-acc, var(--acc)); z-index: 1; }
.ap-spotlight-text { padding: 48px 48px 48px 60px; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.ap-spotlight .eyebrow { color: var(--spot-acc, var(--ink-muted)); opacity: 1; font-size: 13px; letter-spacing: 0.1em; }
.ap-spotlight h2 { font-size: 40px; line-height: 1.08; margin: 10px 0 10px; color: var(--ink); max-width: 640px; }
.ap-spotlight .ap-spotlight-meta { font-size: 14px; font-weight: 600; margin: 0 0 14px; color: var(--ink-muted); }
.ap-spotlight .ap-spotlight-desc { font-size: 17px; line-height: 1.6; margin: 0 0 24px; color: var(--ink-soft); max-width: 600px; }
.ap-spotlight-btn { align-self: flex-start; background: var(--ap); color: #fff; height: 50px; padding: 0 26px; font-size: 16px; font-weight: 700; border-radius: var(--btn-radius, 10px); }
.ap-spotlight-btn:hover { background: var(--ap-dk); color: #fff; }
.ap-spotlight-cover { width: auto; display: grid; place-items: center; padding: 40px; position: relative; overflow: hidden; background: var(--spot-acc, var(--acc)); background-image: radial-gradient(circle at 70% 25%, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0) 60%); }
.ap-spotlight-cover::after { content: ""; position: absolute; width: 240px; height: 240px; border-radius: 50%; background: var(--acc); right: -70px; bottom: -80px; opacity: 0.9; }
.ap-spotlight-cover .ap-cover { width: 240px; max-width: 100%; position: relative; z-index: 1; box-shadow: 0 24px 48px rgba(0, 0, 0, 0.3); transform: rotate(-2deg); transition: transform var(--transition); }
.ap-spotlight-cover .ap-cover:hover { transform: rotate(0deg) translateY(-4px); }
@media (max-width: 900px) {
  .ap-spotlight { grid-template-columns: minmax(0, 1fr); }
  .ap-spotlight-cover { order: -1; padding: 28px; }
  .ap-spotlight-cover .ap-cover { width: 170px; }
  .ap-spotlight-text { padding: 28px 22px 28px 30px; }
  .ap-spotlight h2 { font-size: 30px; }
}

/* §4 About band with the imprints */
.ap-home-imprints { grid-column: 1 / -1; border-top: 1px solid var(--sun-line); padding-top: 28px; margin-top: 4px; }
.ap-home-imprints-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.ap-home-imprints-head h3 { font-family: var(--font-display); font-size: 24px; color: var(--about-fg, var(--ink)); margin: 0; }
.ap-home-imprints-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; margin: 0; }
.ap-home-imprint { background: var(--surface); border-radius: var(--radius-md); padding: 14px 12px 12px; display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--ink); border-top: 4px solid var(--imprint-color, var(--border)); transition: transform var(--transition), box-shadow var(--transition); min-width: 0; }
.ap-home-imprint:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); color: var(--ink); }
.ap-home-imprint-logo { height: 40px; display: flex; align-items: center; }
.ap-home-imprint img { height: 36px; width: auto; max-width: 100%; object-fit: contain; object-position: left; filter: none; opacity: 1; }
.ap-home-imprint-name { color: var(--ink); font-weight: 700; font-size: 14px; line-height: 1.25; }
.ap-home-imprint-count { font-size: 12px; font-weight: 500; color: var(--ink-muted); }
@media (max-width: 1100px) { .ap-home-imprints-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ap-home-imprints-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* §5 /imprints/ cards */
.ap-imprints-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ap-imprint-card { padding: 0; text-align: left; border-top: 1px solid var(--border); overflow: hidden; }
.ap-imprint-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.ap-imprint-card-link { display: flex; flex-direction: column; gap: 12px; padding: 0 28px 24px; text-decoration: none; color: var(--ink); height: 100%; }
.ap-imprint-card-link:hover { color: var(--ink); }
.ap-imprint-card-band { display: block; height: 8px; margin: 0 -28px 8px; background: var(--imprint-color, var(--border)); }
.ap-imprint-card-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 96px; }
.ap-imprint-card-logo-wrap { display: flex; align-items: center; min-height: 64px; }
.ap-imprint-card-logo { max-height: 64px; max-width: 200px; margin: 0; }
.ap-imprint-card-covers { display: flex; flex-shrink: 0; }
.ap-imprint-card-covers img { width: 64px; height: 88px; object-fit: cover; border-radius: 4px; box-shadow: var(--shadow-md); margin-left: -18px; border: 2px solid var(--surface); }
.ap-imprint-card-covers img:first-child { margin-left: 0; transform: rotate(-4deg); }
.ap-imprint-card-covers img:last-child { transform: rotate(4deg); }
.ap-imprint-card-name { font-family: var(--font-display); font-size: 26px; line-height: 1.15; margin: 0; color: var(--ink); }
.ap-imprint-card-desc { font-size: 15px; line-height: 1.6; color: var(--ink-soft); margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ap-imprint-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 8px; flex-wrap: wrap; }
.ap-imprint-card-count { font-size: 14px; font-weight: 600; color: var(--ink-muted); margin: 0; }
.ap-imprint-card-btn { background: var(--imprint-color, var(--ink)); color: #fff; }
@media (max-width: 768px) { .ap-imprints-grid { grid-template-columns: 1fr; } .ap-imprint-card-link { padding: 0 20px 20px; } .ap-imprint-card-band { margin: 0 -20px 8px; } .ap-imprint-card-name { font-size: 22px; } }

/* ============================================================
 *  4.7.1 — neutral imprints, spotlight carousel (spec 2026-10-theme-4-7-1)
 * ============================================================ */
.ap-badge-imprint { background: var(--surface-warm); color: var(--ink); font-weight: 600; }

.ap-spotlight-carousel { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); border: 1px solid var(--border); }
.ap-spotlight-carousel:focus-visible { outline: 3px solid var(--ap); outline-offset: 3px; }
.ap-spotlight-track { display: flex; transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1); will-change: transform; }
.ap-spotlight-carousel .ap-spotlight { flex: 0 0 100%; min-width: 0; border-radius: 0; box-sizing: border-box; }
.ap-spotlight-carousel.is-multi .ap-spotlight-text { padding-bottom: 96px; }
.ap-spotlight-controls { position: absolute; left: 60px; bottom: 24px; display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 999px; background: var(--surface-alt); border: 1px solid var(--border); color: var(--ink); z-index: 2; }
.ap-spotlight-arrow { all: unset; box-sizing: border-box; width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--ink); }
.ap-spotlight-arrow:hover { background: var(--surface-warm); }
.ap-spotlight-arrow:focus-visible, .ap-spotlight-dot:focus-visible { outline: 2px solid var(--ap); outline-offset: 2px; }
.ap-spotlight-dots { display: flex; gap: 8px; padding: 0 4px; }
.ap-spotlight-dot { all: unset; box-sizing: border-box; width: 10px; height: 10px; border-radius: 999px; background: var(--field); cursor: pointer; transition: width var(--transition), background var(--transition); }
.ap-spotlight-dot[aria-current="true"] { width: 28px; background: var(--spot-acc, var(--ink)); }
@media (max-width: 900px) {
  .ap-spotlight-carousel.is-multi .ap-spotlight-text { padding-bottom: 84px; }
  .ap-spotlight-controls { left: 30px; bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .ap-spotlight-track { transition: none; }
}


/* ============================================================
   4.8 THEME EDITOR (spec 2026-10-theme-editor-in-directus): homepage block wrappers, bands, spacing,
   proof style, motion setting. Colours, radii, fonts and shadows come from arvind_site_theme_css().
   ============================================================ */
.ap-block { width: 100%; }
.ap-block-band-surface { background: var(--surface); }
.ap-block-band-paper { background: var(--bg); }
.ap-block-band-about { background: var(--sun); color: var(--about-fg, var(--ink)); }
.ap-block-band-about .ap-section-title, .ap-block-band-about h2 { color: var(--about-fg, var(--ink)); }
.ap-block-band-tint { background: linear-gradient(135deg, color-mix(in srgb, var(--acc) 16%, var(--bg)), var(--bg) 70%); }
.ap-block-band-surface .ap-hero, .ap-block-band-about .ap-hero, .ap-block-band-tint .ap-hero { background: transparent; }
.ap-space-tight .ap-section, .ap-space-tight .ap-hero { padding-top: 16px; padding-bottom: 16px; }
.ap-space-roomy .ap-section, .ap-space-roomy .ap-hero { padding-top: 72px; padding-bottom: 72px; }
.ap-proof-plain .ap-proof { background-image: none; border-top-width: 1px; }
.ap-motion-off .ap-marquee-track { animation: none; }
.ap-motion-off .ap-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
.ap-imprint-row.is-logos { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.ap-imprint-row.is-logos .ap-imprint-tile { align-items: center; justify-content: center; padding: 14px; }
.ap-imprint-row.is-logos .ap-imprint-tile-name, .ap-imprint-row.is-logos .ap-k { display: none; }
.ap-imprint-row.is-logos .ap-imprint-tile img { height: 40px; }
@media (max-width: 1100px) { .ap-imprint-row { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ap-imprint-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.btn-on-accent { background: var(--acc); color: var(--ink); }
.btn-on-accent:hover { filter: brightness(0.95); color: var(--ink); }
.ap-theme-preview::before { content: "Theme preview"; position: fixed; z-index: 9999; right: 12px; bottom: 12px; background: var(--ink); color: #fff; font: 600 12px var(--font-body); padding: 6px 10px; border-radius: 999px; }


/* 4.9 ISBN: IBM Plex Mono is wide; every monospace ISBN is set slightly tighter (owner 2026-10-21: "gappy"). */
.mono, .isbn, [class*="isbn"] code, .ap-meta-isbn { letter-spacing: -0.04em; }

/* 4.9 contextual contact form (spec 2026-10-contextual-contact-form) */
.ap-enq { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 28px 32px; max-width: 920px; }
.ap-enq-topics { border: 0; padding: 0; margin: 0 0 8px; }
.ap-enq-topics legend { font-family: var(--font-display); font-size: 24px; margin-bottom: 14px; color: var(--ink); }
.ap-enq-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.ap-enq-tile { cursor: pointer; }
.ap-enq-tile input { position: absolute; opacity: 0; pointer-events: none; }
.ap-enq-tile-box { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 12px 14px; border: 1px solid var(--field); border-radius: var(--radius-md); background: var(--surface); font-weight: 600; font-size: 14px; color: var(--ink); transition: border-color var(--transition), background var(--transition); }
.ap-enq-tile:hover .ap-enq-tile-box { border-color: var(--ink); }
.ap-enq-tile input:checked + .ap-enq-tile-box { border-color: var(--ap); background: color-mix(in srgb, var(--ap) 7%, var(--surface)); box-shadow: inset 0 0 0 1px var(--ap); }
.ap-enq-tile input:focus-visible + .ap-enq-tile-box { outline: 2px solid var(--ap); outline-offset: 2px; }
.ap-enq-icon { width: 10px; height: 10px; border-radius: 50%; background: var(--acc); flex-shrink: 0; }
.ap-enq-body { margin-top: 18px; border-top: 1px solid var(--border); padding-top: 18px; }
.ap-enq-help { color: var(--ink-soft); margin: 0 0 16px; }
.ap-enq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.ap-enq-field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--ink-soft); }
.ap-enq-field.is-wide { grid-column: 1 / -1; }
.ap-enq-field input, .ap-enq-field select, .ap-enq-field textarea { width: 100%; height: 46px; padding: 0 12px; border: 1px solid var(--field); border-radius: var(--radius-md); font: inherit; font-weight: 400; color: var(--ink); background: var(--surface); box-sizing: border-box; }
.ap-enq-field textarea { height: auto; min-height: 110px; padding: 10px 12px; }
.ap-enq-reqmark { display: none; color: var(--ap); font-style: normal; }
.ap-enq-field.is-req .ap-enq-reqmark { display: inline; }
.ap-enq-err { color: var(--bad); font-weight: 500; font-size: 12px; min-height: 0; }
.ap-enq-note { font-size: 13px; color: var(--ink-muted); margin: 14px 0; }
.ap-enq-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ap-enq-wa svg { width: 18px; height: 18px; fill: currentColor; }
.ap-enq-status { color: var(--ink-soft); min-height: 1.2em; margin: 10px 0 0; }
.ap-enq-done { font-size: 17px; color: var(--ok); font-weight: 600; margin: 0; }
.ap-enq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ap-enq-address { margin-top: 18px; }
.ap-enq [hidden] { display: none !important; } /* the field rules set display; [hidden] must still win */
@media (max-width: 640px) { .ap-enq { padding: 20px 16px; } .ap-enq-grid { grid-template-columns: minmax(0, 1fr); } .ap-enq-tiles { grid-template-columns: minmax(0, 1fr); } }
