/* ==========================================================================
   MyFairnet Shop — signagev2 design system
   Navy #0a1f44 · Hamburg red #cc0000 · warm-white #fafaf7 · self-hosted Inter
   ========================================================================== */

/* ---- Self-hosted Inter (GDPR-safe, no Google CDN) ---- */
@font-face { font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/inter-latin-400.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:600; font-display:swap; src:url("../fonts/inter-latin-600.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:700; font-display:swap; src:url("../fonts/inter-latin-700.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-style:normal; font-weight:800; font-display:swap; src:url("../fonts/inter-latin-800.woff2") format("woff2"); }

/* ---- Tokens ---- */
:root{
  --blue:#0a1f44;            /* navy */
  --accent:#cc0000;          /* Hamburg red */
  --dark:#07142d;
  --bg:#fafaf7;              /* warm white */
  --white:#fff;
  --card-border:#e5e3dd;
  --muted:#666;
  --text:#111;
  --font-head:"Inter","Helvetica Neue","Segoe UI",Arial,sans-serif;
  --font-body:system-ui,-apple-system,"Segoe UI",Arial,Helvetica,sans-serif;
  --maxw:1400px;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{background:var(--bg);}
/* !important defeats Elementor's global-kit body background so the warm-white shows */
body{font-family:var(--font-body);color:var(--text);background:var(--bg)!important;line-height:1.6;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;height:auto;display:block;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);font-weight:800;letter-spacing:1px;line-height:1.15;}

/* ---- Announcement bar ---- */
.mfn-announce{background:var(--accent);color:#fff;text-align:center;padding:10px 20px;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:600;}
.mfn-announce .mfn-sep{margin:0 16px;opacity:.55;}

/* ---- Header ---- */
.mfn-header{display:flex;align-items:center;justify-content:space-between;padding:18px 40px;background:#fff;position:sticky;top:0;z-index:1000;border-bottom:3px solid var(--blue);}
/* Equal flex flanks (nav wrapper left, utils right) so the in-flow logo is truly centered.
   flex:1 must sit on the <nav> WRAPPER (the header's flex child), not just the inner UL. */
.mfn-header>nav{flex:1 1 0;min-width:0;}
.mfn-nav{display:flex;gap:28px;list-style:none;flex:1;align-items:center;}
.mfn-nav a{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--text);transition:color .2s;}
.mfn-nav a:hover{color:var(--accent);}
.mfn-nav li{position:relative;}
.mfn-nav .sub-menu{display:none;position:absolute;top:100%;left:-16px;background:#fff;border:1px solid rgba(0,0,0,.08);padding:12px 0;min-width:190px;box-shadow:0 4px 12px rgba(0,0,0,.06);list-style:none;z-index:100;}
.mfn-nav li:hover>.sub-menu{display:block;}
.mfn-nav .sub-menu a{display:block;padding:8px 24px;font-size:11px;font-weight:500;letter-spacing:1px;}
.mfn-nav .sub-menu a:hover{background:var(--bg);}
/* In-flow centered logo (flanked by equal flex:1 nav + utils) so it never overlaps the nav */
.mfn-logo{flex:0 0 auto;text-align:center;padding:0 20px;}
.mfn-logo img{height:46px;width:auto;}
.mfn-utils{display:flex;gap:22px;align-items:center;flex:1;justify-content:flex-end;}
.mfn-utils a{position:relative;color:var(--text);display:inline-flex;transition:color .2s;}
.mfn-utils a:hover{color:var(--accent);}
.mfn-cart-count{position:absolute;top:-8px;right:-10px;background:var(--blue);color:#fff;font-size:9px;min-width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;padding:0 3px;}
.mfn-utils .mfn-lang{width:22px;height:22px;border-radius:50%;overflow:hidden;line-height:0;flex:0 0 auto;transition:transform .15s ease;}
.mfn-utils .mfn-lang:hover{transform:scale(1.12);}
.mfn-utils .mfn-lang svg{display:block;border-radius:50%;}
.mfn-mnav-head .mfn-lang{width:26px;height:26px;border-radius:50%;overflow:hidden;line-height:0;display:inline-flex;margin-right:auto;}
.mfn-mnav-head .mfn-lang svg{display:block;border-radius:50%;}

/* ---- Mobile nav ---- */
.mfn-toggle{display:none;background:none;border:0;cursor:pointer;color:var(--text);min-width:44px;min-height:44px;align-items:center;justify-content:center;}
/* 769-900px: menu no longer fits its flank → hamburger early; toggle becomes the equal left flank
   (must come AFTER the base display:none rule above — same specificity, source order decides). */
@media(max-width:900px){
  .mfn-header>nav{display:none;}
  .mfn-toggle{display:flex;flex:1 1 0;justify-content:flex-start;}
}
.mfn-mnav-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1999;}
.mfn-mnav-overlay.active{display:block;}
.mfn-mnav{display:none;position:fixed;top:0;left:0;right:0;background:#fff;z-index:2000;max-height:100vh;overflow-y:auto;transform:translateY(-100%);transition:transform .3s ease;}
.mfn-mnav.active{display:block;transform:translateY(0);}
.mfn-mnav-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid rgba(0,0,0,.06);}
.mfn-mnav ul{list-style:none;padding:16px 0;}
.mfn-mnav li{border-bottom:1px solid rgba(0,0,0,.04);}
.mfn-mnav a{display:flex;align-items:center;padding:14px 20px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;min-height:44px;}

/* ---- Layout helpers ---- */
.mfn-section{padding:80px 40px;max-width:var(--maxw);margin:0 auto;}
.mfn-section-title-wrap{text-align:center;margin-bottom:50px;}
.mfn-section-title{display:inline-block;padding:12px 28px;background:#fff;border:2px solid var(--blue);color:var(--blue);font-family:var(--font-head);font-weight:700;font-size:13px;letter-spacing:3px;line-height:1.2;text-transform:uppercase;}

/* ---- Hero ---- */
.mfn-hero{position:relative;height:72vh;min-height:520px;max-height:820px;background:#001a4d;display:flex;align-items:flex-end;padding:60px;overflow:hidden;border-bottom:4px solid var(--blue);}
.mfn-hero video,.mfn-hero img.mfn-hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.mfn-hero-content{position:relative;z-index:2;color:#fff;}
.mfn-hero-title{font-size:56px;letter-spacing:2px;line-height:1.05;text-transform:uppercase;margin-bottom:22px;}
.mfn-cta{display:inline-block;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;padding-bottom:4px;border-bottom:2px solid var(--accent);transition:opacity .2s;}
.mfn-cta:hover{opacity:.75;}

/* ---- Product grid + card (signagev2) ---- */
.mfn-product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.mfn-card{background:#fff;border:1px solid var(--card-border);max-width:500px;width:100%;margin:0 auto;transition:box-shadow .3s ease;}
.mfn-card:hover{box-shadow:0 8px 30px rgba(0,0,0,.08);}
.mfn-card .mfn-thumb{aspect-ratio:1/1;background:#fff center/contain no-repeat;position:relative;overflow:hidden;}
/* Mouseover: alternate product shot fades in on hover (shop loop + Neuheiten cards). */
.mfn-thumb-alt{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff center/contain no-repeat;opacity:0;transition:opacity .35s ease;pointer-events:none;}
.mfn-card:hover .mfn-thumb-alt,.woocommerce ul.products li.product:hover .mfn-thumb-alt{opacity:1;}
.mfn-card .mfn-info{padding:20px 12px 24px;text-align:center;}
.mfn-card .mfn-info::after{content:"";display:block;height:0;border-top:2px dashed rgba(10,31,68,.45);margin:14px 8px 0;}
.mfn-card .mfn-name{font-size:13px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;line-height:1.4;min-height:2.8em;display:flex;align-items:center;justify-content:center;margin-bottom:10px;}
.mfn-card .mfn-price{display:inline-block;font-size:18px;font-weight:700;letter-spacing:.5px;border-bottom:2px solid var(--accent);padding-bottom:4px;}
.mfn-viewall{text-align:center;margin-top:50px;}
.mfn-viewall a{font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--blue);border-bottom:2px solid var(--accent);padding-bottom:4px;}

/* ---- Banner ---- */
.mfn-banner{position:relative;background:var(--blue);border-top:6px solid var(--accent);border-bottom:6px solid var(--accent);padding:60px 40px;text-align:center;color:#fff;overflow:hidden;}
.mfn-banner::after{content:"";position:absolute;left:0;right:0;top:6px;bottom:6px;border-top:2px dashed rgba(255,255,255,.3);border-bottom:2px dashed rgba(255,255,255,.3);pointer-events:none;}
.mfn-banner-title{font-size:38px;letter-spacing:5px;text-transform:uppercase;margin-bottom:24px;color:#fff;}
.mfn-banner .mfn-banner-title{color:#fff!important;}  /* beat global heading color */

/* ---- Category cards ---- */
.mfn-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.mfn-cat{position:relative;aspect-ratio:1/1;max-width:500px;width:100%;margin:0 auto;overflow:hidden;}
.mfn-cat-img{width:100%;height:100%;background-size:cover;background-position:center;transition:transform .6s ease;}
.mfn-cat:hover .mfn-cat-img{transform:scale(1.05);}
.mfn-cat-label{position:absolute;bottom:30px;left:30px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.45);}
.mfn-cat-label h3{font-size:22px;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px;}
.mfn-cat-label span{font-size:11px;font-weight:500;letter-spacing:2px;text-transform:uppercase;border-bottom:1px solid #fff;padding-bottom:2px;}

/* ---- Buttons (square, red→navy) ---- */
.mfn-btn,.button,button.button,.wp-element-button{background:var(--accent);color:#fff;border:0;border-radius:0;padding:14px 28px;font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:13px;cursor:pointer;transition:background .2s;}
.mfn-btn:hover,.button:hover,.wp-element-button:hover{background:var(--blue);color:#fff;}
/* Beat WooCommerce's default purple .alt buttons (add-to-cart, checkout, etc.) */
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,.woocommerce #respond input#submit.alt,.woocommerce .single_add_to_cart_button{background:var(--accent);color:#fff;border-radius:0;}
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover,.woocommerce .single_add_to_cart_button:hover{background:var(--blue);color:#fff;}
/* All WooCommerce buttons (login/register/etc.) — kill the default gray/purple */
.woocommerce .button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce-page .button{background:var(--accent);color:#fff;border-radius:0;}
.woocommerce .button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background:var(--blue);color:#fff;}

/* ---- Footer ---- */
.mfn-footer{background:var(--blue);border-top:6px solid var(--accent);color:rgba(255,255,255,.6);padding:60px 40px 30px;}
.mfn-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;max-width:var(--maxw);margin:0 auto;}
.mfn-footer h4{color:#fff;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:20px;}
.mfn-footer a,.mfn-footer p{font-size:12px;line-height:1.8;color:rgba(255,255,255,.6);}
.mfn-footer a:hover{color:#fff;}
.mfn-footer ul{list-style:none;}
.mfn-footer-bottom{max-width:var(--maxw);margin:40px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:11px;color:rgba(255,255,255,.4);}
.mfn-social{display:flex;gap:14px;}
.mfn-social a{width:34px;height:34px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.65);transition:color .2s,border-color .2s;}
.mfn-social a svg{width:16px;height:16px;fill:currentColor;display:block;}
.mfn-social a:hover{border-color:#fff;color:#fff;}

/* ==========================================================================
   WooCommerce — signagev2 (styled via CSS, Germanized/Woo markup preserved)
   ========================================================================== */
.mfn-woo{padding-top:40px;}
.woocommerce .woocommerce-breadcrumb{font-size:11px;letter-spacing:.5px;color:#999;margin-bottom:24px;}
.woocommerce span.onsale{background:var(--accent);border-radius:0;font-weight:700;}
.woocommerce .woocommerce-message,.woocommerce-info,.woocommerce-noreviews{border-top-color:var(--accent);}
/* Woo auto-focuses the success notice (tabindex=-1 + .focus()) so the browser draws
   a blue focus ring around it — the client only wants the red top line. Suppress the
   ring/shadow on notices (border-top above is untouched). */
.woocommerce-message:focus,.woocommerce-info:focus,.woocommerce-error:focus,.woocommerce-noreviews:focus,.wc-block-components-notice-banner:focus{outline:none;box-shadow:none;}
.woocommerce-products-header__title,.woocommerce .term-description{text-align:center;}

/* ---- Shop / archive grid: signagev2 product card ---- */
.woocommerce ul.products,.woocommerce-page ul.products{display:grid !important;grid-template-columns:repeat(4,1fr);gap:24px;margin:0 0 40px !important;}
/* Woo's clearfix ::before/::after become stray grid items (empty first/last cell) — kill them */
.woocommerce ul.products::before,.woocommerce ul.products::after,.woocommerce-page ul.products::before,.woocommerce-page ul.products::after{display:none !important;content:none !important;}
.woocommerce ul.products li.product{width:auto !important;float:none !important;margin:0 !important;background:#fff;border:1px solid var(--card-border);text-align:center;padding:0 0 24px;}
.woocommerce ul.products li.product a img{margin:0;border-radius:0;}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--font-head);font-size:13px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;line-height:1.4;min-height:2.8em;display:flex;align-items:center;justify-content:center;padding:16px 12px 6px;color:var(--text);}
.woocommerce ul.products li.product .price{display:inline-block;font-size:18px;font-weight:700;letter-spacing:.5px;color:var(--text);border-bottom:2px solid var(--accent);padding-bottom:4px;}
.woocommerce ul.products li.product .price del{opacity:.5;font-weight:400;margin-right:6px;border:0;}
.woocommerce ul.products li.product .price ins{text-decoration:none;}
.woocommerce ul.products li.product .button,.woocommerce ul.products li.product .added_to_cart{display:inline-block;margin:14px 12px 0;padding:12px 0 0;background:transparent;color:var(--accent);border:0;border-top:2px dashed rgba(10,31,68,.3);border-radius:0;font-size:11px;letter-spacing:1.5px;width:calc(100% - 24px);}
.woocommerce ul.products li.product .button:hover{background:transparent;color:var(--blue);}
/* Preview card = image + name + price + dashed rule only (Germanized notices + button removed via hooks). */
.woocommerce ul.products li.product::after{content:"";display:block;border-top:2px dashed rgba(10,31,68,.3);margin:16px 12px 0;}
/* Card hover: shadow lift + "+ Schnellansicht" overlay sliding up over the image (preview behaviour). */
.woocommerce ul.products li.product{transition:box-shadow .3s ease;}
.woocommerce ul.products li.product:hover{box-shadow:0 8px 30px rgba(0,0,0,.08);}
.woocommerce ul.products li.product .mfn-thumb{position:relative;overflow:hidden;}
.mfn-quickadd{position:absolute;left:12px;right:12px;bottom:12px;background:var(--blue);color:#fff;text-align:center;padding:11px 8px;font-family:var(--font-head);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease,background .2s ease;}
.woocommerce ul.products li.product:hover .mfn-quickadd{opacity:1;transform:translateY(0);}
.mfn-quickadd:hover{background:var(--accent);}
@media(max-width:768px){.mfn-quickadd{opacity:1;transform:none;}}

/* ---- Single product ---- */
.single-product div.product{display:grid;grid-template-columns:1fr 1fr;gap:24px 60px;align-items:start;}
/* gallery + summary share the 2-col row; tabs/related/upsells span full width below */
.single-product div.product .woocommerce-tabs,.single-product div.product .related,.single-product div.product .upsells,.single-product div.product .woocommerce-product-gallery + .summary ~ *{grid-column:1 / -1;}
.single-product div.product .related ul.products{margin-top:20px;}
.single-product div.product .woocommerce-product-gallery{margin:0;width:100% !important;}
.single-product div.product .product_title{font-size:26px;letter-spacing:1px;line-height:1.25;text-transform:uppercase;margin-bottom:14px;color:var(--text);}
.single-product div.product p.price,.single-product div.product span.price{font-size:24px;font-weight:700;color:var(--text);}
.single-product .mfn-trust{list-style:none;margin:14px 0 26px;}
.single-product .mfn-trust li{font-size:13px;color:var(--muted);line-height:2;}
.single-product .mfn-trust li::before{content:"\2713";color:var(--accent);margin-right:8px;font-weight:700;}
.single-product .variations td,.single-product .variations th{padding:6px 10px 6px 0;}
.single-product .single_add_to_cart_button{width:100%;min-height:52px;}
.single-product div.product form.cart{margin-top:8px;}
/* Tabs → boxed signagev2 look */
.woocommerce-tabs ul.tabs{border-bottom:2px solid var(--blue);padding:0;margin:0 0 24px;}
.woocommerce-tabs ul.tabs li{background:transparent;border:0;border-radius:0;margin:0 4px -2px 0;}
.woocommerce-tabs ul.tabs li a{font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);padding:12px 18px;}
.woocommerce-tabs ul.tabs li.active{border:2px solid var(--blue);border-bottom-color:#fff;background:#fff;}
.woocommerce-tabs ul.tabs li.active a{color:var(--blue);}
.woocommerce-tabs ul.tabs::before{border-bottom-color:var(--blue);}

/* ---- Cart / Checkout / My Account (light touch — keep Germanized fields) ---- */
.woocommerce table.shop_table th{color:var(--blue);text-transform:uppercase;letter-spacing:.5px;font-size:12px;}
.woocommerce table.shop_table{border-radius:0;}
.woocommerce-cart .cart-collaterals .cart_totals h2,.woocommerce-account h2{font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.select2-container .select2-selection{border-radius:0;}
.woocommerce-MyAccount-navigation ul{list-style:none;}
.woocommerce-MyAccount-navigation li.is-active a{color:var(--accent);font-weight:700;}

@media(max-width:1024px){.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(3,1fr);}}
@media(max-width:768px){
  .single-product div.product{grid-template-columns:1fr;gap:28px;}
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(2,1fr);gap:14px;}
}

/* ==========================================================================
   Content pages — generic page, legal, Über uns, Kontakt
   ========================================================================== */
.mfn-page{max-width:var(--maxw);margin:0 auto;padding:60px 40px;}
.mfn-page-body{max-width:820px;margin:0 auto;}
.mfn-page-body h2{color:var(--blue);text-transform:uppercase;margin:28px 0 12px;font-size:22px;}
.mfn-page-body h3{color:var(--dark);margin:20px 0 10px;font-size:16px;}
.mfn-page-body p,.mfn-page-body li{font-size:15px;line-height:1.7;color:#333;margin-bottom:14px;}
.mfn-page-body a{color:var(--accent);text-decoration:underline;}

/* About / Kontakt image hero */
.mfn-about-hero{position:relative;height:440px;border-bottom:3px solid var(--blue);overflow:hidden;}
.mfn-about-hero img,.mfn-about-hero video{width:100%;height:100%;object-fit:cover;}
.mfn-about-hero h1{position:absolute;left:40px;bottom:30px;color:#fff;font-size:44px;letter-spacing:6px;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,.4);}
/* Legal/Service hero: smaller so long titles (Datenschutzerklärung) fit */
.mfn-legal-hero h1{font-size:34px;letter-spacing:2px;right:40px;}
/* #10: Bezahlung hero shows the full vessel photo (no top/bottom crop). */
.mfn-about-hero.mfn-legal-hero--bezahlung{height:auto;}
.mfn-legal-hero--bezahlung img{height:auto;display:block;object-fit:contain;}
.mfn-legal .mfn-page-body{max-width:800px;}

/* Page intro */
.mfn-page-intro{text-align:center;padding:36px 20px 18px;}
.mfn-page-intro .eyebrow{display:block;color:var(--accent);font-weight:700;font-size:11px;letter-spacing:3px;text-transform:uppercase;margin-bottom:10px;}
.mfn-page-intro h1{font-size:40px;letter-spacing:4px;text-transform:uppercase;color:var(--text);}
.mfn-page-intro::after{content:"";display:block;width:100px;height:3px;background:var(--accent);margin:18px auto 0;}

/* Story sections */
.mfn-story{display:grid;grid-template-columns:1fr 1fr;max-width:var(--maxw);margin:0 auto;align-items:stretch;}
.mfn-story-text{padding:70px 60px;}
.mfn-story-text .label{color:var(--accent);font-weight:700;font-size:11px;letter-spacing:3px;text-transform:uppercase;}
.mfn-story-text h2{font-size:30px;letter-spacing:1px;line-height:1.2;text-transform:uppercase;margin:10px 0 18px;}
.mfn-story-text p{margin-bottom:14px;color:#444;}
.mfn-story-img{min-height:420px;background-size:cover;background-position:center;}
.mfn-story.reversed .mfn-story-text{order:2;}
.mfn-cta-link{display:inline-block;margin-top:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:12px;color:var(--blue);border-bottom:2px solid var(--accent);padding-bottom:4px;}

/* Quote band */
.mfn-quote{background:var(--blue);color:#fff;text-align:center;padding:70px 24px;}
.mfn-quote blockquote{font-family:var(--font-head);font-size:24px;font-weight:700;letter-spacing:1px;line-height:1.5;}
.mfn-quote .hashtag{display:block;color:var(--accent);letter-spacing:3px;margin-top:16px;font-size:16px;}

/* Values */
.mfn-values{max-width:var(--maxw);margin:0 auto;padding:80px 40px;text-align:center;}
.mfn-values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:40px;}
.mfn-value h3{font-size:16px;letter-spacing:2px;text-transform:uppercase;margin:18px 0 10px;}
.mfn-value p{color:var(--muted);font-size:14px;line-height:1.7;}
.mfn-value-icon{width:60px;height:60px;border:2px solid var(--accent);margin:0 auto;transform:rotate(45deg);display:flex;align-items:center;justify-content:center;}
.mfn-value-icon svg{transform:rotate(-45deg);width:24px;height:24px;stroke:var(--accent);}

/* Rotating 2x2 fleet gallery */
.mfn-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:720px;margin:0 auto;padding:0 40px 70px;}
.mfn-gallery .cell{position:relative;aspect-ratio:1/1;overflow:hidden;background:#e5e3dd;}
.mfn-gallery .cell .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .8s ease;}
.mfn-gallery .cell .slide.active{opacity:1;}

/* Kontakt cards */
.mfn-contact{display:grid;grid-template-columns:repeat(3,1fr);max-width:var(--maxw);margin:0 auto;padding:70px 40px;}
.mfn-contact .card{padding:40px;border-right:1px solid rgba(0,0,0,.08);}
.mfn-contact .card:last-child{border-right:0;}
.mfn-contact .card .label{color:var(--accent);font-weight:700;font-size:11px;letter-spacing:3px;text-transform:uppercase;}
.mfn-contact .card h2{font-size:20px;letter-spacing:1px;text-transform:uppercase;margin:12px 0 14px;color:var(--text);}
.mfn-contact .card p{color:#444;line-height:1.8;}
.mfn-contact .card a{color:var(--text);}

@media(max-width:768px){
  .mfn-about-hero{height:240px;}
  .mfn-about-hero h1{font-size:24px;letter-spacing:3px;left:18px;bottom:18px;}
  .mfn-page-intro h1{font-size:26px;}
  .mfn-story{grid-template-columns:1fr;}
  .mfn-story.reversed .mfn-story-text{order:0;}
  .mfn-story-text{padding:40px 20px;}
  .mfn-story-img{min-height:260px;}
  .mfn-values-grid{grid-template-columns:1fr;gap:30px;}
  .mfn-contact{grid-template-columns:1fr;padding:40px 18px;}
  .mfn-contact .card{border-right:0;border-bottom:1px solid rgba(0,0,0,.08);padding:30px 18px;}
  .mfn-page{padding:40px 18px;}
}

/* ---- Responsive ---- */
@media(max-width:1024px){
  .mfn-product-grid{grid-template-columns:repeat(2,1fr);}
  .mfn-cat-grid{grid-template-columns:repeat(2,1fr);}
  .mfn-footer-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:768px){
  .mfn-header{padding:14px 16px;}
  .mfn-nav{display:none;}
  .mfn-toggle{display:flex;}
  .mfn-logo img{height:34px;}
  .mfn-section{padding:50px 18px;}
  .mfn-hero{height:60vh;min-height:440px;padding:40px 18px;}
  .mfn-hero-title{font-size:34px;letter-spacing:1px;}
  .mfn-product-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .mfn-cat-grid{grid-template-columns:1fr;}
  .mfn-banner-title{font-size:24px;letter-spacing:3px;}
  .mfn-footer-grid{grid-template-columns:1fr;gap:30px;}
  .mfn-footer-bottom{flex-direction:column;text-align:center;}
}
@media(max-width:400px){
  .mfn-hero-title{font-size:26px;}
  .mfn-product-grid{grid-template-columns:1fr 1fr;gap:10px;}
}

/* ==========================================================================
   Product-page rework (signagev2) — filter bar, swatches, qty, accordion
   ========================================================================== */
/* Shop filter bar */
.mfn-filterbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:0 0 30px;}
.mfn-filter-left{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.mfn-count{font-size:12px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;}
.mfn-pills{display:flex;gap:10px;flex-wrap:wrap;}
.mfn-pill{font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:9px 18px;border:1px solid var(--card-border);background:#fff;color:var(--blue);cursor:pointer;border-radius:0;transition:all .2s;}
.mfn-pill:hover{border-color:var(--blue);}
.mfn-pill.active{background:var(--blue);border-color:var(--blue);color:#fff;}
.mfn-sort{font-size:12px;padding:9px 14px;border:1px solid var(--card-border);background:#fff;color:var(--text);border-radius:0;font-family:var(--font-body);cursor:pointer;}
.mfn-filterbar.is-loading{opacity:.5;pointer-events:none;}
/* Load more */
.mfn-loadmore-wrap{text-align:center;margin:10px 0 50px;}
.mfn-loadmore{font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:14px 40px;background:#fff;color:var(--blue);border:2px solid var(--blue);cursor:pointer;border-radius:0;transition:all .2s;}
.mfn-loadmore:hover{background:var(--blue);color:#fff;}
.mfn-loadmore[disabled]{opacity:.5;cursor:default;}
/* Single product: size swatches (native variation select hidden, buttons shown) */
.single-product .variations{display:block;margin:0 0 6px;}
.single-product .variations tbody,.single-product .variations tr{display:block;}
.single-product .variations th,.single-product .variations td{display:block;width:auto;padding:0;text-align:left;}
.single-product .variations th{font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text);margin:0 0 12px;line-height:1;}
.single-product .variations .reset_variations{display:none;margin:6px 0 0;font-size:11px;color:var(--muted);}
.mfn-swatches{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
.mfn-swatch{min-width:48px;height:48px;padding:0 12px;border:1px solid var(--card-border);background:#fff;color:var(--text);font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;border-radius:0;transition:all .2s;}
.mfn-swatch:hover{border-color:var(--blue);}
.mfn-swatch.active{background:var(--blue);border-color:var(--blue);color:#fff;}
/* Single product: quantity stepper */
.single-product form.cart .quantity{display:inline-flex;align-items:stretch;margin:0 0 16px;}
.single-product form.cart .quantity input.qty{width:56px;height:48px;text-align:center;border:1px solid var(--card-border);border-left:0;border-right:0;border-radius:0;font-size:14px;font-weight:600;-moz-appearance:textfield;}
.single-product form.cart .quantity input.qty::-webkit-outer-spin-button,.single-product form.cart .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.mfn-qty-btn{width:48px;height:48px;border:1px solid var(--card-border);background:#fff;font-size:18px;line-height:1;cursor:pointer;border-radius:0;color:var(--text);}
.mfn-qty-btn:hover{background:var(--bg);}
/* Single product: accordion (replaces Woo tabs) */
.mfn-accordion{margin-top:34px;border-top:1px solid rgba(0,0,0,.1);clear:both;}
.mfn-acc-item{border-bottom:1px solid rgba(0,0,0,.1);}
.mfn-acc-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 2px;background:none;border:0;cursor:pointer;font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text);text-align:left;}
.mfn-acc-trigger:hover{color:var(--accent);}
.mfn-acc-icon{font-size:20px;font-weight:400;line-height:1;transition:transform .2s;}
.mfn-acc-item.active .mfn-acc-icon{transform:rotate(45deg);}
.mfn-acc-panel{display:none;padding:0 2px 22px;}
.mfn-acc-item.active .mfn-acc-panel{display:block;}
.mfn-acc-panel p,.mfn-acc-panel li{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:10px;}
.mfn-acc-panel a{color:var(--accent);text-decoration:underline;}
@media(max-width:768px){
  .mfn-filterbar{flex-direction:column;align-items:stretch;gap:14px;}
  .mfn-sort{width:100%;}
}

/* ==========================================================================
   Cart — signagev2 preview match (v0.6.1)
   Woo + Germanized markup kept intact (legal fields, VAT, Widerruf); CSS only.
   Primary CTAs = navy with red hover (matches the signagev2 preview).
   NOTE: checkout styling was reset to plain in v0.8.0 — being rebuilt
   step-by-step with Mathias. Only the leftover-Elementor-heading suppression
   stays (it hides a redundant duplicate title, not styling).
   ========================================================================== */

/* Suppress leftover Elementor banner heading (theme renders the page title) */
.woocommerce-cart .elementor-widget-heading,
.woocommerce-checkout .elementor-widget-heading{display:none;}

/* Summary / totals card — light-gray box like the preview "Zusammenfassung" */
.woocommerce-cart .cart_totals{
  background:#f0eee9;border:1px solid var(--card-border);padding:26px 28px 30px;
}
.woocommerce-cart .cart_totals h2{
  font-family:var(--font-head);font-size:14px;font-weight:800;letter-spacing:2px;
  text-transform:uppercase;color:var(--blue);margin:0 0 18px;
}
/* clean summary rows */
.woocommerce-cart .cart_totals table.shop_table{
  border:0;margin:0;background:transparent;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
  border:0;border-bottom:1px solid rgba(0,0,0,.08);
  padding:11px 0;font-size:13px;background:transparent;color:var(--text);
}
/* label left, amount right (so "Zwischensumme" + value don't collide) */
.woocommerce-cart .cart_totals table.shop_table th{text-align:left;font-weight:600;}
.woocommerce-cart .cart_totals table.shop_table td{text-align:right;white-space:nowrap;padding-left:16px;}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td{
  border-bottom:0;padding-top:15px;font-size:16px;font-weight:800;
}

/* Primary CTA → navy, red hover, full-width square (preview) */
.woocommerce .wc-proceed-to-checkout a.checkout-button{
  background:var(--blue)!important;color:#fff!important;border:0;border-radius:0;
  width:100%;min-height:54px;margin-top:8px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--font-head);font-weight:800;letter-spacing:2px;
  text-transform:uppercase;font-size:13px;transition:background .2s;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover{background:var(--accent)!important;}

/* Form fields (cart + account; checkout excluded while it's rebuilt plain) */
body:not(.woocommerce-checkout) .woocommerce form .form-row{margin:0 0 14px;}
body:not(.woocommerce-checkout) .woocommerce form .form-row label{
  font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px;display:block;
}
body:not(.woocommerce-checkout) .woocommerce form .form-row input.input-text,
body:not(.woocommerce-checkout) .woocommerce form .form-row textarea,
body:not(.woocommerce-checkout) .woocommerce form .form-row select{
  border:1px solid var(--card-border)!important;border-radius:0!important;
  padding:13px 14px;min-height:48px;font-size:13px;background:#fff;
}
body:not(.woocommerce-checkout) .woocommerce form .form-row input.input-text:focus,
body:not(.woocommerce-checkout) .woocommerce form .form-row textarea:focus{border-color:var(--blue)!important;outline:0;}

/* Cart item links / remove on-brand */
.woocommerce-cart table.cart td.product-name a{color:var(--text);font-weight:600;}
.woocommerce-cart table.cart a.remove{color:var(--accent)!important;}

@media(max-width:768px){
  .woocommerce-cart .cart_totals{padding:20px 18px 24px;}
}

/* ==========================================================================
   Cart layout — preview-style 2-column + item cards (v0.6.3)
   ========================================================================== */
/* Widen the cart content area (theme body + Elementor inner container) */
.woocommerce-cart .mfn-page-body{max-width:1240px;}
.woocommerce-cart .mfn-page-body .elementor-container,
.woocommerce-cart .mfn-page-body .e-con-inner,
.woocommerce-cart .mfn-page-body .elementor-widget-container{max-width:none !important;width:100% !important;}

/* 2-column: items left, summary right (desktop) */
@media(min-width:1000px){
  .woocommerce-cart .woocommerce{
    display:grid;grid-template-columns:1fr 360px;gap:54px;align-items:start;
  }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper{grid-column:1 / -1;}
  .woocommerce-cart form.woocommerce-cart-form{grid-column:1;min-width:0;}
  .woocommerce-cart .cart-collaterals{grid-column:2;}
  .woocommerce-cart .cart_totals{position:sticky;top:100px;}
}
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart-collaterals .cart_totals{width:auto;float:none;margin:0;}

/* De-tabularize the cart table into preview-style item cards */
.woocommerce-cart table.cart{display:block;border:0;margin:0;background:transparent;}
.woocommerce-cart table.cart thead{display:none;}
.woocommerce-cart table.cart tbody{display:block;}
.woocommerce-cart table.cart tr{display:block;}
.woocommerce-cart table.cart td::before{display:none !important;}  /* kill Woo responsive data-title labels */
.woocommerce-cart table.cart tr.cart_item{
  display:grid;
  grid-template-columns:90px 1fr auto;
  grid-template-areas:"thumb name remove" "thumb price price" "thumb qty qty";
  column-gap:20px;row-gap:8px;align-items:center;
  padding:22px 0;border:0;border-bottom:1px solid rgba(0,0,0,.1);
}
.woocommerce-cart table.cart tr.cart_item:first-child{border-top:1px solid rgba(0,0,0,.1);}
.woocommerce-cart table.cart tr.cart_item td{display:block;border:0;padding:0;}
.woocommerce-cart td.product-thumbnail{grid-area:thumb;align-self:start;width:90px;}
.woocommerce-cart td.product-thumbnail img{width:90px !important;height:auto;border:1px solid var(--card-border);}
.woocommerce-cart td.product-name{grid-area:name;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;line-height:1.4;}
.woocommerce-cart td.product-name a{color:var(--text);}
.woocommerce-cart td.product-name .variation{margin-top:4px;font-size:12px;color:var(--muted);text-transform:none;letter-spacing:0;}
.woocommerce-cart td.product-name .variation dt,.woocommerce-cart td.product-name .variation dd{display:inline;margin:0 4px 0 0;font-weight:400;}
.woocommerce-cart td.product-price{grid-area:price;font-weight:700;font-size:14px;color:var(--text);}
.woocommerce-cart td.product-quantity{grid-area:qty;}
.woocommerce-cart td.product-quantity .quantity input.qty{width:84px;height:44px;text-align:center;border:1px solid var(--card-border);border-radius:0;font-size:14px;}
.woocommerce-cart td.product-remove{grid-area:remove;justify-self:end;}
.woocommerce-cart td.product-remove a.remove{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;font-size:20px;line-height:1;font-weight:400;color:var(--accent) !important;background:transparent !important;border-radius:0;text-decoration:none;}
.woocommerce-cart td.product-remove a.remove:hover{background:transparent !important;color:var(--blue) !important;}
.woocommerce-cart table.cart tr.cart_item td.product-subtotal{display:none;}  /* preview shows unit price + qty, not a line subtotal column */

/* Coupon + update-cart row */
.woocommerce-cart table.cart td.actions{display:block;border:0;padding:20px 0 0;text-align:left;}
.woocommerce-cart table.cart td.actions .coupon{display:flex;gap:8px;max-width:440px;}
.woocommerce-cart table.cart td.actions .coupon .input-text{flex:1;min-height:44px;border:1px solid var(--card-border);border-radius:0;padding:0 12px;}
.woocommerce-cart table.cart td.actions .button{min-height:44px;}
.woocommerce-cart table.cart td.actions button[name="update_cart"]{margin:10px 0 0;}

@media(max-width:560px){
  .woocommerce-cart table.cart tr.cart_item{grid-template-columns:70px 1fr auto;column-gap:14px;}
  .woocommerce-cart td.product-thumbnail,.woocommerce-cart td.product-thumbnail img{width:70px;}
}

/* ==========================================================================
   Cart + Checkout vision implementation (v0.6.5)
   Mockups: staging-prep/warenkorb.html + staging-prep/kasse.html
   Woo + Germanized markup preserved — CSS + injected stepper buttons only.
   ========================================================================== */

/* ---- CART: qty stepper (− / + buttons injected by cart-checkout.js) ---- */
.woocommerce-cart td.product-quantity .quantity{display:inline-flex;align-items:stretch;border:1px solid var(--card-border);background:#fff;}
.woocommerce-cart td.product-quantity .quantity input.qty{width:50px;height:42px;border:0;border-left:1px solid var(--card-border);border-right:1px solid var(--card-border);text-align:center;border-radius:0;font:600 14px var(--font-body);-moz-appearance:textfield;}
.woocommerce-cart td.product-quantity .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart td.product-quantity .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.mfn-step-btn{width:40px;height:42px;border:0;background:#fff;font-size:18px;line-height:1;cursor:pointer;color:var(--text);}
.mfn-step-btn:hover{background:var(--bg);}

/* ---- CART: clean coupon + update row (fix the offset buttons) ---- */
.woocommerce-cart table.cart td.actions{display:block;padding:24px 0 0;border:0;}
.woocommerce-cart td.actions .coupon{display:flex !important;flex-wrap:wrap;align-items:flex-start;gap:8px;width:100%;max-width:460px;margin:0;}
.woocommerce-cart td.actions .coupon label{display:none;}
.woocommerce-cart td.actions .coupon input#coupon_code,
.woocommerce-cart td.actions .coupon input.input-text{flex:1 1 200px;min-width:0;height:46px;border:1px solid var(--card-border);border-radius:0;padding:0 14px;font:14px var(--font-body);}
.woocommerce-cart td.actions .coupon button[name="apply_coupon"]{flex:0 0 auto;white-space:nowrap;height:46px;align-self:flex-start;background:var(--blue)!important;color:#fff!important;border:0;}
.woocommerce-cart td.actions .coupon button[name="apply_coupon"]:hover{background:var(--accent)!important;}
/* ANY message inside .coupon (Woo or WT-Smart-Coupons, any class, sync or async)
   is forced onto its own full-width line BELOW the field — so it can never become
   a flex sibling that stretches the button or squashes the input. */
.woocommerce-cart td.actions .coupon > *:not(input):not(button):not(label){flex:0 0 100% !important;width:100% !important;order:9;margin:10px 0 0;padding:11px 14px;font-size:12px;line-height:1.5;border:1px solid var(--accent);color:var(--accent);background:#fff;list-style:none;}
.woocommerce-cart td.actions .coupon > *:not(input):not(button):not(label)::before{display:none;}
.woocommerce-cart td.actions .coupon > *:not(input):not(button):not(label) li{list-style:none;margin:0;}
.woocommerce-cart td.actions button[name="update_cart"]{min-height:46px;margin-top:12px;background:#fff!important;color:var(--blue)!important;border:2px solid var(--blue)!important;}
.woocommerce-cart td.actions button[name="update_cart"]:hover{background:var(--blue)!important;color:#fff!important;}
.mfn-cart-js td.actions button[name="update_cart"]{display:none;}  /* both classes are on <body>; +/- auto-updates */

/* ---- CART: trust list under the proceed button ---- */
.mfn-cart-trust{list-style:none;margin:18px 0 0;padding:0;}
.mfn-cart-trust li{font-size:11px;color:var(--muted);line-height:2;}
.mfn-cart-trust li::before{content:"\2713";color:var(--accent);font-weight:700;margin-right:8px;}

/* ---- CART: "PayPal ohne Konto" hint directly under the PayPal button ---- */
/* Plain text, not clickable (client request). */
.woocommerce-cart .mfn-paypal-note{margin:10px 0 0;text-align:center;font-size:13px;line-height:1.45;color:var(--blue);}

/* ==========================================================================
   CHECKOUT — incremental rebuild (plan: staging-prep/CHECKOUT-REBUILD-PLAN.md)
   Reset to plain in v0.8.0; rebuilt step-by-step, each step reviewed.
   ========================================================================== */

/* ---- Step 1 (v0.8.1): layout skeleton ---- */
/* Wide content area (theme body + Elementor inner containers) */
.woocommerce-checkout .mfn-page-body{max-width:1240px;}
.woocommerce-checkout .mfn-page-body .elementor-container,
.woocommerce-checkout .mfn-page-body .e-con-inner,
.woocommerce-checkout .mfn-page-body .elementor-widget-container{max-width:none !important;width:100% !important;}

/* 2-col grid: form left, summary stack right (sticky). Catch-all sends any
   unknown/injected child (future Germanized blocks) to the right column.
   #order_review is PINNED to row 1 so it always sits top-right: on a validation
   error Woo PREPENDS a .woocommerce-NoticeGroup to form.checkout, and since
   #customer_details holds col 1 rows 1-99, that notice can't place until row 100;
   an un-pinned summary would auto-flow below it (the "summary jumps down" bug).
   The notice lives in col 1 (the wide column) so it stacks under the form. */
@media(min-width:1000px){
  .woocommerce-checkout form.checkout{
    display:grid;grid-template-columns:minmax(0,1fr) 400px;column-gap:54px;align-items:start;
  }
  .woocommerce-checkout form.checkout > *{grid-column:2;min-width:0;}
  .woocommerce-checkout form.checkout > #customer_details{grid-column:1;grid-row:1 / span 99;}
  .woocommerce-checkout form.checkout > #order_review{grid-column:2;grid-row:1;position:sticky;top:120px;}
  .woocommerce-checkout form.checkout > .woocommerce-NoticeGroup{grid-column:1;}
}
/* Woo scrolls to notices on validation errors — keep them out from under the sticky header */
.woocommerce-checkout .woocommerce-NoticeGroup{scroll-margin-top:140px;}

/* Billing + shipping blocks stack single-column in the left column */
.woocommerce-checkout #customer_details .col2-set{display:block;}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{float:none;width:100%;padding:0;}
.woocommerce-checkout #customer_details .col-2{margin-top:26px;}
.woocommerce-checkout #customer_details .col-1::after,
.woocommerce-checkout #customer_details .col-2::after{content:"";display:table;clear:both;}

/* 2-up field pairs. Woo pairs Vor-/Nachname via classes; PLZ/Ort are
   form-row-wide on this install — pair them by ID (immune to Woo's
   address-i18n re-classing on country change). */
.woocommerce-checkout #customer_details .form-row-first{float:left;width:48%;clear:left;}
.woocommerce-checkout #customer_details .form-row-last{float:right;width:48%;}
.woocommerce-checkout #customer_details .form-row-wide{clear:both;width:100%;}
.woocommerce-checkout #customer_details #billing_postcode_field,
.woocommerce-checkout #customer_details #shipping_postcode_field{float:left !important;width:48% !important;clear:left !important;}
.woocommerce-checkout #customer_details #billing_city_field,
.woocommerce-checkout #customer_details #shipping_city_field{float:right !important;width:48% !important;clear:none !important;}

/* ---- Step 2 (v0.8.2): left form — block titles, labels, inputs ---- */
/* Section titles ("Rechnungsdetails", "Zusätzliche Informationen") w/ navy underline */
.woocommerce-checkout #customer_details h3{
  font-family:var(--font-head);font-size:14px;font-weight:800;letter-spacing:2px;
  text-transform:uppercase;color:var(--blue);margin:0 0 20px;padding-bottom:12px;
  border-bottom:2px solid var(--blue);
}
/* Field rows: uppercase mini-labels, red asterisk, square 48px inputs */
.woocommerce-checkout #customer_details .form-row{margin:0 0 16px;padding:0;}
.woocommerce-checkout #customer_details .form-row label{
  display:block;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;
  color:var(--muted);margin-bottom:7px;
}
.woocommerce-checkout abbr.required,
.woocommerce-checkout span.required{color:var(--accent) !important;text-decoration:none;border-bottom:0;}
.woocommerce-checkout #customer_details .form-row input.input-text,
.woocommerce-checkout #customer_details .form-row textarea,
.woocommerce-checkout #customer_details .form-row select{
  width:100%;border:1px solid var(--card-border);border-radius:0;background:#fff;
  padding:13px 14px;min-height:48px;font-size:14px;color:var(--text);
}
.woocommerce-checkout #customer_details .form-row input.input-text::placeholder,
.woocommerce-checkout #customer_details .form-row textarea::placeholder{color:#a8acb3;}
.woocommerce-checkout #customer_details .form-row textarea{min-height:90px;resize:vertical;}
.woocommerce-checkout #customer_details .form-row input.input-text:focus,
.woocommerce-checkout #customer_details .form-row textarea:focus{outline:0;border-color:var(--blue);}
/* select2 (Land/Region) must match the inputs — it ignores the input rules above */
.woocommerce-checkout .select2-container--default .select2-selection--single{
  height:48px;border:1px solid var(--card-border);border-radius:0;background:#fff;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:46px;padding:0 28px 0 14px;font-size:14px;color:var(--text);
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;}
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single{border-color:var(--blue);}
/* Checkbox lines ("Ein Konto erstellen?", "Lieferung an eine andere Adresse senden?")
   — normal-case 13px flex rows; the ship-to h3 loses the section-title look */
.woocommerce-checkout #customer_details h3#ship-to-different-address{
  font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--text);
  border-bottom:0;padding-bottom:0;margin:6px 0 22px;
}
.woocommerce-checkout #customer_details label.woocommerce-form__label-for-checkbox,
.woocommerce-checkout #customer_details .form-row label.woocommerce-form__label-for-checkbox{
  display:flex;align-items:center;gap:10px;font-size:13px;font-weight:400;letter-spacing:0;
  text-transform:none;color:var(--text);margin:0;
}
.woocommerce-checkout #customer_details input[type="checkbox"]{
  width:16px;height:16px;accent-color:var(--blue);margin:0;flex:0 0 16px;
}

/* ---- Step 3 (v0.8.5): order summary card ---- */
.woocommerce-checkout #order_review{
  background:#f0eee9;border:1px solid var(--card-border);padding:26px 28px 30px;
}
/* Germanized hides the heading — bring it back as the card title (sits above the card) */
.woocommerce-checkout #order_review_heading{
  display:block !important;font-family:var(--font-head);font-size:14px;font-weight:800;
  letter-spacing:2px;text-transform:uppercase;color:var(--blue);margin:0 0 14px;
}
/* Items + totals to the TOP of the card. THE ONLY order override in #order_review —
   payment → legal → button keep DOM order so the AGB consent stays adjacent to the
   button (§312j Button-Lösung). CSS-only ⇒ survives Woo's AJAX fragment swaps. */
.woocommerce-checkout #order_review{display:flex;flex-direction:column;}
.woocommerce-checkout #order_review > *{min-width:0;}  /* flex children may shrink (mobile) */
.woocommerce-checkout #order_review > .woocommerce-checkout-review-order-table{order:-1;width:100%;}
/* Review table = clean line list (hide only the thead captions — never data rows) */
.woocommerce-checkout table.woocommerce-checkout-review-order-table{border:0;margin:0 0 6px;background:transparent;}
.woocommerce-checkout .woocommerce-checkout-review-order-table thead{display:none;}
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td{
  border:0;border-bottom:1px solid rgba(0,0,0,.08);padding:11px 0;font-size:13px;
  background:transparent;color:var(--text);
}
.woocommerce-checkout .woocommerce-checkout-review-order-table th{text-align:left;font-weight:600;}
.woocommerce-checkout .woocommerce-checkout-review-order-table td{text-align:right;padding-left:14px;}
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-name{
  text-align:left;font-weight:600;letter-spacing:.3px;line-height:1.4;padding-left:0;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total{white-space:nowrap;font-weight:700;}
/* Germanized already ships item thumbnails — lay them out like the mockup oitem */
.woocommerce-checkout .wc-gzd-cart-item-name-wrapper{display:flex;align-items:center;gap:12px;}
.woocommerce-checkout .wc-gzd-cart-item-thumbnail{flex:0 0 54px;}
.woocommerce-checkout .wc-gzd-cart-item-thumbnail img{
  width:54px;height:auto;display:block;background:#fff;border:1px solid var(--card-border);
}
/* variation / Germanized per-item appendages: muted small print, never hidden */
.woocommerce-checkout .woocommerce-checkout-review-order-table .variation{
  font-size:11px;color:var(--muted);margin:4px 0 0;font-weight:400;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table .variation dt,
.woocommerce-checkout .woocommerce-checkout-review-order-table .variation dd{display:inline;margin:0 4px 0 0;}
/* Totals */
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td{
  border-bottom:0;padding-top:15px;font-size:17px;font-weight:800;
  vertical-align:top;  /* label aligns with the big price line, not the cell middle */
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total small,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total .includes_tax{
  display:block;font-size:10px;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:2px;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-tax th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-tax td{
  border-bottom:0;font-size:11px;color:var(--muted);padding-top:2px;font-weight:600;
}
/* Shipping row: stacked block (long German rate names would force a 176px
   min-width onto the whole value column and overflow the card on mobile) */
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals{
  display:block;padding:11px 0;border-bottom:1px solid rgba(0,0,0,.08);
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td{
  display:block;width:100%;text-align:left;border-bottom:0;padding:0;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td{margin-top:8px;}
.woocommerce-checkout #shipping_method{
  list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;align-items:flex-start;
}
.woocommerce-checkout #shipping_method li{display:flex;align-items:flex-start;gap:6px;margin:0;padding:0;}
.woocommerce-checkout #shipping_method input[type="radio"]{accent-color:var(--blue);margin:2px 0 0;flex:0 0 auto;}
.woocommerce-checkout #shipping_method label{font-size:12px;font-weight:400;margin:0;display:inline;white-space:normal;}
/* DHL pickup-station notice under Straße: small print */
.woocommerce-checkout #billing_pickup_location_notice{font-size:12px;color:var(--muted);}
.woocommerce-checkout #billing_pickup_location_notice a{color:var(--accent);}
@media(max-width:768px){
  .woocommerce-checkout #order_review{padding:20px 18px 24px;}
}

/* ---- Step 4 (v0.8.5): payment ---- */
.woocommerce-checkout #order_payment_heading{
  font-family:var(--font-head);font-size:12px;font-weight:800;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--blue);margin:18px 0 12px;
}
.woocommerce-checkout #payment{background:transparent;border-radius:0;}
.woocommerce-checkout #payment ul.payment_methods{list-style:none;margin:0;padding:0;border:0;}
.woocommerce-checkout #payment ul.payment_methods li{
  list-style:none;border:1px solid var(--card-border);background:#fff;
  padding:13px 14px;margin:0 0 8px;font-size:13px;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked){
  border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);
}
.woocommerce-checkout #payment ul.payment_methods li label{display:inline;font-weight:600;font-size:13px;margin:0;}
.woocommerce-checkout #payment ul.payment_methods li img{float:right;max-height:22px;width:auto;}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]{accent-color:var(--blue);margin-right:8px;}
.woocommerce-checkout #payment div.payment_box{
  background:#fff;border:1px solid var(--card-border);border-radius:0;margin:8px 0 0;
  padding:12px 14px;font-size:12px;line-height:1.5;color:var(--muted);
}
.woocommerce-checkout #payment div.payment_box::before{display:none;}
.woocommerce-checkout #payment div.payment_box:empty{display:none;}
/* Remove the "Zahlungsart auswählen" selector (client request 2026-06-24).
   PayPal is the only gateway, so the heading + single-option radio list are pure
   noise — the real PayPal "Jetzt kaufen" button mounts at the bottom regardless.
   HIDE (not remove): the radio must stay checked + in the DOM so the gateway is the
   chosen method and PPCP's pay button can mount. The top express buttons are stripped
   in functions.php; this leaves just the bottom PayPal button on the page. */
/* !important: Germanized's checkout.js calls $('#order_payment_heading').show(),
   writing an inline display:block that would otherwise beat this rule. */
.woocommerce-checkout #order_payment_heading,
.woocommerce-checkout #payment ul.payment_methods{display:none !important;}

/* ---- Step 5 (v0.8.5): legal + place-order + trust + AJAX fade ---- */
.woocommerce-checkout .wc-gzd-checkbox-placeholder,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{
  margin:16px 0 0;font-size:12px;line-height:1.6;color:var(--muted);
}
.woocommerce-checkout .wc-gzd-checkbox-placeholder .form-row{margin:0 0 10px;}
.woocommerce-checkout .wc-gzd-checkbox-placeholder label{
  display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.6;
}
.woocommerce-checkout .wc-gzd-checkbox-placeholder input[type="checkbox"]{
  accent-color:var(--blue);margin:3px 0 0;flex:0 0 14px;width:14px;height:14px;
}
.woocommerce-checkout .wc-gzd-checkbox-placeholder a{color:var(--accent);text-decoration:underline;}
/* Un-checking the required consent box marks the row .woocommerce-invalid and Woo
   paints the WHOLE label red — keep the text calm, signal invalid on the box itself */
.woocommerce-checkout .wc-gzd-checkbox-placeholder .form-row.woocommerce-invalid label,
.woocommerce-checkout .wc-gzd-checkbox-placeholder .form-row.woocommerce-invalid .woocommerce-form__label-for-checkbox{
  color:var(--muted) !important;
}
.woocommerce-checkout .wc-gzd-checkbox-placeholder .form-row.woocommerce-invalid input[type="checkbox"]{
  outline:2px solid var(--accent);outline-offset:1px;
}
/* Place order: navy, full width, red hover (label text belongs to Germanized) */
.woocommerce-checkout .wc-gzd-order-submit .form-row{margin:0;}
.woocommerce-checkout #place_order{
  background:var(--blue) !important;color:#fff !important;border:0;border-radius:0;
  width:100%;min-height:54px;margin-top:6px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--font-head);font-weight:800;letter-spacing:2px;
  text-transform:uppercase;font-size:13px;transition:background .2s;
}
.woocommerce-checkout #place_order:hover{background:var(--accent) !important;}
/* Trust list under the button (hook output, reuses .mfn-cart-trust) */
.woocommerce-checkout .mfn-cart-trust{margin-top:16px;}
/* Smooth AJAX refresh — kills the doubled-block / spinner flash */
.woocommerce-checkout .blockUI.blockOverlay{opacity:.35 !important;}
.woocommerce-checkout #order_review{transition:opacity .2s;}
.woocommerce-checkout.processing #order_review{opacity:.6;}

/* ==========================================================================
   Mein Konto (v0.9.0) — match design-maritime-signagev2/konto.html
   Dashboard = card grid (nav hidden); endpoints = boxed sidebar + content.
   ========================================================================== */
.woocommerce-account .mfn-page-body{max-width:1240px;}

/* Logged-in dashboard: hide the endpoint nav, content takes full width */
.mfn-account-dashboard .woocommerce-MyAccount-navigation{display:none;}
.mfn-account-dashboard .woocommerce-MyAccount-content{width:100%;float:none;}
.woocommerce-MyAccount-content > p{font-size:14px;line-height:1.7;}
.woocommerce-MyAccount-content p a{color:var(--accent);}

/* Dashboard cards (mockup .dashboard-card) — beat the generic .mfn-page-body a rule */
.mfn-dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:28px 0 48px;}
.mfn-page-body a.mfn-dash-card{text-decoration:none;color:var(--text);}
.mfn-page-body a.mfn-order-link{text-decoration:none;}
.mfn-dash-card{display:block;border:1px solid rgba(0,0,0,.08);background:#fff;padding:32px;transition:box-shadow .3s;color:var(--text);}
.mfn-dash-card:hover{box-shadow:0 8px 30px rgba(0,0,0,.08);}
/* #7 Available coupons in the account dashboard (wt-smart-coupon markup). */
.mfn-dash-coupons{margin:14px 0 40px;}
.mfn-dash-coupons table{width:100%;border-collapse:collapse;}
.mfn-dash-coupons ul{list-style:none;margin:0;padding:0;}
.mfn-dash-coupons li,.mfn-dash-coupons .wt_sc_available_coupon{margin:0 0 12px;padding:14px 16px;border:1px dashed rgba(10,31,68,.45);background:#fff;}
.mfn-dash-card svg{width:28px;height:28px;color:var(--blue);margin-bottom:16px;display:block;}
.mfn-dash-card h3{font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 8px;color:var(--text);}
.mfn-dash-card p{font-size:12px;color:#888;line-height:1.6;margin:0;}

/* Recent orders table (mockup .order-table) */
.mfn-dash-orders-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin:0 0 20px;color:var(--text);}
.mfn-order-table{width:100%;border-collapse:collapse;border:0;margin:0 0 24px;background:transparent;}
.mfn-order-table th{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#888;text-align:left;padding:12px 16px;border:0;border-bottom:2px solid rgba(0,0,0,.08);}
.mfn-order-table td{font-size:13px;padding:16px;border:0;border-bottom:1px solid rgba(0,0,0,.06);background:transparent;}
.mfn-order-status{display:inline-block;padding:4px 14px;background:rgba(10,31,68,.08);color:var(--blue);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;}
.mfn-order-link{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--accent) !important;}
.mfn-order-link:hover{color:var(--blue) !important;}

/* Endpoint pages: boxed sidebar left + content right */
@media(min-width:850px){
  .mfn-account-endpoint .woocommerce{display:grid;grid-template-columns:240px minmax(0,1fr);gap:44px;align-items:start;}
  /* Woo's clearfix ::before/::after become stray grid items (same trap as the shop grid) */
  .mfn-account-endpoint .woocommerce::before,
  .mfn-account-endpoint .woocommerce::after{display:none;}
  .mfn-account-endpoint .woocommerce > .woocommerce-notices-wrapper{grid-column:1 / -1;}
}
.mfn-account-endpoint .woocommerce-MyAccount-navigation{float:none;width:auto;}
.mfn-account-endpoint .woocommerce-MyAccount-content{float:none;width:auto;min-width:0;}
.mfn-account-endpoint .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;border:1px solid rgba(0,0,0,.08);background:#fff;}
/* margin:0 beats .mfn-page-body li's 14px bottom margin — that margin created a
   white strip between rows that the active red border could never cover */
.mfn-account-endpoint .woocommerce-MyAccount-navigation li{border-bottom:1px solid rgba(0,0,0,.06);margin:0;}
.mfn-account-endpoint .woocommerce-MyAccount-navigation li:last-child{border-bottom:0;}
.mfn-account-endpoint .woocommerce-MyAccount-navigation a{display:block;padding:13px 18px;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text);text-decoration:none;transition:background .2s,color .2s;}
.mfn-page-body .woocommerce-MyAccount-navigation a{text-decoration:none;color:var(--text);}
.mfn-account-endpoint .woocommerce-MyAccount-navigation a:hover{background:var(--bg);color:var(--accent);}
/* Active marker on the LI (spans the full row height incl. separator edges —
   on the inner <a> it left a hairline gap at the top). Padding compensated so
   the label doesn't shift 3px vs inactive rows. */
.mfn-account-endpoint .woocommerce-MyAccount-navigation li.is-active{border-left:3px solid var(--accent);background:var(--bg);}
.mfn-account-endpoint .woocommerce-MyAccount-navigation li.is-active a{color:var(--accent);background:transparent;font-weight:700;padding-left:15px;}

/* Endpoint content typography + tables */
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3:not(.mfn-dash-orders-title){font-family:var(--font-head);font-size:14px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--blue);margin:0 0 18px;}
.mfn-account-endpoint .woocommerce-MyAccount-content table.shop_table{border:0;width:100%;border-collapse:collapse;}
.mfn-account-endpoint .woocommerce-MyAccount-content table.shop_table th{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#888;text-align:left;padding:12px 16px;border:0;border-bottom:2px solid rgba(0,0,0,.08);}
.mfn-account-endpoint .woocommerce-MyAccount-content table.shop_table td{font-size:13px;padding:16px;border:0;border-bottom:1px solid rgba(0,0,0,.06);background:transparent;}

/* Fieldsets (Passwort ändern) as clean bordered groups */
.woocommerce-MyAccount-content fieldset{border:1px solid rgba(0,0,0,.08);padding:20px;margin:6px 0 18px;}
.woocommerce-MyAccount-content fieldset legend{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--blue);padding:0 8px;}

/* Addresses: two bordered cards (kill the clearfix pseudo grid-items here too) */
.mfn-account-endpoint .woocommerce-Addresses{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:100%;}
.mfn-account-endpoint .woocommerce-Addresses::before,
.mfn-account-endpoint .woocommerce-Addresses::after{display:none;}
.mfn-account-endpoint .woocommerce-Addresses .col-1,
.mfn-account-endpoint .woocommerce-Addresses .col-2{float:none;width:auto;max-width:none;border:1px solid rgba(0,0,0,.08);background:#fff;padding:24px;}
.mfn-account-endpoint .woocommerce-Address address{font-style:normal;font-size:13px;line-height:1.8;color:var(--text);}

/* Logged-out auth: Anmelden navy filled, Registrieren dark outline (mockup) */
.woocommerce-account form.woocommerce-form-login button[type="submit"]{background:var(--blue) !important;color:#fff !important;border:0;min-height:52px;letter-spacing:2px;}
.woocommerce-account form.woocommerce-form-login button[type="submit"]:hover{background:var(--accent) !important;}
.woocommerce-account form.woocommerce-form-register button[type="submit"]{background:transparent !important;color:var(--dark) !important;border:2px solid var(--dark) !important;min-height:52px;letter-spacing:2px;}
.woocommerce-account form.woocommerce-form-register button[type="submit"]:hover{background:var(--dark) !important;color:#fff !important;}

@media(max-width:900px){
  .mfn-dash-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:600px){
  .mfn-dash-grid{grid-template-columns:1fr;}
  .mfn-account-endpoint .woocommerce-Addresses{grid-template-columns:1fr;}
  .mfn-order-table th,.mfn-order-table td{padding:10px 8px;}
}

/* ---- Step 6 (v0.8.5): login/coupon toggles, discreet (kept per decision) ---- */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{
  background:#fff;border:1px solid var(--card-border);border-top:3px solid var(--blue);
  color:var(--text);font-size:13px;padding:14px 18px;margin:0 0 14px;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a{color:var(--accent);}
.woocommerce-checkout form.login,
.woocommerce-checkout form.checkout_coupon{
  border:1px solid var(--card-border);background:#fff;border-radius:0;padding:20px;margin:0 0 18px;
}
.woocommerce-checkout form.login .form-row input.input-text,
.woocommerce-checkout form.checkout_coupon .form-row input.input-text{
  border:1px solid var(--card-border);border-radius:0;padding:12px 14px;min-height:46px;
}

/* Cart-totals shipping row: stack the SHIPPING label above its options and give the options
   the FULL box width. On narrow viewports WooCommerce's `shop_table_responsive` injects a
   FLOATED `td::before` row-title that squeezes the content column to ~40% — that (not text
   alignment) is what made the rate name wrap to a thin column, so we neutralise it here and
   lay the option out as a float media-object (radio left, label fills the rest). Selectors are
   scoped with the full `.woocommerce-cart .cart_totals table.shop_table` prefix to out-specify
   the base rule `…table.shop_table td{text-align:right;white-space:nowrap}`. */
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals{display:block;width:100%;}
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals th,
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals td{
  display:block;width:100%;box-sizing:border-box;text-align:left;float:none;white-space:normal;padding-left:0;
}
.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals td::before{content:none !important;display:none !important;}
.woocommerce-cart .cart_totals table.shop_table ul#shipping_method{margin:0;padding:0;list-style:none;width:100%;}
.woocommerce-cart .cart_totals table.shop_table ul#shipping_method li{display:block;width:100%;box-sizing:border-box;text-align:left;white-space:normal;margin:4px 0;overflow:hidden;}
.woocommerce-cart .cart_totals table.shop_table ul#shipping_method li input[type="radio"]{float:left;margin:3px 8px 0 0;}
.woocommerce-cart .cart_totals table.shop_table ul#shipping_method li label{display:block;margin:0;text-align:left;overflow:hidden;overflow-wrap:break-word;}
