/* RADO Manufaktur — main.css */

/* ── Local Fonts ── */
@font-face { font-family:'Cormorant Garamond'; src:url('fonts/cormorant-garamond-v21-latin-300.woff2') format('woff2'); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Cormorant Garamond'; src:url('fonts/cormorant-garamond-v21-latin-regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Cormorant Garamond'; src:url('fonts/cormorant-garamond-v21-latin-300italic.woff2') format('woff2'); font-weight:300; font-style:italic; font-display:swap; }
@font-face { font-family:'Cormorant Garamond'; src:url('fonts/cormorant-garamond-v21-latin-italic.woff2') format('woff2'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'Plus Jakarta Sans'; src:url('fonts/plus-jakarta-sans-v12-latin-300.woff2') format('woff2'); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Plus Jakarta Sans'; src:url('fonts/plus-jakarta-sans-v12-latin-regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Plus Jakarta Sans'; src:url('fonts/plus-jakarta-sans-v12-latin-500.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Plus Jakarta Sans'; src:url('fonts/plus-jakarta-sans-v12-latin-600.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }

/* ── Tokens ── */
:root {
    --rd-sage:#7D9B76; --rd-sage-light:#A3BF9C; --rd-sage-pale:#E8F0E6; --rd-sage-dark:#5E7A57;
    --rd-amber:#C8963E; --rd-amber-light:#D4A94E; --rd-amber-pale:#FDF6EB;
    --rd-cream:#FAFAF7; --rd-warm:#F5F2ED;
    --rd-dark:#1A1917; --rd-dark-m:#3A3935;
    --rd-text:#2C2B28; --rd-text-l:#6B6862; --rd-text-ll:#9A958D; --rd-border:#E8E5DF;
    --rd-serif:'Cormorant Garamond',Georgia,serif;
    --rd-sans:'Plus Jakarta Sans',-apple-system,sans-serif;
    --rd-max:1800px;
}

/* ── Reset ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;} body{font-family:var(--rd-sans);color:var(--rd-text);line-height:1.7;background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden;max-width:100%;}
img{max-width:100%;height:auto;display:block;} a{color:inherit;text-decoration:none;} ul,ol{list-style:none;}

/* Any section given a Section-ID (jump anchor) scrolls to stop below the
   fixed 88px header instead of being cut off underneath it. */
section[id]{scroll-margin-top:110px;}

/* ── Container ── */
.rd-container{max-width:var(--rd-max);margin:0 auto;padding:0 32px;}

/* ── Typography ── */
.rd-label{font-family:var(--rd-sans);font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--rd-sage);margin-bottom:12px;}
.rd-title{font-family:var(--rd-serif);font-size:clamp(26px,4vw,42px);font-weight:400;color:var(--rd-dark);line-height:1.2;margin-bottom:16px;}
.rd-title em{font-family:var(--rd-serif);font-style:italic;color:var(--rd-sage);}
.rd-text{font-size:15px;font-weight:300;color:var(--rd-text-l);line-height:1.85;max-width:600px;}
.rd-section{padding:100px 0;}
.rd-section--cream{background:var(--rd-warm);}
.rd-section--sage{background:var(--rd-sage-pale);}
.rd-section--dark{background:var(--rd-dark);} .rd-section--dark .rd-label{color:var(--rd-sage-light);} .rd-section--dark .rd-title{color:#fff;} .rd-section--dark .rd-text{color:rgba(255,255,255,.55);}

/* ── Buttons ── */
.rd-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--rd-sans);font-size:14px;font-weight:500;padding:14px 28px;border-radius:100px;border:none;cursor:pointer;transition:all .3s;text-decoration:none;}
.rd-btn--sm{font-size:12px;padding:10px 20px;}
.rd-btn--dark{background:var(--rd-dark);color:#fff;} .rd-btn--dark:hover{background:var(--rd-dark-m);color:#fff;}
.rd-btn--amber{background:var(--rd-amber);color:#fff;box-shadow:0 4px 16px rgba(200,150,62,.25);} .rd-btn--amber:hover{background:var(--rd-amber-light);color:#fff;}
.rd-btn--sage{background:var(--rd-sage);color:#fff;} .rd-btn--sage:hover{background:var(--rd-sage-dark);color:#fff;}
.rd-btn--outline{background:transparent;color:var(--rd-dark);border:1.5px solid var(--rd-dark);} .rd-btn--outline:hover{background:var(--rd-dark);color:#fff;}
.rd-btn--outline-dark{background:transparent;color:var(--rd-dark);border:1.5px solid var(--rd-dark);} .rd-btn--outline-dark:hover{background:var(--rd-dark);color:#fff;}
.rd-btn--whatsapp{background:#25D366;color:#fff;font-size:12px;padding:8px 16px;} .rd-btn--whatsapp:hover{background:#1fb855;color:#fff;}

/* ══════════ HEADER ══════════ */
.rd-header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:all .3s;}
.rd-header__inner{max-width:var(--rd-max);margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:80px;}
.rd-header__logo svg{height:36px;width:auto;fill:#fff;transition:fill .3s;}
.rd-header__logo-text{font-family:var(--rd-sans);font-weight:600;font-size:18px;color:#fff;}
.rd-header__right{display:flex;align-items:center;gap:32px;}
.rd-header__nav{display:flex;align-items:center;gap:8px;}
.rd-nav__list{display:flex;gap:24px;list-style:none;}
.rd-nav__list a{font-size:14px;font-weight:400;color:rgba(255,255,255,.85);border-bottom:2px solid transparent;padding-bottom:2px;transition:color .2s,border-color .2s;} .rd-nav__list a:hover{color:var(--rd-sage-light);border-bottom-color:var(--rd-sage);}
.rd-nav__list .current-menu-item a{border-bottom-color:var(--rd-sage);color:#fff;}
.rd-header__actions{display:flex;align-items:center;gap:10px;margin-left:24px;}
.rd-header__cart{color:rgba(255,255,255,.85);position:relative;flex-shrink:0;} .rd-header__cart-count{position:absolute;top:-6px;right:-8px;background:var(--rd-amber);color:#fff;font-size:10px;font-weight:600;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
/* Mobile-only nav content (drawer head, contact block, socials) — hidden
   on desktop, where the main header already has its own logo/cart and
   this content doesn't apply. Shown in the mobile drawer, see the
   max-width:767px block below. */
.rd-header__nav-mobile-head,.rd-header__nav-contact,.rd-header__nav-social{display:none;}

/* Sticky state */
.rd-header--sticky{background:rgba(250,250,247,.95);backdrop-filter:blur(12px);box-shadow:0 2px 12px rgba(0,0,0,.06);}
.rd-header--sticky .rd-header__logo svg{fill:var(--rd-dark);}
.rd-header--sticky .rd-nav__list a{color:var(--rd-text);} .rd-header--sticky .rd-nav__list a:hover{color:var(--rd-sage);border-bottom-color:var(--rd-sage);}
.rd-header--sticky .rd-nav__list .current-menu-item a{border-bottom-color:var(--rd-sage);}
.rd-header--sticky .rd-header__cart{color:var(--rd-text);}
.rd-header--sticky .rd-header__logo-text{color:var(--rd-dark);}

/* Mobile toggle */
.rd-header__toggle{display:none;background:none;border:none;cursor:pointer;width:28px;height:20px;position:relative;z-index:10;}
.rd-header__toggle span{display:block;width:100%;height:2px;background:#fff;position:absolute;left:0;transition:all .3s;}
.rd-header__toggle span:nth-child(1){top:0;} .rd-header__toggle span:nth-child(2){top:9px;} .rd-header__toggle span:nth-child(3){top:18px;}
.rd-header--sticky .rd-header__toggle span{background:var(--rd-dark);}

/* ══════════ HERO SLIDER ══════════ */
.rd-hero-slider{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;}
.rd-hero-slider__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s;display:flex;align-items:flex-end;}
.rd-hero-slider__slide.active{opacity:1;z-index:1;}
.rd-hero-slider__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(26,25,23,.7) 0%,rgba(26,25,23,.2) 50%,transparent 100%);}
.rd-hero-slider__content{position:relative;z-index:2;width:100%;padding-bottom:100px;}
.rd-hero-slider__content h1{font-family:var(--rd-serif);font-size:clamp(32px,5vw,56px);font-weight:400;color:#fff;line-height:1.15;margin-bottom:12px;max-width:700px;}
.rd-hero-slider__content p{font-size:16px;color:rgba(255,255,255,.65);margin-bottom:24px;max-width:500px;}
.rd-hero-slider__dots{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:8px;}
.rd-hero-slider__dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.3);border:none;cursor:pointer;transition:all .3s;} .rd-hero-slider__dot.active{background:#fff;transform:scale(1.3);}
.rd-hero-slider__nav{position:absolute;top:50%;z-index:3;width:100%;display:flex;justify-content:space-between;padding:0 24px;pointer-events:none;}
.rd-hero-slider__prev,.rd-hero-slider__next{pointer-events:all;background:rgba(255,255,255,.1);backdrop-filter:blur(4px);border:none;color:#fff;font-size:28px;width:48px;height:48px;border-radius:50%;cursor:pointer;transition:all .2s;} .rd-hero-slider__prev:hover,.rd-hero-slider__next:hover{background:rgba(255,255,255,.25);}

/* ── Slide-Animation Variante (statt Fade) ──
   Track wird abspos+inset:0 (wie zuvor die Slides), damit er dieselbe
   über min-height:100vh aufgelöste Höhe des .rd-hero-slider erbt — ein
   einfaches height:100% würde hier nicht auflösen, da min-height keine
   "definite height" im Sinne der Prozent-Höhen-Berechnung ist. */
.rd-hero-slider--anim-slide .rd-hero-slider__track{position:absolute;inset:0;display:flex;transition:transform 1s ease;}
.rd-hero-slider--anim-slide .rd-hero-slider__slide{position:relative;inset:auto;flex:0 0 100%;opacity:1;transition:none;}

/* ══════════ HERO FULLWIDTH ══════════ */
.rd-hero{position:relative;min-height:90vh;display:flex;align-items:flex-end;background-size:cover;background-position:center;margin-top:0;}
.rd-hero__overlay{position:absolute;inset:0;background:rgba(26,25,23,.4);}
.rd-hero__content{position:relative;z-index:2;width:100%;padding:0 0 80px;}
.rd-hero h1{font-family:var(--rd-serif);font-size:clamp(32px,5vw,56px);font-weight:300;color:#fff;line-height:1.15;margin-bottom:12px;max-width:700px;}
.rd-hero__sub{font-size:16px;color:rgba(255,255,255,1);margin-bottom:24px;max-width:500px;}
.rd-hero__actions{display:flex;gap:16px;flex-wrap:wrap;}

/* ══════════ CARD GRID ══════════ */
.rd-card-grid{display:grid;column-gap:24px;row-gap:64px;margin-top:32px;}
.rd-card-grid--2{grid-template-columns:repeat(2,1fr);}
.rd-card-grid--3{grid-template-columns:repeat(3,1fr);}
.rd-card-grid--4{grid-template-columns:repeat(4,1fr);}
.rd-card{background:#fff;border-radius:0;overflow:hidden;transition:all .3s;text-decoration:none;display:block;}
.rd-card__img{overflow:hidden;} .rd-card__img img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s;} .rd-card:hover .rd-card__img img{transform:scale(1.03);}
.rd-card__body{padding:20px 0 0;}
.rd-card__eyebrow{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--rd-dark);margin-bottom:4px;}
.rd-card__title{font-size:15px;font-weight:600;color:var(--rd-dark);margin-bottom:4px;}
.rd-card__text{font-size:13px;color:var(--rd-text-l);font-weight:300;margin-bottom:12px;}
.rd-card__date{font-size:12px;color:var(--rd-text-ll);margin-bottom:6px;display:block;}

/* ══════════ TEXT + IMAGE ══════════ */
.rd-text-image__grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.rd-text-image--left .rd-text-image__grid{direction:rtl;} .rd-text-image--left .rd-text-image__grid>*{direction:ltr;}
.rd-text-image__media img{border-radius:12px;width:100%;}
.rd-text-image__media iframe{width:100%;aspect-ratio:16/9;border:none;border-radius:12px;}
.rd-text-image__body .rd-btn{margin-top:20px;background:var(--rd-sage)!important;border-color:var(--rd-sage)!important;color:#fff!important;}
.rd-text-image__body .rd-btn:hover{background:var(--rd-sage-dark)!important;border-color:var(--rd-sage-dark)!important;color:#fff!important;}

/* ══════════ TEXT + IMAGE FULLWIDTH ══════════ */
.rd-text-image-full{display:grid;grid-template-columns:1fr 1fr;min-height:500px;}
.rd-text-image-full--img-right{direction:rtl;} .rd-text-image-full--img-right>*{direction:ltr;}
.rd-text-image-full__img img{width:100%;height:100%;object-fit:cover;}
.rd-text-image-full__body{padding:64px 48px;display:flex;flex-direction:column;justify-content:center;}
.rd-text-image-full--dark{background:var(--rd-dark);} .rd-text-image-full--dark .rd-title{color:#fff;} .rd-text-image-full--dark .rd-text{color:#fff;}
.rd-text-image-full--cream{background:var(--rd-cream);}

/* ══════════ ICON GRID ══════════ */
.rd-icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;margin-top:32px;}
.rd-icon-grid__icon{width:44px;height:44px;border-radius:10px;background:var(--rd-sage-pale);display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.rd-icon-grid__icon svg{width:22px;height:22px;stroke:var(--rd-sage);fill:none;stroke-width:1.8;}
.rd-icon-grid__item h4{font-size:14px;font-weight:600;color:var(--rd-dark);margin-bottom:4px;}
.rd-icon-grid__item p{font-size:13px;color:var(--rd-text-l);font-weight:300;}
.rd-section--dark .rd-icon-grid__item h4{color:#fff;}
.rd-section--dark .rd-icon-grid__item p{color:rgba(255,255,255,.55);}
.rd-section--dark .rd-icon-grid__icon{background:rgba(255,255,255,.08);}
.rd-section--dark .rd-icon-grid__icon svg{stroke:var(--rd-sage-light);}

/* ── M18: USP-Schritte ── */
.rd-usp-steps__header{margin-bottom:32px;max-width:600px;}
.rd-usp-steps__header .rd-text{margin-top:8px;}
.rd-usp-steps__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.rd-usp-steps__item{background:#fff;border:1px solid var(--rd-border);border-radius:10px;padding:24px 20px;box-shadow:0 8px 28px rgba(125,155,118,.16);transition:box-shadow .25s,transform .25s;}
.rd-usp-steps__item:hover{box-shadow:0 12px 36px rgba(125,155,118,.26);transform:translateY(-2px);}
.rd-usp-steps__item h4{font-family:var(--rd-sans);font-size:14px;font-weight:600;color:var(--rd-dark);margin:0 0 8px;}
.rd-usp-steps__item p{font-size:13px;color:var(--rd-text-l);font-weight:300;line-height:1.6;margin:0;}
.rd-section--dark .rd-usp-steps__item{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);box-shadow:0 8px 28px rgba(0,0,0,.3);}
.rd-section--dark .rd-usp-steps__item:hover{box-shadow:0 12px 36px rgba(163,191,156,.2);}
.rd-section--dark .rd-usp-steps__item h4{color:#fff;}
.rd-section--dark .rd-usp-steps__item p{color:rgba(255,255,255,.55);}
@media(max-width:1024px){.rd-usp-steps__grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.rd-usp-steps__grid{grid-template-columns:1fr;}}

/* ── M19: Story-Spalten (3 Spalten: Headline | Text | Text) ── */
.rd-story-columns .rd-title{margin-bottom:0;}
.rd-story-columns__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px;align-items:start;}
.rd-story-columns__head{display:flex;flex-direction:column;justify-content:center;}
@media(max-width:1024px){.rd-story-columns__grid{grid-template-columns:1fr 1fr;}.rd-story-columns__head{grid-column:1/-1;}}
@media(max-width:767px){.rd-story-columns__grid{grid-template-columns:1fr;gap:24px;}.rd-story-columns__head{grid-column:auto;}}
/* Fluid, not fixed px: headings already shrink via clamp() on small
   viewports, so a fixed-px body size can end up nearly as large as the
   heading on mobile (reported: "Groß" body vs. headline looked almost
   identical on a phone). These clamp()s keep body text noticeably smaller
   than the heading at every width, not just on desktop. */
.rd-richtext--body-medium .rd-richtext__body{font-size:clamp(15px,3.8vw,17px);}
.rd-richtext--body-big .rd-richtext__body{font-size:clamp(16px,4.2vw,20px);}
.rd-text-image--body-medium .rd-text-image__body .rd-text{font-size:clamp(15px,3.8vw,17px);}
.rd-text-image--body-big .rd-text-image__body .rd-text{font-size:clamp(16px,4.2vw,20px);}

/* ══════════ TIMELINE ══════════ */
.rd-timeline__grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.rd-timeline__step{padding:24px 0;border-bottom:1px solid var(--rd-border);}
.rd-timeline__step h3{font-size:18px;font-weight:600;color:var(--rd-dark);margin-bottom:4px;}
.rd-timeline__subtitle{font-size:14px;color:var(--rd-text-l);margin-bottom:12px;}
.rd-timeline__bar{width:100%;height:6px;background:var(--rd-border);border-radius:3px;margin-bottom:12px;position:relative;overflow:hidden;}
.rd-timeline__bar div{height:100%;background:var(--rd-dark);border-radius:3px;position:relative;}
.rd-timeline__bar span{position:absolute;right:0;top:-20px;font-size:11px;color:var(--rd-text-ll);}
.rd-timeline__img{position:sticky;top:120px;} .rd-timeline__img img{border-radius:12px;width:100%;}

/* ══════════ CONTACT ══════════ */
.rd-contact{position:relative;padding:100px 0;background-size:cover;background-position:center;}
.rd-contact__overlay{position:absolute;inset:0;background:rgba(26,25,23,.8);}
.rd-contact__grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.rd-contact .rd-title{color:#fff;} .rd-contact .rd-text{color:rgba(255,255,255,.6);}

/* ══════════ CTA BANNER ══════════ */
.rd-cta-banner{padding:24px 0;border-top:1px solid var(--rd-border);border-bottom:1px solid var(--rd-border);}
.rd-cta-banner__inner{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;}
.rd-cta-banner__text{font-size:16px;font-weight:400;color:var(--rd-text);}

/* ══════════ FAQ ══════════ */
.rd-faq__list{max-width:900px;} .rd-faq__item{border-bottom:1px solid var(--rd-border);} .rd-faq__q{padding:20px 0;font-size:15px;font-weight:500;color:var(--rd-dark);cursor:pointer;display:flex;justify-content:space-between;align-items:center;}
.rd-faq__q::after{content:'+';font-size:20px;color:var(--rd-text-ll);transition:transform .2s;} .rd-faq__item.open .rd-faq__q::after{content:'−';}
.rd-faq__a{display:none;padding:0 0 20px;font-size:14px;color:var(--rd-text-l);font-weight:300;line-height:1.7;} .rd-faq__item.open .rd-faq__a{display:block;}

/* ══════════ FULLWIDTH IMAGE ══════════ */
.rd-fullwidth-img{overflow:hidden;} .rd-fullwidth-img img{width:100%;object-fit:cover;}

/* ══════════ BLOG GRID ══════════ */
.rd-blog-grid .rd-card--blog{text-decoration:none;} .rd-blog-grid .rd-card__title{text-transform:uppercase;font-size:13px;letter-spacing:.5px;}

/* ══════════ RICHTEXT ══════════ */
.rd-richtext{padding:60px 0;} .rd-richtext--narrow .rd-container{max-width:800px;}
.rd-richtext--center{text-align:center;} .rd-richtext--center .rd-richtext__body{margin-left:auto;margin-right:auto;}
.rd-richtext--right{text-align:right;}
.rd-richtext__body{font-size:15px;font-weight:300;color:var(--rd-text-l);line-height:1.85;}
.rd-richtext__body p{margin-bottom:16px;}
.rd-richtext__body p:last-child{margin-bottom:0;}
.rd-richtext--tw-narrow .rd-richtext__body p{max-width:700px;}
.rd-section--dark .rd-richtext__body{color:rgba(255,255,255,.55);}

/* ── Links innerhalb von Textblöcken (Richtext, Fließtext, Beschreibungen) ── */
.rd-richtext__body a,
.rd-text a,
.rd-product__short-desc a,
.rd-product__description a,
.rd-contact-split__info a,
.rd-legal__content a{
    color:inherit;
    text-decoration:none;
    border-bottom:1px solid var(--rd-sage-light);
    transition:border-color .3s ease,color .3s ease;
}
.rd-richtext__body a:hover,
.rd-text a:hover,
.rd-product__short-desc a:hover,
.rd-product__description a:hover,
.rd-contact-split__info a:hover,
.rd-legal__content a:hover{
    color:var(--rd-sage-dark);
    border-color:var(--rd-sage-dark);
}
.rd-section--dark .rd-richtext__body a{color:var(--rd-sage-light);border-color:rgba(255,255,255,.3);}
.rd-section--dark .rd-richtext__body a:hover{color:#fff;border-color:var(--rd-sage-light);}

/* ══════════ FOOTER ══════════ */
.rd-footer{background:var(--rd-dark);color:rgba(255,255,255,.5);padding:64px 0 32px;}
.rd-footer__inner{max-width:var(--rd-max);margin:0 auto;padding:0 32px;}
.rd-footer__grid{display:grid;grid-template-columns:auto 1fr 1fr 1fr auto;gap:48px;margin-bottom:48px;align-items:start;}
.rd-footer__logo svg{height:40px;width:auto;fill:#fff;}
.rd-footer__col h5{font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:16px;}
.rd-footer__links{list-style:none;} .rd-footer__links li{font-size:14px;line-height:2;} .rd-footer__links a{color:rgba(255,255,255,.5);transition:color .2s;} .rd-footer__links a:hover{color:var(--rd-sage-light);}
.rd-footer__bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.rd-footer__social{display:flex;gap:16px;} .rd-footer__social a{color:rgba(255,255,255,.4);transition:color .2s;} .rd-footer__social a:hover{color:#fff;}
.rd-footer__legal-links{display:flex;gap:20px;list-style:none;} .rd-footer__legal-links a{font-size:13px;color:rgba(255,255,255,.35);} .rd-footer__legal-links a:hover{color:rgba(255,255,255,.7);}

/* ══════════ PRODUCT CARDS (WooCommerce) ══════════ */
.rph-product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.rph-product-card{background:#fff;border-radius:10px;overflow:hidden;transition:all .3s;border:1px solid var(--rd-border);text-decoration:none;display:block;}
.rph-product-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.08);}
.rph-product-card__img{aspect-ratio:3/4;overflow:hidden;} .rph-product-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .4s;} .rph-product-card:hover .rph-product-card__img img{transform:scale(1.05);}
.rph-product-card__info{padding:16px 18px;}
.rph-product-card__name{font-size:14px;font-weight:600;color:var(--rd-dark);margin:0 0 4px;}
.rph-product-card__price{font-size:14px;color:var(--rd-amber);font-weight:600;}
.rd-price-unit{font-size:11px;font-weight:400;color:var(--rd-text-ll);text-transform:none;}
.rph-products__text{max-width:640px;margin:0 0 32px;}
.rph-filters{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:32px;}
.rph-filter-pill{font-family:var(--rd-sans);font-size:12px;font-weight:500;padding:8px 18px;border-radius:100px;border:1.5px solid var(--rd-border);background:#fff;color:var(--rd-text-l);cursor:pointer;transition:all .2s;} .rph-filter-pill:hover{border-color:var(--rd-sage);} .rph-filter-pill.active{background:var(--rd-sage);border-color:var(--rd-sage);color:#fff;}

/* ══════════ SHOP-ÜBERSICHT (archive-product.php) ══════════ */
.rd-shop-archive{padding-top:100px;}
.rd-shop-hero{padding:48px 0 32px;text-align:center;}
.rd-shop-hero .rd-shop-hero__inner{max-width:760px;margin:0 auto;}
.rd-shop-hero .rd-label,.rd-shop-hero .rd-title{text-align:center;}
.rd-shop-hero__sub{font-size:16px;color:var(--rd-text-l);line-height:1.7;margin:0 auto 28px;max-width:520px;}
.rd-shop-hero__ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.rd-shop-products{padding-top:24px;}
.rd-shop-empty{text-align:center;padding:60px 0;color:var(--rd-text-l);}
.rd-shop-pagination{margin-top:48px;}
.rd-shop-pagination .woocommerce-pagination ul{display:flex;justify-content:center;gap:8px;list-style:none;padding:0;}
.rd-shop-pagination .page-numbers{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 10px;border-radius:100px;border:none;color:var(--rd-text);font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;}
.rd-shop-pagination .page-numbers:hover{color:var(--rd-sage);}
.rd-shop-pagination .page-numbers.current{background:var(--rd-sage);color:#fff;}
.rd-shop-pagination .page-numbers.dots{border:none;}

/* ══════════ RESPONSIVE ══════════ */
@media(max-width:1024px){
    .rd-card-grid--4{grid-template-columns:repeat(2,1fr);}
    .rd-text-image__grid,.rd-timeline__grid,.rd-contact__grid{grid-template-columns:1fr;}
    .rd-text-image-full{grid-template-columns:1fr;}
    .rd-footer__grid{grid-template-columns:repeat(2,1fr);}
    .rph-product-grid{grid-template-columns:repeat(2,1fr);}
    .rd-text-image--left .rd-text-image__grid{direction:ltr;}
    .rd-text-image-full--img-right{direction:ltr;}
}
@media(max-width:767px){
    .rd-container{padding:0 20px;}
    .rd-section{padding:64px 0;}
    .rd-header__toggle{display:block;}
    .rd-header__nav{
        position:fixed;top:0;right:-100%;width:100%;height:100vh;
        background:rgba(94,122,87,.95);
        backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
        flex-direction:column;align-items:flex-start;
        padding:24px 40px 40px;
        overflow-y:auto;
        transition:right .3s;
    }
    .rd-header__nav.open{right:0;}
    .rd-header__nav.open ~ .rd-header__cart,
    .rd-header__nav.open ~ .rd-header__toggle{display:none;}

    /* Mobile-head stays pinned at the top; the auto margins on the first/
       last item of the "centerable" group below vertically center that
       whole group in the remaining space, without needing an extra
       wrapper element around it. */
    .rd-header__nav-mobile-head{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:0;flex-shrink:0;}
    .rd-header__nav .rd-header__nav-logo svg,
    .rd-header__nav .rd-header__nav-logo svg path,
    .rd-header__nav .rd-header__nav-logo svg polygon,
    .rd-header__nav .rd-header__nav-logo svg rect{height:32px;width:auto;fill:#fff!important;}
    .rd-header__nav-mobile-actions{display:flex;align-items:center;gap:16px;}
    .rd-header__nav-mobile-actions .rd-header__cart{color:#fff;}
    .rd-header__nav-close{background:none;border:none;color:#fff;cursor:pointer;padding:4px;display:flex;}

    .rd-header__nav .rd-nav__list{flex-direction:column;gap:8px;margin-top:auto;}
    .rd-header__nav .rd-nav__list a{color:#fff;font-size:24px;}
    .rd-header__nav .rd-nav__list .current-menu-item a{color:#fff;}

    .rd-header__nav .rd-header__actions{flex-direction:column;align-items:flex-start;margin-left:0;margin-top:16px;width:100%;gap:16px;}
    .rd-header__nav .rd-header__actions .rd-btn{
        background:none!important;border:none!important;box-shadow:none!important;
        color:#fff!important;padding:0!important;font-size:24px!important;font-weight:400!important;
        border-radius:0!important;width:auto!important;
    }

    .rd-header__nav-mobile-head,.rd-header__nav-contact,.rd-header__nav-social{display:flex;}
    .rd-header__nav-contact{flex-direction:column;gap:10px;margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.25);width:100%;}
    .rd-header__nav-contact a{color:rgba(255,255,255,.85);font-size:14px;}
    .rd-header__nav-social{gap:16px;margin-top:24px;margin-bottom:auto;}
    .rd-header__nav-social a{color:#fff;display:flex;}
    .rd-card-grid--2,.rd-card-grid--3,.rd-card-grid--4{grid-template-columns:1fr;}
    .rd-card-grid{row-gap:40px;}
    .rph-product-grid{grid-template-columns:1fr 1fr;gap:12px;}
    .rd-footer__grid{grid-template-columns:1fr;}
    .rd-hero-slider__content h1{font-size:28px;}
    .rd-text-image-full__body{padding:40px 24px;}
}


.rd-container { max-width: var(--rd-max); padding: 0 48px; }

/* ── FIX 1: Header fullwidth, Logo größer, Menü größer, Buttons schwarz ── */
.rd-header__inner { max-width: 1800px; padding: 0 48px; height: 112px; }
.rd-header__logo svg { height: 48px; fill: #fff !important; }
.rd-header__logo svg path,
.rd-header__logo svg polygon,
.rd-header__logo svg rect { fill: #fff !important; }
.rd-header--sticky .rd-header__logo svg,
.rd-header--sticky .rd-header__logo svg path,
.rd-header--sticky .rd-header__logo svg polygon,
.rd-header--sticky .rd-header__logo svg rect { fill: var(--rd-dark) !important; }
.rd-nav__list { gap: 40px; }
.rd-nav__list a { font-size: 18px; font-weight: 400; }
.rd-header__right { gap: 44px; }
.rd-header__actions { gap: 16px; margin-left: 36px; }
.rd-header__actions .rd-btn--amber { background: var(--rd-dark); color: #fff; border: none; }
.rd-header__actions .rd-btn--outline-dark { background: transparent; color: #fff; border-color: #fff; }
.rd-header--sticky .rd-header__actions .rd-btn--outline-dark { color: var(--rd-dark); border-color: var(--rd-dark); }
.rd-header--sticky .rd-nav__list a { font-size: 18px; }

/* ── FIX 2: Hero breiter, linksbündig, <span> sage+italic ── */
.rd-hero-slider__content { max-width: 1800px; padding: 0 48px 100px; margin: 0 auto; }
.rd-hero-slider__content h1 { font-size: clamp(36px, 5vw, 64px); max-width: 900px; text-align: left; }
.rd-hero-slider__content h1 span { color: var(--rd-sage-light); font-style: italic; }
.rd-hero-slider__content p { text-align: left; }
.rd-hero__content { max-width: 1800px; padding: 0 48px 80px; margin: 0 auto; }
.rd-hero__content h1 span { color: var(--rd-sage-light); font-style: italic; }

/* ── FIX 4: Card Grid — Headline+Text über Bild, Buttons unter Bild, Hover-Zoom ── */
.rd-card { display: flex; flex-direction: column; }
.rd-card__body { order: -1; padding: 0 0 16px; }
.rd-card__img { order: 0; border-radius: 0; overflow: hidden; }
.rd-card__img img { transition: transform 0.5s ease; }
.rd-card:hover .rd-card__img img { transform: scale(1.04); }
.rd-card .rd-btn { order: 1; margin-top: 16px; align-self: flex-start; }
/* Eyebrow uppercase bold */
.rd-card__eyebrow { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; }
.rd-card__text { font-size: 14px; margin-bottom: 0; }

/* ── FIX 5: Contact Section — SVG shape divider at bottom edge ── */
.rd-contact { position: relative; padding-top: 100px !important; padding-bottom: 140px !important; }
.rd-contact__shape-wrap {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 90px;
    z-index: 1;
    overflow: hidden;
}
.rd-contact__shape {
    display: block;
    width: 100%;
    height: 100%;
    fill: #fff;
}

/* ── FIX 6: FluentForm in Contact Sektion — white labels, sage button, milchglas inputs ── */
.rd-contact .fluentform label,
.rd-contact .ff-el-input--label label {
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    font-style: italic;
}
.rd-contact .fluentform input[type="text"],
.rd-contact .fluentform input[type="email"],
.rd-contact .fluentform input[type="tel"],
.rd-contact .fluentform input[type="number"],
.rd-contact .fluentform textarea {
    background: rgba(255,255,255,0.12) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    border-radius: 0 !important;
    color: #fff !important;
    padding: 14px 16px !important;
    font-size: 14px !important;
}
.rd-contact .fluentform input::placeholder,
.rd-contact .fluentform textarea::placeholder {
    color: rgba(255,255,255,0.4) !important;
}
.rd-contact .fluentform input:focus,
.rd-contact .fluentform textarea:focus {
    border-color: var(--rd-sage-light) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(125,155,118,0.2) !important;
}
.rd-contact .fluentform .ff-btn-submit {
    background: var(--rd-dark) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 100px !important;
    padding: 14px 32px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    cursor: pointer;
    transition: all 0.3s;
}
.rd-contact .fluentform .ff-btn-submit:hover {
    background: var(--rd-dark-m) !important;
}

/* ── FIX 7: Text+Image Fullwidth — größere Headline, Button fix ── */
.rd-text-image-full__body .rd-title {
    font-size: clamp(28px, 4vw, 44px);
}
.rd-text-image-full__body .rd-text {
    max-width: none;
    margin-bottom: 36px;
}
.rd-text-image-full--body-medium .rd-text-image-full__body .rd-text{font-size:clamp(15px,3.8vw,17px);}
.rd-text-image-full--body-big .rd-text-image-full__body .rd-text{font-size:clamp(16px,4.2vw,20px);}
.rd-text-image-full__body .rd-text p {
    margin-bottom: 36px;
}
.rd-text-image-full__body .rd-text p:last-child {
    margin-bottom: 0;
}
.rd-text-image-full__body .rd-btn {
    display: inline-flex;
    margin-top: 16px;
}
/* Cream-Variante: korrekter Button-Stil */
.rd-text-image-full--cream .rd-btn {
    border: 1.5px solid var(--rd-dark);
    background: transparent;
    color: var(--rd-dark);
    border-radius: 100px;
    padding: 14px 32px;
}
.rd-text-image-full--cream .rd-btn:hover {
    background: var(--rd-dark);
    color: #fff;
}
/* Dark-Variante: weißer Outline-Button */
.rd-text-image-full--dark .rd-btn {
    border: 1.5px solid #fff;
    background: transparent;
    color: #fff;
    border-radius: 100px;
    padding: 14px 32px;
}
.rd-text-image-full--dark .rd-btn:hover {
    background: #fff;
    color: var(--rd-dark);
}
/* Sage-Variante */
.rd-text-image-full--sage { background: var(--rd-sage-pale); }
.rd-text-image-full--sage .rd-title { color: var(--rd-dark); }
.rd-text-image-full--sage .rd-text { color: var(--rd-text-l); }

/* CTA button: solid sage green across every background variant */
.rd-text-image-full .rd-btn {
    background: var(--rd-sage) !important;
    border-color: var(--rd-sage) !important;
    color: #fff !important;
}
.rd-text-image-full .rd-btn:hover {
    background: var(--rd-sage-dark) !important;
    border-color: var(--rd-sage-dark) !important;
    color: #fff !important;
}

/* ── FIX 8: Timeline — Bild aspect 4/5 ── */
.rd-timeline__img img {
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 12px;
}

/* ── FIX 9: Lebensqualität Sektion (Text+Image fixiert) ── */
/* Fix für text_image_full wenn body leer erscheint */
.rd-text-image-full {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 500px;
    overflow: hidden;
}
.rd-text-image-full__img {
    overflow: hidden;
}
.rd-text-image-full__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.rd-text-image-full__body {
    padding: 64px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
/* img-left: Bild zuerst (Standard) */
.rd-text-image-full--img-left { direction: ltr; }
/* img-right: Bild rechts */
.rd-text-image-full--img-right .rd-text-image-full__img { order: 2; }
.rd-text-image-full--img-right .rd-text-image-full__body { order: 1; }

/* ── FIX 10: Footer ── */
.rd-footer { background: var(--rd-dark); padding: 64px 0 0; }
.rd-footer__inner { max-width: 1800px; padding: 0 48px; }
.rd-footer__grid {
    display: grid;
    grid-template-columns: auto 1fr 1fr 1fr auto;
    gap: 48px;
    margin-bottom: 48px;
    align-items: start;
}
/* Linke Spalte: Signet */
.rd-footer__brand {
    display: flex;
    align-items: flex-start;
}
.rd-footer__brand img,
.rd-footer__logo img {
    height: 50px;
    width: auto;
}
/* Spaltenüberschriften weiß + größer */
.rd-footer__col h5 {
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 20px;
}
/* Links heller */
.rd-footer__links li { font-size: 14px; line-height: 2.2; }
.rd-footer__links a { color: rgba(255,255,255,0.55); }
.rd-footer__links a:hover { color: var(--rd-sage-light); }
/* Rechte Spalte: Made in Germany Badge */
.rd-footer__col--badge img {
    max-width: 260px;
    height: auto;
}
/* Sub-Footer: weißer Hintergrund, schwarze Schrift */
.rd-footer__bottom {
    background: #fff;
    margin: 0 -48px;
    padding: 20px 48px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}
.rd-footer__social a { color: var(--rd-dark) !important; }
.rd-footer__social a:hover { color: var(--rd-amber) !important; }
.rd-footer__legal-links a { color: var(--rd-text) !important; font-size: 13px; }
.rd-footer__legal-links a:hover { color: var(--rd-dark) !important; }

/* Sticky Contact Bar — bottom-right, bronze */
.rd-sticky {
    position: fixed !important;
    right: 20px !important;
    bottom: 50px !important;
    top: auto !important;
    transform: none !important;
    z-index: 9999 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}
.rd-sticky__btn {
    width: 48px !important;
    height: 48px !important;
    border-radius: 10px !important;
    background: #A67C52 !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 16px rgba(166,124,82,0.3) !important;
    transition: all 0.25s !important;
    text-decoration: none !important;
}
.rd-sticky__btn:hover {
    transform: scale(1.08) !important;
    background: #8B6844 !important;
    color: #fff !important;
}
.rd-sticky__btn svg {
    width: 20px !important;
    height: 20px !important;
    stroke: #fff !important;
    fill: none !important;
}

/* ── Responsive Patches ── */
@media (max-width: 1024px) {
    .rd-container { padding: 0 32px; }
    .rd-header__inner { padding: 0 32px; }
    .rd-footer__inner { padding: 0 32px; }
    .rd-footer__grid { grid-template-columns: repeat(2, 1fr); }
    .rd-footer__bottom { margin: 0 -32px; padding: 20px 32px; }
    .rd-text-image-full { grid-template-columns: 1fr; }
    .rd-text-image-full--img-right .rd-text-image-full__img { order: 0; }
    .rd-text-image-full--img-right .rd-text-image-full__body { order: 0; }

    /* Sticky Contact Bar — full-width bar fixed to the bottom on mobile/tablet */
    .rd-sticky {
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        flex-direction: row !important;
        justify-content: space-around !important;
        gap: 0 !important;
        background: #A67C52 !important;
        padding: 18px 16px !important;
        box-shadow: 0 -4px 16px rgba(0,0,0,0.15) !important;
    }
    .rd-sticky__btn {
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        width: auto !important;
        height: auto !important;
        flex: 1 1 0;
    }
    .rd-sticky__btn svg {
        width: 24px !important;
        height: 24px !important;
    }
    .rd-footer { padding-bottom: 72px; }
}
@media (max-width: 767px) {
    .rd-container { padding: 0 20px; }
    /* Just enough bottom padding to clear the ~60px sticky bar (18px
       padding + 24px icon on both sides) with a bit of margin — not the
       190px tried before, which pulled the text block way up and left a
       big empty image gap above it instead. */
    .rd-hero-slider__content { padding: 0 20px 110px; }
    /* Centered, but nudged above true 50% (and using a % of viewport
       height, not a fixed px, so it stays clear of the now-lower text
       block across different devices) — clear of the header above and
       the bottom-anchored text below on every slide. */
    .rd-hero-slider__nav { top: 38%; }
    .rd-footer__grid { grid-template-columns: 1fr; }
    .rd-footer__bottom { margin: 0 -20px; padding: 16px 20px; }
    .rd-text-image-full__body { padding: 40px 24px; }
    .rd-contact { padding-top: 70px !important; padding-bottom: 90px !important; }
    .rd-contact__shape-wrap { height: 55px; }
    .rd-header__logo svg { width: 100%; max-width: 170px; height: auto; }
    .rd-header__right { gap: 20px; }
}




/* ── FIX 1: Header Buttons schwarz, größer, Spacing ── */
.rd-header__actions {
    gap: 24px !important;
    margin-left: 32px !important;
}
.rd-header__actions .rd-btn {
    background: var(--rd-dark) !important;
    color: #fff !important;
    border: none !important;
    font-size: 16px !important;
    padding: 10px 22px !important;
}
.rd-header__actions .rd-btn:hover {
    background: var(--rd-sage) !important;
    color: #fff !important;
}
.rd-header--sticky .rd-header__actions .rd-btn {
    background: var(--rd-dark) !important;
    color: #fff !important;
}

/* ── FIX 2: Section white BG + größere Headlines ── */
.rd-section--white { background: #fff !important; }
.rd-section .rd-title {
    font-size: clamp(30px, 4.5vw, 48px) !important;
}
.rd-usp-steps .rd-title {
    font-size: clamp(39px, 5.9vw, 62px) !important;
}
.rd-card__eyebrow {
    font-size: 16px !important;
}
.rd-card__title {
    font-size: 16px !important;
}

/* ── FIX 6: Text+Image Full — Bild-Position, Spacing, Button ── */
/* Korrektur: img-right = Bild rechts, Body links */
.rd-text-image-full--img-right {
    direction: ltr !important;
}
.rd-text-image-full--img-right .rd-text-image-full__body {
    order: 1 !important;
}
.rd-text-image-full--img-right .rd-text-image-full__img {
    order: 2 !important;
}
/* img-left = Bild links, Body rechts */
.rd-text-image-full--img-left .rd-text-image-full__body {
    order: 2 !important;
}
.rd-text-image-full--img-left .rd-text-image-full__img {
    order: 1 !important;
}
/* Button layout (colour is handled once, in the unified sage rule above) */
.rd-text-image-full__body .rd-btn {
    display: inline-flex !important;
    width: auto !important;
    border: none !important;
    border-radius: 100px !important;
    padding: 14px 32px !important;
}

/* ── FIX 7: FAQ breiter + zentriert ── */
.rd-faq .rd-container {
    max-width: 1100px;
    margin: 0 auto;
}
.rd-faq__list {
    max-width: 100% !important;
}
.rd-faq .rd-title {
    text-align: center;
}

/* ── FIX 8: Fullwidth Bild mittig ── */
.rd-fullwidth-img {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.rd-fullwidth-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

/* ── FIX 9: Footer Spalten — größere Headlines, größere Links, Grid-Breiten ── */
.rd-footer__grid {
    grid-template-columns: 80px 1fr 1.5fr 2fr 1fr !important;
    gap: 40px !important;
}
.rd-footer__col h5 {
    font-size: 18px !important;
    font-weight: 600 !important;
    margin-bottom: 24px !important;
}
.rd-footer__links li {
    font-size: 16px !important;
    line-height: 2.4 !important;
}
.rd-footer__links a {
    font-size: 16px !important;
}

/* ── FIX 10: Subfooter fullwidth weiß ── */
.rd-footer__bottom {
    background: #fff !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    padding: 20px 48px !important;
    width: 100vw !important;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
}

/* ── Responsive Patches v1.2 ── */
@media (max-width: 1024px) {
    .rd-footer__grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 767px) {
    .rd-footer__grid { grid-template-columns: 1fr !important; }
    .rd-header__actions { gap: 10px !important; margin-left: 0 !important; }
    .rd-footer__bottom { padding: 16px 20px !important; }
}




/* Fix 3a: Text+Image Full "Hell" = weiß */
.rd-text-image-full--light {
    background: #fff !important;
}

/* Fix 3b: Button nicht full-width */
.rd-text-image-full__body .rd-btn {
    width: auto !important;
    max-width: fit-content !important;
    align-self: flex-start !important;
}

/* Fix 4: Footer Spalten — erste breiter, vierte schmaler (Desktop) */
@media (min-width: 768px) {
    .rd-footer__grid {
        grid-template-columns: 120px 1.2fr 1.5fr 1.2fr auto !important;
    }
}

/* ── Footer mobile: linearized, column order reversed (5th col first) ── */
@media (max-width: 767px) {
    .rd-footer__grid { grid-template-columns: 1fr !important; }
    .rd-footer__grid > *:nth-child(1) { order: 5; }
    .rd-footer__grid > *:nth-child(2) { order: 4; }
    .rd-footer__grid > *:nth-child(3) { order: 3; }
    .rd-footer__grid > *:nth-child(4) { order: 2; }
    .rd-footer__grid > *:nth-child(5) { order: 1; }
}

/* ── M16: Seiten-Titelleiste ── */
.rd-page-title {
    background: #fff;
    /* Wie .rd-product/.rd-cartpage/.rd-shop-archive: dieses Modul erzwingt
       den soliden Header (nicht hero_slider/hero_fullwidth als erstes
       Modul, siehe header.php $rado_force_solid_header) und braucht daher
       dieselbe Top-Freistellung, sonst rutscht die Überschrift unter den
       fixed Header. */
    padding: 152px 0 40px;
    text-align: center;
}
@media (max-width: 767px) {
    .rd-page-title { padding-top: 112px; }
}
.rd-page-title h1 {
    font-family: var(--rd-serif);
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 400;
    color: var(--rd-dark);
    margin: 0;
}
.rd-page-title h1 span { color: var(--rd-sage); }

/* ── M17: Bildergalerie (max. 1800px, mit Außenabstand) ── */
.rd-gallery {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
    padding-top: 100px;
    padding-bottom: 100px;
}
.rd-gallery__item { aspect-ratio: 1 / 1; overflow: hidden; border-radius: 4px; cursor: zoom-in; }
.rd-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.rd-gallery__item:hover img { transform: scale(1.04); }
@media (max-width: 1024px) {
    .rd-gallery { grid-template-columns: repeat(3, 1fr); gap: 18px; }
}
@media (max-width: 767px) {
    .rd-gallery { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}

/* ── Bildergalerie: Lightbox ── */
.rd-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(10,10,10,.96);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s;
}
.rd-lightbox.is-open { opacity: 1; visibility: visible; }
.rd-lightbox__bar { position: absolute; top: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; z-index: 2; }
.rd-lightbox__counter { font-family: var(--rd-sans); font-size: 13px; color: rgba(255,255,255,.7); letter-spacing: .5px; }
.rd-lightbox__actions { display: flex; gap: 12px; }
.rd-lightbox__btn { width: 40px; height: 40px; border-radius: 50%; border: none; background: rgba(255,255,255,.08); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s; }
.rd-lightbox__btn:hover { background: rgba(255,255,255,.18); }
.rd-lightbox__btn svg { width: 18px; height: 18px; }
.rd-lightbox__stage { max-width: 90vw; max-height: 85vh; padding: 0 90px; }
.rd-lightbox__img { max-width: 100%; max-height: 85vh; object-fit: contain; display: block; margin: 0 auto; }
.rd-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: none; background: rgba(255,255,255,.08); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; transition: background .2s; }
.rd-lightbox__nav:hover { background: rgba(255,255,255,.18); }
.rd-lightbox__nav--prev { left: 20px; }
.rd-lightbox__nav--next { right: 20px; }
.rd-lightbox__nav svg { width: 22px; height: 22px; }
@media (max-width: 767px) {
    .rd-lightbox__stage { padding: 0 50px; }
    .rd-lightbox__bar { padding: 16px; }
    .rd-lightbox__nav { width: 40px; height: 40px; }
    .rd-lightbox__nav--prev { left: 8px; }
    .rd-lightbox__nav--next { right: 8px; }
}

/* ── Lightbox: light variant (Gestellformen — transparente Produktbilder
   sehen auf dunklem Hintergrund freischwebend/falsch aus) ── */
.rd-lightbox--light { background: #fff; }
.rd-lightbox--light .rd-lightbox__counter { color: var(--rd-text-l); }
.rd-lightbox--light .rd-lightbox__btn { background: var(--rd-warm); color: var(--rd-dark); }
.rd-lightbox--light .rd-lightbox__btn:hover { background: var(--rd-border); }
.rd-lightbox--light .rd-lightbox__nav { background: var(--rd-warm); color: var(--rd-dark); }
.rd-lightbox--light .rd-lightbox__nav:hover { background: var(--rd-border); }

/* ── Legal Pages: content + auto-TOC ── */
.rd-legal { padding: 152px 0 100px; }
.rd-legal__grid { display: grid; grid-template-columns: 240px 1fr; gap: 64px; align-items: start; }

.rd-legal__toc-inner { position: sticky; top: 112px; }
.rd-legal__toc-title { font-family: var(--rd-sans); font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--rd-text-l); margin-bottom: 16px; }
.rd-legal__toc ul { list-style: none; }
.rd-legal__toc-item a { display: block; padding: 6px 0 6px 14px; border-left: 2px solid var(--rd-border); font-size: 13px; color: var(--rd-text-l); transition: all .2s; }
.rd-legal__toc-item a:hover { color: var(--rd-sage-dark); border-left-color: var(--rd-sage); }
.rd-legal__toc-item--h3 a { padding-left: 26px; font-size: 12.5px; }

.rd-legal__content { max-width: 760px; }
.rd-legal__content h2 { font-family: var(--rd-serif); font-size: 26px; font-weight: 400; color: var(--rd-dark); margin: 40px 0 16px; scroll-margin-top: 112px; }
.rd-legal__content h2:first-child { margin-top: 0; }
.rd-legal__content h3 { font-family: var(--rd-serif); font-size: 20px; font-weight: 400; color: var(--rd-dark); margin: 28px 0 12px; scroll-margin-top: 112px; }
.rd-legal__content p { margin-bottom: 16px; color: var(--rd-text-l); line-height: 1.8; }
.rd-legal__content ul, .rd-legal__content ol { margin: 0 0 16px 20px; color: var(--rd-text-l); line-height: 1.8; }
.rd-legal__content a { color: var(--rd-sage-dark); text-decoration: underline; }

.rd-legal__toc-toggle { display: none; }

@media (max-width: 1024px) {
    .rd-legal__grid { grid-template-columns: 1fr; }

    .rd-legal__toc {
        position: fixed;
        right: 16px;
        bottom: 148px;
        width: min(300px, calc(100vw - 32px));
        max-height: 60vh;
        overflow-y: auto;
        background: #fff;
        border: 1px solid var(--rd-border);
        border-radius: 12px;
        box-shadow: 0 12px 40px rgba(0,0,0,.15);
        padding: 20px;
        z-index: 95;
        opacity: 0;
        visibility: hidden;
        transform: translateY(12px);
        transition: opacity .25s ease, transform .25s ease, visibility .25s;
    }
    .rd-legal__toc.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
    .rd-legal__toc-inner { position: static; }

    .rd-legal__toc-toggle {
        display: block;
        position: fixed;
        right: 16px;
        bottom: 88px;
        z-index: 96;
        width: 48px;
        height: 48px;
        border: none;
        background: transparent;
        padding: 0;
        cursor: pointer;
        border-radius: 50%;
        box-shadow: 0 4px 16px rgba(0,0,0,.15);
    }
    .rd-legal__toc-toggle img { display: block; width: 48px; height: 48px; }
}

/* ══════════════════════════════════════════════════════════
   WooCommerce — Product / Cart / Checkout
   ══════════════════════════════════════════════════════════ */

/* ── Shared: quantity stepper (product page + cart) ── */
.quantity { position: relative; display: inline-flex; align-items: center; border: 1px solid var(--rd-border); border-radius: 100px; }
.quantity .qty { -moz-appearance: textfield; width: 44px; height: 44px; border: none; background: transparent; text-align: center; font-family: var(--rd-sans); font-size: 14px; color: var(--rd-text); padding: 0; }
.quantity .qty::-webkit-outer-spin-button, .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rd-qty-btn { width: 40px; height: 44px; border: none; background: transparent; color: var(--rd-text); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.rd-qty-btn:hover { color: var(--rd-sage-dark); }

/* ── Product page ── */
.rd-product { padding-top: 152px; }
.rd-product__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; padding-bottom: 64px; }

.rd-product__gallery { width: 100%; }
.rd-product__gallery .woocommerce-product-gallery__wrapper { width: 100%; border-radius: 8px; overflow: hidden; }
.rd-product__gallery .woocommerce-product-gallery__image { width: 100%; }
.rd-product__gallery .woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; object-fit: cover; aspect-ratio: 4/3; }
.rd-product__gallery .flex-control-thumbs { display: flex; gap: 10px; margin-top: 12px; padding: 0; list-style: none; }
.rd-product__gallery .flex-control-thumbs li { width: 76px; height: 76px; }
.rd-product__gallery .flex-control-thumbs img { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; border: 1px solid var(--rd-border); cursor: pointer; }
.rd-product__gallery .flex-control-thumbs img.flex-active { border-color: var(--rd-sage); }

/* WooCommerce's zoom-trigger is injected at runtime by WC's own gallery JS
   (not present in the server-rendered HTML), showing a raw 🔍 emoji by
   default with no styling once WC's stylesheet is disabled. Container
   styling here; the emoji itself is swapped for a real <svg> via JS
   (see modules.js) since masking text content via CSS proved unreliable
   against however WC's script re-renders it. */
.rd-product__gallery .woocommerce-product-gallery__wrapper { position: relative; }
.rd-product__gallery .woocommerce-product-gallery__trigger {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,.15);
    transition: background .2s;
}
.rd-product__gallery .woocommerce-product-gallery__trigger:hover { background: var(--rd-sage-pale); }
.rd-product__gallery .woocommerce-product-gallery__trigger svg { width: 18px; height: 18px; stroke: var(--rd-sage-dark); flex-shrink: 0; }

.rd-product__tag { display: inline-block; font-size: 12px; font-weight: 500; letter-spacing: .5px; text-transform: uppercase; color: var(--rd-sage-dark); border: 1.5px solid var(--rd-sage); border-radius: 100px; padding: 6px 16px; margin-bottom: 14px; }
.rd-product__title { font-family: var(--rd-serif); font-size: clamp(28px, 3.5vw, 40px); font-weight: 400; color: var(--rd-dark); margin: 0 0 8px; }
.rd-product__price .price { font-family: var(--rd-serif); font-size: 3em; font-weight: 600; color: var(--rd-sage); margin-top: -20px;}
.rd-product__price .price del { font-size: 18px; opacity: .5; font-weight: 400; margin-right: 8px; }
.rd-product__hr { border: none; border-top: 1px solid var(--rd-border); margin: 24px 0;  display: none;}

/* Product short description — WooCommerce's own Short Description field
   (may contain a hand-authored spec table + MwSt/Artikel-Nr text, per
   product-editing convention). Styled generically since content varies. */
.rd-product__short-desc { font-size: 13px; color: var(--rd-text-l); line-height: 1.7; }
.rd-product__short-desc p { margin: 0 0 4px; }
.rd-product__short-desc table { width: 100% !important; height: auto !important; border-collapse: collapse; margin: 16px 0; }
.rd-product__short-desc table tr { height: auto !important; }
.rd-product__short-desc table td, .rd-product__short-desc table th { width: auto !important; height: auto !important; text-align: left; padding: 8px 0; font-size: 13.5px; border-bottom: 1px solid var(--rd-border); vertical-align: top; }
.rd-product__short-desc table td:first-child, .rd-product__short-desc table th:first-child { color: var(--rd-text-l); width: 45% !important; }
.rd-product__short-desc table td:last-child { color: var(--rd-text); }
.rd-product__short-desc section, .rd-product__short-desc .elementor-widget-container, .rd-product__short-desc .elementor-text-editor { display: contents; }
.rd-product__short-desc strong { color: var(--rd-text); }

.rd-product__cart-row { margin-top: 28px; }
.rd-product__cart-row form.cart { display: flex; gap: 12px; align-items: center; }
.rd-product__cart-row .single_add_to_cart_button {
    flex: 1;
    height: 48px;
    background: var(--rd-dark) !important;
    color: #fff !important;
    border: none;
    border-radius: 100px;
    font-family: var(--rd-sans);
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: background .25s;
}
.rd-product__cart-row .single_add_to_cart_button:hover { background: var(--rd-dark-m) !important; }

.rd-product__cta-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; margin-top: 14px; }

.rd-btn-muster, .rd-btn-angebot {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: 100%; min-height: 52px; padding: 10px 18px;
    border-radius: 100px; font-family: var(--rd-sans); font-size: 13.5px; font-weight: 600;
    text-align: center; line-height: 1.3;
    text-decoration: none; cursor: pointer; transition: all .25s;
}
.rd-btn-muster svg, .rd-btn-angebot svg { flex-shrink: 0; }
.rd-btn-muster { background: var(--rd-sage-pale); color: var(--rd-sage-dark); border: 1.5px solid var(--rd-sage-light); }
.rd-btn-muster:hover { background: var(--rd-sage); color: #fff; border-color: var(--rd-sage); }
.rd-btn-angebot { background: var(--rd-amber); color: #fff; border: none; }
.rd-btn-angebot:hover { background: var(--rd-amber-light); }
.rd-product__muster-hint { font-size: 11px; color: var(--rd-sage-dark); font-weight: 500; text-align: center; margin: 6px 0 0; }

@media (max-width: 480px) {
    .rd-product__cta-row { grid-template-columns: 1fr; }
}

.rd-product__pay-label { font-size: 1em; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-text-ll); margin: 20px 0px 10px 0px; }
/* Whatever a payment-gateway plugin renders here (real buttons, e.g.
   PayPal Smart Buttons) — we only control spacing/width around it, not
   its internal styling (often a cross-origin iframe the SDK controls). */
.rd-product__pay-buttons { width: 100%; }
.rd-product__pay-buttons > * { margin-top: 10px !important; }
.rd-product__pay-buttons > *:first-child { margin-top: 0 !important; }

/* ── Angebot-Modal (FluentForm) ── */
.rd-modal { display: none; position: fixed; inset: 0; z-index: 10001; align-items: center; justify-content: center; }
.rd-modal.open { display: flex; }
.rd-modal__backdrop { position: absolute; inset: 0; background: rgba(26,25,23,.6); backdrop-filter: blur(4px); cursor: pointer; }
.rd-modal__content { position: relative; z-index: 2; background: var(--rd-cream); border-radius: 16px; padding: 40px 36px; max-width: 560px; width: 90%; max-height: 90vh; overflow-y: auto; box-shadow: 0 24px 64px rgba(0,0,0,.2); }
.rd-modal__close { position: absolute; top: 16px; right: 20px; background: none; border: none; font-size: 28px; line-height: 1; color: var(--rd-text-ll); cursor: pointer; padding: 4px; }
.rd-modal__close:hover { color: var(--rd-dark); }
.rd-modal__title { font-family: var(--rd-serif); font-size: 28px; font-weight: 400; color: var(--rd-dark); margin: 0 0 8px; }
.rd-modal__title em { font-style: italic; color: var(--rd-amber); }
.rd-modal__desc { font-size: 14px; color: var(--rd-text-l); font-weight: 300; line-height: 1.6; margin: 0 0 24px; }
.rd-modal__desc strong { color: var(--rd-dark); }
@media (max-width: 767px) {
    .rd-modal__content { padding: 28px 20px; border-radius: 12px; }
}

/* ── Product long description box ── */
.rd-product__description { background: #fff; border: 1px solid var(--rd-border); border-radius: 14px; box-shadow: 0 8px 28px rgba(125,155,118,.12); padding: 44px 48px; margin: 8px 0 56px; }
.rd-product__description-title { font-family: var(--rd-serif); font-size: 26px; font-weight: 400; color: var(--rd-dark); margin: 0 0 20px; }
.rd-product__description .rd-richtext__body { font-size: 16.5px; }
.rd-product__description .rd-richtext__body p { max-width: 760px; }
@media (max-width: 767px) {
    .rd-product__description { padding: 28px 22px; border-radius: 12px; margin: 0 0 40px; }
    .rd-product__description-title { font-size: 22px; margin-bottom: 14px; }
}

/* ── Related products ── */
.rd-related { padding: 64px 0 100px; }
.rd-related__title { font-family: var(--rd-serif); font-size: 28px; font-weight: 400; color: var(--rd-dark); margin-bottom: 28px; }
.rd-related__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.rd-related-card { background: #fff; border: 1px solid var(--rd-border); border-radius: 10px; overflow: hidden; display: block; text-decoration: none; transition: all .3s; }
.rd-related-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.08); border-color: var(--rd-sage-light); }
.rd-related-card__img { position: relative; aspect-ratio: 3/4; overflow: hidden; }
.rd-related-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s, opacity .35s; }
.rd-related-card:hover .rd-related-card__img img { transform: scale(1.05); }
.rd-related-card__img-hover { position: absolute; inset: 0; opacity: 0; }
.rd-related-card:hover .rd-related-card__img-hover { opacity: 1; }
.rd-related-card__body { padding: 16px 18px; }
.rd-related-card__name { font-family: var(--rd-sans); font-size: 14px; font-weight: 600; color: var(--rd-dark); margin: 0 0 4px; text-transform: uppercase; }
.rd-related-card__price { font-family: var(--rd-sans); font-size: 14px; color: var(--rd-amber); font-weight: 600; margin: 0 0 10px; }
.rd-related-card__price del { color: var(--rd-text-ll); font-weight: 400; }
.rd-related-card__muster { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; background: var(--rd-sage-pale); color: var(--rd-sage-dark); font-size: 12px; font-weight: 600; border-radius: 100px; transition: all .25s; }
.rd-related-card__muster:hover { background: var(--rd-sage); color: #fff; }

@media (max-width: 1024px) {
    .rd-product__grid { grid-template-columns: 1fr; gap: 32px; }
    .rd-related__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .rd-product { padding-top: 112px; }
    .rd-product__pay-icons { grid-template-columns: 1fr 1fr; }
    .rd-related__grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}

/* ── Cart page ── */
.rd-cartpage { padding: 152px 0 100px; }
.rd-cartpage__title { font-family: var(--rd-serif); font-size: clamp(28px, 3.5vw, 36px); font-weight: 400; color: var(--rd-dark); margin-bottom: 32px; }
.rd-cartpage__empty { color: var(--rd-text-l); margin-bottom: 16px; }
.rd-cartpage__grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 48px; align-items: start; }

.rd-cart-item { display: flex; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--rd-border); align-items: center; }
.rd-cart-item__img { width: 88px; height: 88px; flex: none; border-radius: 8px; overflow: hidden; border: 1px solid var(--rd-border); }
.rd-cart-item__img img { width: 100%; height: 100%; object-fit: cover; }
.rd-cart-item__info { flex: 1; min-width: 0; }
.rd-cart-item__name { font-family: var(--rd-sans); font-weight: 600; font-size: 15px; margin-bottom: 4px; }
.rd-cart-item__name a { color: var(--rd-dark); }
.rd-cart-item__qty { margin-top: 10px; }
.rd-cart-item__end { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.rd-cart-item__subtotal { font-family: var(--rd-sans); font-weight: 600; font-size: 15px; }
.rd-cart-item__remove { color: var(--rd-text-ll); transition: color .2s; }
.rd-cart-item__remove:hover { color: #c0392b; }

.rd-cartpage__actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 20px; }
.rd-cartpage__continue { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--rd-text-l); }
.rd-cartpage__continue:hover { color: var(--rd-sage-dark); }

/* Cart totals box — WooCommerce's own cart-totals.php markup, restyled */
.rd-cartpage__totals .cart_totals { position: sticky; top: 24px; background: var(--rd-cream); border-radius: 12px; padding: 28px; }
.rd-cartpage__totals .cart_totals h2 { font-family: var(--rd-serif); font-size: 20px; font-weight: 400; margin: 0 0 16px; }
.rd-cartpage__totals .shop_table { width: 100%; border-collapse: collapse; }
.rd-cartpage__totals .shop_table th, .rd-cartpage__totals .shop_table td { padding: 10px 0; font-size: 14px; text-align: left; border-bottom: 1px solid var(--rd-border); }
.rd-cartpage__totals .shop_table th { color: var(--rd-text-l); font-weight: 400; }
.rd-cartpage__totals .order-total th, .rd-cartpage__totals .order-total td { font-family: var(--rd-sans); font-weight: 600; font-size: 17px; border-bottom: none; }
/* .wc-proceed-to-checkout holds our own "Weiter zur Kasse" button plus
   whatever express-checkout buttons a payment gateway plugin adds
   alongside it (e.g. PayPal Smart Buttons, often a cross-origin iframe
   whose internal styling/colour/shape we can't reach from theme CSS —
   that's configured in the gateway's own settings). We only control
   spacing/sizing of the elements as a group, so they read as a calm
   stacked list instead of tiles glued together. */
.rd-cartpage__totals .wc-proceed-to-checkout { margin-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.rd-cartpage__totals .wc-proceed-to-checkout > * { margin: 0 !important; max-width: 100%; }
.rd-cartpage__totals .checkout-button {
    display: flex; align-items: center; justify-content: center;
    width: 100%; height: 48px;
    background: var(--rd-dark) !important; color: #fff !important;
    border-radius: 100px; font-family: var(--rd-sans); font-size: 15px; font-weight: 500;
    text-decoration: none; transition: background .25s;
}
.rd-cartpage__totals .checkout-button:hover { background: var(--rd-dark-m) !important; }
.rd-cartpage__totals .coupon { display: flex; gap: 8px; margin-top: 16px; }
.rd-cartpage__totals .coupon .input-text { flex: 1; height: 42px; border: 1px solid var(--rd-border); border-radius: 8px; padding: 0 14px; font-size: 13px; }
.rd-cartpage__totals .coupon button { height: 42px; padding: 0 16px; border: none; border-radius: 8px; background: var(--rd-dark); color: #fff; font-size: 13px; cursor: pointer; }

@media (max-width: 1024px) {
    .rd-cartpage__grid { grid-template-columns: 1fr; }
    .rd-cartpage__totals .cart_totals { position: static; }
}
@media (max-width: 767px) {
    .rd-cartpage { padding-top: 112px; }
    .rd-cart-item { flex-wrap: wrap; }
    .rd-cart-item__end { flex-direction: row; align-items: center; justify-content: space-between; width: 100%; }
}

/* ── Checkout page ── */
.rd-checkout-page { padding: 152px 0 100px; }
.rd-checkout-page__title { font-family: var(--rd-serif); font-size: clamp(28px, 3.5vw, 36px); font-weight: 400; color: var(--rd-dark); margin-bottom: 32px; }
.rd-checkout-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 48px; align-items: start; }
.rd-checkout-fields__col h3 { font-family: var(--rd-serif); font-size: 20px; font-weight: 400; margin: 0 0 16px; }
.rd-checkout-fields__col { margin-bottom: 8px; }

/* WooCommerce default form-row/input styling */
.rd-checkout-page .form-row { margin-bottom: 16px; }
.rd-checkout-page .form-row label { display: block; font-size: 13px; font-weight: 500; color: var(--rd-text-l); margin-bottom: 6px; }
.rd-checkout-page .input-text,
.rd-checkout-page select,
.rd-checkout-page textarea {
    width: 100%; height: 46px; padding: 0 16px;
    border: 1.5px solid var(--rd-border); border-radius: 8px;
    font-family: var(--rd-sans); font-size: 14px; color: var(--rd-text);
    background: #fff;
}
.rd-checkout-page textarea { height: auto; padding: 12px 16px; }
.rd-checkout-page .input-text:focus, .rd-checkout-page select:focus, .rd-checkout-page textarea:focus { border-color: var(--rd-sage); outline: none; }
.rd-checkout-page .form-row-first, .rd-checkout-page .form-row-last { display: inline-block; width: 48%; }
.rd-checkout-page .form-row-first { margin-right: 4%; }

.rd-checkout-order { background: var(--rd-cream); border-radius: 12px; padding: 28px; position: sticky; top: 24px; }
.rd-checkout-order #order_review_heading { font-family: var(--rd-serif); font-size: 20px; font-weight: 400; margin: 0 0 16px; }
.rd-checkout-order .shop_table { width: 100%; border-collapse: collapse; }
.rd-checkout-order .shop_table th, .rd-checkout-order .shop_table td { padding: 10px 0; font-size: 14px; text-align: left; border-bottom: 1px solid var(--rd-border); }
.rd-checkout-order .order-total th, .rd-checkout-order .order-total td { font-family: var(--rd-sans); font-weight: 600; font-size: 17px; border-bottom: none; }

.rd-checkout-order .wc_payment_methods { list-style: none; padding: 0; margin: 16px 0; }
.rd-checkout-order .wc_payment_method { border: 1.5px solid var(--rd-border); border-radius: 8px; padding: 12px 14px; margin-bottom: 10px; }
.rd-checkout-order .wc_payment_method label { font-size: 14px; font-weight: 500; }
.rd-checkout-order .payment_box { font-size: 13px; color: var(--rd-text-l); padding-top: 10px; }

.rd-checkout-order .woocommerce-privacy-policy-text { font-size: 12px; color: var(--rd-text-ll); line-height: 1.6; margin: 16px 0; }
.rd-checkout-order .woocommerce-terms-and-conditions-wrapper { margin-bottom: 16px; }

.rd-checkout-order #place_order {
    display: flex; align-items: center; justify-content: center;
    width: 100%; height: 48px;
    margin-top: 20px;
    background: var(--rd-dark) !important; color: #fff !important;
    border: none; border-radius: 100px;
    font-family: var(--rd-sans); font-size: 15px; font-weight: 500;
    cursor: pointer; transition: background .25s;
}
.rd-checkout-order #place_order:hover { background: var(--rd-dark-m) !important; }

@media (max-width: 1024px) {
    .rd-checkout-grid { grid-template-columns: 1fr; }
    .rd-checkout-order { position: static; }
}
@media (max-width: 767px) {
    .rd-checkout-page { padding-top: 112px; }
    .rd-checkout-page .form-row-first, .rd-checkout-page .form-row-last { width: 100%; margin-right: 0; }
}

/* ── Reusable Überschrift-Größen (normal/big/xl) ──
   Placed at the very end + compound-selector specificity on purpose: an
   earlier sitewide rule (.rd-section .rd-title, "FIX 2") also carries
   !important at equal-or-lower specificity, so a plain .rd-fs--big class
   alone would silently lose that fight for any .rd-title heading. Kept a
   standalone version too, for elements without .rd-title (the hero <h1>). */
.rd-fs--big,
.rd-title.rd-fs--big { font-size: clamp(36px, 5.5vw, 58px) !important; }
.rd-fs--xl,
.rd-title.rd-fs--xl { font-size: clamp(44px, 7vw, 74px) !important; }

/* ── M20: Kontakt (Split) ── */
.rd-contact-split__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 700px;
}
.rd-contact-split--contained { padding: 60px 0; }
.rd-contact-split--contained .rd-contact-split__grid {
    max-width: var(--rd-max);
    margin: 0 auto;
    padding: 0 48px;
    min-height: 600px;
    border-radius: 16px;
    overflow: hidden;
}

.rd-contact-split__col1 {
    position: relative;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    padding: 56px;
}
.rd-contact-split__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(26,25,23,.75) 0%, rgba(26,25,23,.15) 55%, transparent 100%); }
.rd-contact-split__col1-inner { position: relative; z-index: 2; max-width: 480px; }
.rd-contact-split__col1-inner .rd-title { color: #fff; font-size: clamp(22px, 2.6vw, 30px); margin-bottom: 10px; }
.rd-contact-split__col1-text { font-size: 14px; color: rgba(255,255,255,.75); line-height: 1.8; margin-bottom: 24px; }
.rd-contact-split__whatsapp { display: inline-flex; align-items: center; gap: 10px; font-size: 15px !important; padding: 14px 26px !important; border-radius: 100px; }

.rd-contact-split__col2 { background: var(--rd-warm); padding: 56px; display: flex; flex-direction: column; }

.rd-contact-split__tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--rd-border); margin-bottom: 32px; }
.rd-contact-split__tab {
    background: none; border: none; cursor: pointer;
    font-family: var(--rd-sans); font-size: 14px; font-weight: 500; color: var(--rd-text-l);
    padding: 0 0 14px; border-bottom: 2px solid transparent;
    transition: color .2s, border-color .2s;
}
.rd-contact-split__tab:hover { color: var(--rd-text); }
.rd-contact-split__tab.active { color: var(--rd-dark); border-bottom-color: var(--rd-sage); }

.rd-contact-split__panel { display: none; scroll-margin-top: 110px; }
.rd-contact-split__panel.active { display: block; }
.rd-contact-split__panel .rd-title { font-size: clamp(22px, 2.6vw, 28px); margin-bottom: 8px; }
.rd-contact-split__panel .rd-text { margin-bottom: 24px; }

.rd-contact-split__info { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--rd-border); font-size: 14px; }
.rd-contact-split__info p { margin-bottom: 4px; }

.rd-contact-split__calendly iframe { width: 100%; min-height: 600px; border: none; }

/* Form styling — light panel, so labels/inputs use dark-on-light (unlike
   .rd-contact .fluentform, which is styled for a dark hero background). */
.rd-contact-split__form .fluentform .ff-el-input--label label { font-size: 13px; font-weight: 500; color: var(--rd-text); }
.rd-contact-split__form .fluentform input[type="text"],
.rd-contact-split__form .fluentform input[type="email"],
.rd-contact-split__form .fluentform input[type="tel"],
.rd-contact-split__form .fluentform textarea {
    background: #fff;
    border: 1.5px solid var(--rd-border);
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 14px;
    color: var(--rd-text);
}
.rd-contact-split__form .fluentform input:focus,
.rd-contact-split__form .fluentform textarea:focus {
    border-color: var(--rd-sage);
    outline: none;
    box-shadow: 0 0 0 2px rgba(125,155,118,.15);
}
.rd-contact-split__form .fluentform .ff-btn-submit {
    background: var(--rd-dark) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 100px !important;
    padding: 14px 32px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    cursor: pointer;
    transition: background .25s;
}
.rd-contact-split__form .fluentform .ff-btn-submit:hover { background: var(--rd-dark-m) !important; }

/* Form #12 specifically: FluentForm's own per-form "Custom CSS" (configured
   in the FluentForm admin, not in this theme) is leaking in from another
   form — its .wpf_has_custom_css.ff-btn-submit rule forces min-width:100%
   and an uneven column split. Overriding here with a more specific
   selector so it wins regardless of that other form's custom CSS. */
.rd-contact-split__form #fluentform_12 .ff-t-container {
    display: flex !important;
    flex-wrap: wrap;
    gap: 12px;
}
.rd-contact-split__form #fluentform_12 .ff-t-container > .ff-t-cell {
    flex: 1 1 calc(50% - 6px) !important;
    max-width: calc(50% - 6px) !important;
    min-width: 0 !important;
}
@media (max-width: 480px) {
    .rd-contact-split__form #fluentform_12 .ff-t-container > .ff-t-cell {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }
}
.rd-contact-split__form #fluentform_12 .ff-btn-submit {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    background: var(--rd-sage) !important;
    border-color: var(--rd-sage) !important;
    color: #fff !important;
    padding: 12px 28px !important;
    font-size: 14px !important;
}
.rd-contact-split__form #fluentform_12 .ff-btn-submit:hover {
    background: var(--rd-sage-dark) !important;
    border-color: var(--rd-sage-dark) !important;
}

/* Form #10 (Angebot-Modal, siehe rd-angebot-modal in single-product.php /
   template-parkett-hub.php): same leaking-per-form-Custom-CSS issue as
   #fluentform_12 above — uneven .ff-t-cell column split — plus matching
   the modal's cream/amber look instead of FluentForm's own defaults. */
.rd-modal #fluentform_10 .ff-t-container {
    display: flex !important;
    flex-wrap: wrap;
    gap: 12px;
}
.rd-modal #fluentform_10 .ff-t-container > .ff-t-cell {
    flex: 1 1 calc(50% - 6px) !important;
    max-width: calc(50% - 6px) !important;
    min-width: 0 !important;
}
@media (max-width: 480px) {
    .rd-modal #fluentform_10 .ff-t-container > .ff-t-cell {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }
}
.rd-modal #fluentform_10 .ff-el-input--label label {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--rd-text) !important;
}
.rd-modal #fluentform_10 input[type="text"],
.rd-modal #fluentform_10 input[type="email"],
.rd-modal #fluentform_10 input[type="tel"],
.rd-modal #fluentform_10 input[type="number"],
.rd-modal #fluentform_10 textarea {
    width: 100% !important;
    background: #fff !important;
    border: 1.5px solid var(--rd-border) !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    color: var(--rd-text) !important;
    box-sizing: border-box !important;
}
.rd-modal #fluentform_10 input:focus,
.rd-modal #fluentform_10 textarea:focus {
    border-color: var(--rd-sage) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(125,155,118,.15) !important;
}
.rd-modal #fluentform_10 .ff-el-form-check {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
}
.rd-modal #fluentform_10 .ff-el-form-check-label,
.rd-modal #fluentform_10 .ff-el-form-check label {
    font-size: 13px !important;
    font-weight: 400 !important;
    color: var(--rd-text-l) !important;
}
.rd-modal #fluentform_10 .ff-btn-submit {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    background: var(--rd-amber) !important;
    border: none !important;
    color: #fff !important;
    border-radius: 100px !important;
    padding: 14px 32px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    cursor: pointer;
    transition: background .25s;
}
.rd-modal #fluentform_10 .ff-btn-submit:hover {
    background: var(--rd-amber-light) !important;
}

@media (max-width: 1024px) {
    .rd-contact-split__grid { grid-template-columns: 1fr; min-height: 0; }
    .rd-contact-split__col1 { min-height: 420px; padding: 40px; }
    .rd-contact-split__col2 { padding: 40px; }
}
@media (max-width: 767px) {
    .rd-contact-split__col1 { min-height: 340px; padding: 28px; }
    .rd-contact-split__col2 { padding: 28px 20px; }
    .rd-contact-split__tabs { gap: 16px; }
}

/* ── M21: 2 Spalten mit Bild (50/50) ── */
.rd-two-col-img__grid { display: grid; grid-template-columns: 1fr 1fr; }
.rd-two-col-img__col { position: relative; margin: 0; aspect-ratio: 4/5; overflow: hidden; }
.rd-two-col-img__col img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rd-two-col-img__col figcaption {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 20px 24px;
    background: linear-gradient(to top, rgba(26,25,23,.65) 0%, transparent 100%);
    color: #fff; font-family: var(--rd-sans); font-size: 13px;
}
.rd-two-col-img--contained { padding: 60px 0; }
.rd-two-col-img--contained .rd-two-col-img__grid {
    max-width: var(--rd-max); margin: 0 auto; padding: 0 48px;
    gap: 20px;
}
.rd-two-col-img--contained .rd-two-col-img__col { border-radius: 12px; }
@media (max-width: 767px) {
    .rd-two-col-img__grid { grid-template-columns: 1fr; }
    .rd-two-col-img--contained .rd-two-col-img__grid { padding: 0 20px; gap: 12px; }
}

/* ── M22: Richtext (2 Spalten) ── */
.rd-richtext2__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 24px; }
@media (max-width: 767px) {
    .rd-richtext2__grid { grid-template-columns: 1fr; gap: 24px; }
}

/* ── Testimonials: more breathing room below the headline ── */
.rd-testimonials .rd-title { margin-bottom: 48px; }

/* ── M21: 2 Spalten mit Bild — CTA button ── */
.rd-two-col-img__cta { text-align: center; padding: 40px 20px; background: #fff; }
.rd-two-col-img__btn {
    background: var(--rd-sage) !important;
    border-color: var(--rd-sage) !important;
    color: #fff !important;
}
.rd-two-col-img__btn:hover {
    background: var(--rd-sage-dark) !important;
    border-color: var(--rd-sage-dark) !important;
}

/* ── Karten-Grid: Normal (1200px) vs Fullwidth (1800px, the sitewide
   .rd-container standard). Placed at the very end + compound-selector +
   !important on purpose: .rd-container's own max-width has been
   silently re-declared multiple times earlier in this file, so a plain
   single-class rule risks losing that fight regardless of source order. */
.rd-container.rd-container--1200 { max-width: 1200px !important; }

/* ── M23: Gestellformen (Tisch-Konfigurations-Karten) ── */
.rd-gestell__sub{font-size:15px;color:var(--rd-text-l);line-height:1.7;max-width:640px;margin-top:-4px;}
.rd-gestell--body-medium .rd-gestell__sub{font-size:17px;}
.rd-gestell--body-big .rd-gestell__sub{font-size:20px;}
.rd-gestell__actions{display:flex;gap:16px;margin-top:24px;}
.rd-gestell__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;margin-top:40px;}

.rd-gestell-card{background:#fff;border:1px solid var(--rd-border);border-radius:4px;overflow:hidden;transition:border-color .25s;}
.rd-gestell-card:hover{border-color:#ccc;}
.rd-gestell-card__img{position:relative;background:#fff;aspect-ratio:830/362;overflow:hidden;}
.rd-gestell-card__img img{width:100%;height:100%;object-fit:contain;position:absolute;top:0;left:0;padding:16px;opacity:0;pointer-events:none;transition:opacity .35s ease;}
.rd-gestell-card__img img.active{opacity:1;z-index:1;pointer-events:auto;cursor:zoom-in;}

.rd-gestell-card__body{padding:20px 24px 24px;}
.rd-gestell-card__header{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap;}
.rd-gestell-card__name{font-family:var(--rd-serif);font-size:20px;font-weight:500;color:var(--rd-dark);letter-spacing:.5px;}
.rd-gestell-tags{display:flex;gap:6px;flex-wrap:wrap;}
.rd-gestell-tag{font-size:11px;padding:2px 10px;border-radius:2px;background:var(--rd-amber-pale);color:var(--rd-amber);font-weight:500;letter-spacing:.3px;text-transform:uppercase;}

.rd-gestell-card__text{font-size:14px;line-height:1.6;color:var(--rd-text-l);margin-bottom:20px;}

.rd-gestell-surface{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;padding:16px;background:var(--rd-warm);border-radius:4px;}
.rd-gestell-surface__label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--rd-text-ll);}
.rd-gestell-swatches{display:flex;gap:8px;flex-wrap:wrap;}
.rd-gestell-swatch{display:flex;align-items:center;gap:8px;padding:8px 16px 8px 10px;border:1.5px solid transparent;background:#fff;border-radius:100px;cursor:pointer;transition:all .2s;font-family:inherit;}
.rd-gestell-swatch:hover{background:var(--rd-warm);}
.rd-gestell-swatch.active{border-color:var(--rd-dark);background:#fff;}
.rd-gestell-swatch__circle{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.1);flex-shrink:0;transition:transform .15s;display:block;}
.rd-gestell-swatch.active .rd-gestell-swatch__circle{transform:scale(1.1);border-color:rgba(0,0,0,.2);}
.rd-gestell-swatch__name{font-size:12px;font-weight:400;color:var(--rd-text-ll);transition:color .2s;}
.rd-gestell-swatch.active .rd-gestell-swatch__name{color:var(--rd-dark);font-weight:500;}

.rd-gestell-cta{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#fff;text-decoration:none;background:var(--rd-sage);padding:10px 22px;border-radius:3px;transition:background .2s,gap .2s;}
.rd-gestell-cta:hover{background:var(--rd-sage-dark);gap:12px;}

@media(max-width:767px){
    .rd-gestell__grid{grid-template-columns:1fr;}
    .rd-gestell__actions{flex-direction:column;align-items:flex-start;}
}

/* ── M24: Masonry-Galerie ── */
.rd-masonry__sub{font-size:15px;color:var(--rd-text-l);line-height:1.7;max-width:640px;margin-top:-4px;}
.rd-masonry--body-medium .rd-masonry__sub{font-size:17px;}
.rd-masonry--body-big .rd-masonry__sub{font-size:20px;}
.rd-masonry__grid{column-count:3;column-gap:20px;margin-top:40px;}
.rd-masonry__item{break-inside:avoid;margin-bottom:20px;border-radius:10px;overflow:hidden;cursor:zoom-in;}
.rd-masonry__item img{width:100%;height:auto;display:block;transition:transform .4s ease;}
.rd-masonry__item:hover img{transform:scale(1.05);}
.rd-masonry__actions{display:flex;gap:16px;justify-content:center;margin-top:40px;}

@media(max-width:1024px){
    .rd-masonry__grid{column-count:2;}
}
@media(max-width:767px){
    .rd-masonry__grid{column-count:1;}
    .rd-masonry__actions{flex-direction:column;align-items:stretch;text-align:center;}
}

/* ── FIX: Hero Fullwidth — verlorenes padding-bottom wiederherstellen.
   .rd-hero__content trägt zusätzlich die Klasse .rd-container; dessen
   eigene (später im File neu deklarierte) padding-Shorthand "0 32px"/
   "0 48px" hat bei gleicher Spezifität immer wieder padding-bottom auf 0
   zurückgesetzt — verifiziert per getComputedStyle auf der Live-Seite
   (paddingBottom war 0px, auf Mobile UND Desktop). Compound-Selector +
   !important, damit das unabhängig von der Reihenfolge zukünftiger
   .rd-container-Neudeklarationen bestehen bleibt. */
.rd-hero__content.rd-container { padding-bottom: 80px !important; }
@media (max-width: 767px) {
    .rd-hero__content.rd-container { padding-bottom: 56px !important; }
}

/* ── FIX: Mobiles Menü — "Konfigurator"/"Für Unternehmen" zeigen beim
   Scrollen innerhalb des (fixed + backdrop-filter + overflow-y:auto)
   Menü-Panels kurz ihren alten schwarzen Desktop-Hintergrund (bestätigt:
   der berechnete background-color ist korrekt transparent — das ist ein
   iOS-Safari-Repaint-Glitch beim Kompositieren von fixed+blur-Panels
   während des Momentum-Scrollens, keine CSS-Kaskaden-Kollision). Fix:
   Panel + Links auf eigene GPU-Compositing-Layer heben, damit Safari sie
   nicht mit einem älteren Paint-Frame neu zeichnet. */
.rd-header__nav {
    -webkit-overflow-scrolling: touch;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    isolation: isolate;
    will-change: transform;
}
.rd-header__nav .rd-header__actions .rd-btn {
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    isolation: isolate;
}

/* ══════════ Fallback-Content (Seiten ohne page_modules) ══════════
   page.php falls through to a plain ".rd-content > .rd-container" wrapper
   for any page without ACF modules (see page.php) — e.g. shortcode-driven
   pages like the Borlabs Cookie list or the WooCommerce order-received
   page. That wrapper had no header clearance at all, so the heading
   rendered straight under the fixed header. Same padding-top convention
   as .rd-product/.rd-shop-archive/etc. */
.rd-content { padding-top: 152px; padding-bottom: 100px; }
@media (max-width: 767px) {
    .rd-content { padding-top: 112px; padding-bottom: 60px; }
}

/* ══════════ WooCommerce: Bestellbestätigung (order-received) ══════════
   Targets WooCommerce's own stable default markup (.woocommerce-order,
   .woocommerce-order-overview, order_details table,
   .woocommerce-customer-details) rather than a custom template override,
   so any gateway- or plugin-hooked content injected into this page keeps
   working without us having to reproduce WC's own template/hook logic. */

.woocommerce-order {
    background: #fff;
    border: 1px solid var(--rd-border);
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(125,155,118,.12);
    padding: 44px 48px;
    max-width: 860px;
    margin: 0 auto;
}
.woocommerce-order > p.woocommerce-notice { font-size: 15px; color: var(--rd-text-l); margin-bottom: 8px; }
.woocommerce-order > p.woocommerce-notice--success {
    font-family: var(--rd-serif);
    font-size: 26px;
    color: var(--rd-dark);
    margin-bottom: 24px;
}

.woocommerce-order-overview {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 40px;
    list-style: none;
    padding: 20px 0;
    margin: 0 0 32px;
    border-top: 1px solid var(--rd-border);
    border-bottom: 1px solid var(--rd-border);
}
.woocommerce-order-overview li {
    font-size: 13px;
    color: var(--rd-text-ll);
    text-transform: uppercase;
    letter-spacing: .5px;
}
.woocommerce-order-overview li strong {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    font-weight: 500;
    color: var(--rd-text);
    text-transform: none;
    letter-spacing: normal;
}

.woocommerce-order h2 {
    font-family: var(--rd-serif);
    font-size: 22px;
    font-weight: 400;
    color: var(--rd-dark);
    margin: 0 0 20px;
}
.woocommerce-order-details + h2,
.woocommerce-customer-details { margin-top: 40px; }

table.woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 8px;
}
table.woocommerce-table--order-details th,
table.woocommerce-table--order-details td {
    text-align: left;
    padding: 12px 4px;
    font-size: 14px;
    color: var(--rd-text);
    border-bottom: 1px solid var(--rd-border);
}
table.woocommerce-table--order-details thead th {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--rd-text-ll);
    font-weight: 500;
}
table.woocommerce-table--order-details tfoot th { font-weight: 400; color: var(--rd-text-l); }
table.woocommerce-table--order-details tfoot tr:last-child th,
table.woocommerce-table--order-details tfoot tr:last-child td {
    font-size: 16px;
    font-weight: 600;
    color: var(--rd-dark);
    border-bottom: none;
}
table.woocommerce-table--order-details .woocommerce-Price-amount { font-weight: inherit; }

.woocommerce-customer-details .col2-set,
.woocommerce-customer-details .woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin-top: 8px;
}
.woocommerce-customer-details address {
    font-style: normal;
    font-size: 14px;
    line-height: 1.8;
    color: var(--rd-text-l);
    border: none;
    padding: 0;
}
.woocommerce-customer-details .woocommerce-column__title {
    font-family: var(--rd-sans);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--rd-text-ll);
    margin-bottom: 10px;
}
@media (max-width: 640px) {
    .woocommerce-order { padding: 28px 22px; border-radius: 12px; }
    .woocommerce-customer-details .col2-set,
    .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr; gap: 24px; }
}