/* assets/css/customizer.css */

/* Self-hosted Marck Script — DSGVO-safe (no IP transfer to fonts.gstatic.com).
   For UI fonts (Cormorant Garamond italic, Public Sans) we now rely on the
   system serif/sans-serif fallback chain in the rules below. */
@font-face {
    font-family: 'Marck Script';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/marck-script-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Marck Script';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/marck-script-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

.hoerner-hwg-customizer {
  --gold: #9E8235;
  --anthracite: #2a2a2a;
  --body: #5A5650;
  --paper: #F8F5F0;
  --buetten: #F2EAD7;
  --buetten-edge: #EFE5CC;
  --ink: #1a3a5a;
  --line: #E8E1D2;
  font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--paper);
  color: var(--body);
  padding: 64px 48px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  position: relative;
  margin: 32px 0;
}
.hoerner-hwg-customizer::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hoerner-hwg-customizer > * { position: relative; z-index: 2; }
.hoerner-hwg-intro { margin-bottom: 56px; padding-bottom: 32px; border-bottom: 1px solid var(--line); max-width: 720px; }
.hoerner-hwg-kicker { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.22em; color: var(--gold); margin-bottom: 18px; display: flex; align-items: center; gap: 12px; }
.hoerner-hwg-num { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 18px; font-weight: 400; letter-spacing: 0; color: var(--anthracite); text-transform: none; }
.hoerner-hwg-title { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-weight: 500; font-size: 56px; line-height: 1.0; color: var(--anthracite); letter-spacing: -0.01em; margin: 0 0 20px 0; }
.hoerner-hwg-amp { color: var(--gold); font-weight: 400; }
.hoerner-hwg-lede { font-size: 16px; line-height: 1.6; color: var(--body); max-width: 460px; margin: 0; }
.hoerner-hwg-stage { display: grid; grid-template-columns: minmax(280px, 0.85fr) minmax(320px, 1fr); gap: 80px; align-items: start; }
.hoerner-hwg-panel-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.22em; color: var(--gold); margin-bottom: 14px; }
.hoerner-hwg-formats { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line); margin-bottom: 40px; }
.hoerner-hwg-format { appearance: none; border: none; background: transparent; padding: 22px 22px 24px; cursor: pointer; position: relative; transition: background 0.3s; font-family: inherit; text-align: left; display: block; width: 100%; border-radius: 0 !important; box-shadow: none !important; outline: none !important; }
.hoerner-hwg-format::before { content: none !important; background: none !important; }
.hoerner-hwg-format + .hoerner-hwg-format { border-left: 1px solid var(--line); }
.hoerner-hwg-format[data-active="true"] { background: #fff !important; box-shadow: none !important; }
.hoerner-hwg-format[data-active="true"]::after { content: ""; position: absolute; top: -1px; left: -1px; right: -1px; height: 2px; background: var(--gold); border-radius: 0 !important; box-shadow: none !important; }
.hoerner-hwg-format-name { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 22px; font-weight: 500; color: var(--anthracite); display: block; margin-bottom: 4px; }
.hoerner-hwg-format-dim { font-size: 11px; color: var(--body); display: block; margin-bottom: 10px; }
.hoerner-hwg-format-price { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 28px; font-weight: 500; color: var(--anthracite); display: block; }
.hoerner-hwg-format[data-active="false"] .hoerner-hwg-format-name,
.hoerner-hwg-format[data-active="false"] .hoerner-hwg-format-price { color: #B0AAA0; }
.hoerner-hwg-field { position: relative; margin-bottom: 14px; }
.hoerner-hwg-text { width: 100%; min-height: 140px; border: none; border-bottom: 1px solid var(--line); background: transparent; padding: 0 0 14px 0; font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 19px; line-height: 1.55; color: var(--anthracite); resize: vertical; outline: none; transition: border-color 0.2s; box-shadow: none; overflow-wrap: anywhere; word-break: break-word; white-space: pre-wrap; }
.hoerner-hwg-text:focus { border-bottom-color: var(--gold); }
.hoerner-hwg-text.is-overflow { border-bottom-color: #c62828; }
.hoerner-hwg-counter-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 11px; letter-spacing: 0.08em; margin-bottom: 32px; }
.hoerner-hwg-hint { color: var(--body); text-transform: uppercase; font-weight: 600; letter-spacing: 0.16em; font-size: 10px; }
.hoerner-hwg-count { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 18px; color: var(--anthracite); font-variant-numeric: tabular-nums; }
.hoerner-hwg-count em { color: var(--body); font-size: 13px; font-style: italic; }
.hoerner-hwg-count.is-near { color: #c08400; }
.hoerner-hwg-count.is-overflow { color: #c62828; }
.hoerner-hwg-cta { display: inline-flex; align-items: center; gap: 14px; border: 1.5px solid var(--gold); background: transparent; color: var(--anthracite); font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; padding: 18px 36px; border-radius: 0; cursor: pointer; transition: all 0.3s; appearance: none; }
.hoerner-hwg-cta:not([disabled]):hover { background: var(--gold); color: #fff; }
.hoerner-hwg-cta-price { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 18px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--gold); }
.hoerner-hwg-cta:hover .hoerner-hwg-cta-price { color: #fff; }
.hoerner-hwg-cta[disabled] { opacity: 0.5; cursor: not-allowed; border-color: #ccc; }
.hoerner-hwg-cta[disabled] .hoerner-hwg-cta-price { color: #aaa; }
.hoerner-hwg-feedback { margin-top: 14px; font-size: 12.5px; color: #c62828; min-height: 1.4em; }
.hoerner-hwg-feedback.is-toast { color: var(--gold); }
.hoerner-hwg-preview-col { position: sticky; top: 32px; }
.hoerner-hwg-preview-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 22px; }
.hoerner-hwg-scale { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-size: 14px; color: var(--body); }
.hoerner-hwg-card-shell { position: relative; aspect-ratio: 8.5/5.5; background: radial-gradient(ellipse at 30% 20%, rgba(255,250,235,0.6) 0%, transparent 60%), linear-gradient(135deg, var(--buetten) 0%, var(--buetten-edge) 100%); box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset, 0 24px 60px -20px rgba(60,40,10,0.25), 0 8px 16px -8px rgba(60,40,10,0.18); padding: 9% 11%; overflow: hidden; transition: aspect-ratio 0.4s, padding 0.4s; }
.hoerner-hwg-card-shell[data-tier="letter"] { aspect-ratio: 21/29.7; }
.hoerner-hwg-card-shell[data-status="overflow"] { box-shadow: 0 0 0 2px #c62828, 0 24px 60px -20px rgba(60,40,10,0.25); }
.hoerner-hwg-card-shell::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.4; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='5' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.78 0 0 0 0 0.6 0 0 0 0.45 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23paper)'/%3E%3C/svg%3E"); mix-blend-mode: multiply; }
.hoerner-hwg-hand { width: 100%; height: 100%; overflow: visible; position: relative; z-index: 1; }
.hoerner-hwg-hand text { font-family: 'Marck Script', 'Comic Sans MS', cursive; fill: var(--ink); stroke: none; }
/* Hershey single-stroke paths — same data the plotter writes. */
.hoerner-hwg-hand .hwg-ink { fill: none; stroke: var(--ink); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.hoerner-hwg-hand .hwg-line { animation: hwg-fade-in-line 600ms ease-out backwards; }
.hoerner-hwg-hand .hwg-line:nth-of-type(1) { animation-delay: 0ms; }
.hoerner-hwg-hand .hwg-line:nth-of-type(2) { animation-delay: 250ms; }
.hoerner-hwg-hand .hwg-line:nth-of-type(3) { animation-delay: 500ms; }
.hoerner-hwg-hand .hwg-line:nth-of-type(4) { animation-delay: 750ms; }
.hoerner-hwg-hand.no-anim .hwg-line { animation: none; }
.hoerner-hwg-caption { margin-top: 18px; font-size: 11.5px; color: var(--body); border-top: 1px solid var(--line); padding-top: 14px; }
@media (max-width: 980px) { .hoerner-hwg-customizer { padding: 40px 24px; } .hoerner-hwg-title { font-size: 38px; } .hoerner-hwg-stage { grid-template-columns: 1fr; gap: 48px; } .hoerner-hwg-preview-col { position: static; } }
@media (max-width: 560px) { .hoerner-hwg-formats { grid-template-columns: 1fr; } .hoerner-hwg-format + .hoerner-hwg-format { border-left: none; border-top: 1px solid var(--line); } .hoerner-hwg-cta { width: 100%; justify-content: center; padding-left: 18px; padding-right: 18px; } }
@keyframes hwg-fade-in-line { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
.hoerner-hwg-hand text { opacity: 1; animation: hwg-fade-in-line 600ms ease-out backwards; }
.hoerner-hwg-hand text:nth-of-type(1) { animation-delay: 0ms; }
.hoerner-hwg-hand text:nth-of-type(2) { animation-delay: 250ms; }
.hoerner-hwg-hand text:nth-of-type(3) { animation-delay: 500ms; }
.hoerner-hwg-hand text:nth-of-type(4) { animation-delay: 750ms; }
.hoerner-hwg-hand.no-anim text { animation: none; }

/* ===========================================================
   Full-width override for greeting product page (D1, v1.0.2)
   =========================================================== */
body.hoerner-hwg-fullwidth .product-page-wrapper,
body.hoerner-hwg-fullwidth .product-main,
body.hoerner-hwg-fullwidth .row-large {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.hoerner-hwg-fullwidth .product-gallery,
body.hoerner-hwg-fullwidth .product-images,
body.hoerner-hwg-fullwidth .woocommerce-product-gallery,
body.hoerner-hwg-fullwidth .product-info-main,
body.hoerner-hwg-fullwidth .summary-inner,
body.hoerner-hwg-fullwidth .product_meta,
body.hoerner-hwg-fullwidth .product-tabs-wrapper,
body.hoerner-hwg-fullwidth .related,
body.hoerner-hwg-fullwidth .upsells,
body.hoerner-hwg-fullwidth .breadcrumb,
body.hoerner-hwg-fullwidth .breadcrumbs,
body.hoerner-hwg-fullwidth .woocommerce-breadcrumb,
body.hoerner-hwg-fullwidth nav.woocommerce-breadcrumb,
body.hoerner-hwg-fullwidth .shop-page-title,
body.hoerner-hwg-fullwidth .page-title,
body.hoerner-hwg-fullwidth .product-page-title,
body.hoerner-hwg-fullwidth .product .summary .price,
body.hoerner-hwg-fullwidth .product-info .price,
body.hoerner-hwg-fullwidth .product-page-wrapper .price,
body.hoerner-hwg-fullwidth .product > .price,
body.hoerner-hwg-fullwidth p.price,
body.hoerner-hwg-fullwidth .product .stock,
body.hoerner-hwg-fullwidth .wc-gzd-additional-info,
body.hoerner-hwg-fullwidth .delivery-time-info,
body.hoerner-hwg-fullwidth .wc-gzd-delivery-time,
body.hoerner-hwg-fullwidth .wc-gzd-shipping-costs-info,
body.hoerner-hwg-fullwidth .woocommerce-de_price_taxrate,
body.hoerner-hwg-fullwidth .woocommerce-shipping-information,
body.hoerner-hwg-fullwidth .wgm-info,
body.hoerner-hwg-fullwidth .shipping_de,
body.hoerner-hwg-fullwidth .shipping_de_string,
body.hoerner-hwg-fullwidth [class*="delivery-time-"],
body.hoerner-hwg-fullwidth .tax_label,
body.hoerner-hwg-fullwidth .woocommerce-tabs,
body.hoerner-hwg-fullwidth .product-share,
body.hoerner-hwg-fullwidth .single-product .product-short-description {
    display: none !important;
}

body.hoerner-hwg-fullwidth .product-summary-wrap,
body.hoerner-hwg-fullwidth .summary.entry-summary,
body.hoerner-hwg-fullwidth .summary {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.hoerner-hwg-fullwidth .hoerner-hwg-customizer {
    margin: 0 !important;
    width: 100% !important;
}

body.hoerner-hwg-fullwidth .product-page-wrapper > .row {
    margin: 0 !important;
}
