/* ============================================================
   Fattoria Pupo — Design Tokens (CSS Custom Properties)
   Foundation layer added during the 2026-06 UI/UX modernization.
   Mirrors the brand palette used throughout this stylesheet so the
   theme can be re-themed at runtime. Components are migrated from
   hardcoded hex to var(--c-*) progressively.
   All colour pairs verified WCAG AA (>=4.5:1).
   ============================================================ */
:root{
  color-scheme:light;
  /* Brand palette */
  --c-crema:#f5f0e8;--c-crema-dark:#ede6d6;
  --c-terra:#8b5e3c;--c-terra-dark:#6d4a2d;
  --c-bosco:#4a6741;--c-bosco-dark:#385131;
  --c-miele:#d4a853;--c-notte:#2c2415;
  --c-white:#ffffff;--c-off-white:#fafaf7;
  --c-border:#e8e0d0;--c-border-dark:#cfc4b0;
  /* Semantic, theme-aware */
  --c-bg:#fafaf7;--c-bg-alt:#f5f0e8;--c-surface:#ffffff;
  --c-text:#2c2415;--c-text-muted:#6b5f50;--c-heading:#2c2415;
  --c-primary:#8b5e3c;--c-primary-hover:#6d4a2d;
  --c-secondary:#4a6741;--c-secondary-hover:#385131;
  --c-accent:#d4a853;            /* fill/badge only — never text on light */
  --c-ring:#d4a853;--c-divider:#e8e0d0;
  /* Fluid type scale */
  --fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;
  --fs-lg:clamp(1.0625rem,1rem + .3vw,1.125rem);
  --fs-xl:clamp(1.1875rem,1.1rem + .45vw,1.25rem);
  --fs-2xl:clamp(1.375rem,1.2rem + .85vw,1.5rem);
  --fs-3xl:clamp(1.625rem,1.35rem + 1.35vw,1.875rem);
  --fs-4xl:clamp(1.875rem,1.45rem + 2.1vw,2.25rem);
  --fs-5xl:clamp(2.25rem,1.6rem + 3.2vw,3rem);
  --fs-6xl:clamp(2.75rem,1.7rem + 5.2vw,3.75rem);
  --lh-tight:1.2;--lh-snug:1.35;--lh-base:1.65;--lh-relaxed:1.8;
  /* Radius / shadow / motion */
  --radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;
  --shadow-card:0 2px 12px rgba(44,36,21,.08);
  --shadow-card-hover:0 8px 28px rgba(44,36,21,.14);
  --transition-fast:150ms ease;--transition-base:250ms ease;
}


*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;line-height:1.65;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;color:#2c2415;background-color:#fafaf7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(orientation: landscape)and (max-width: 768px){html{-webkit-text-size-adjust:none}}img,video,svg{display:block;max-width:100%}img{height:auto}img[loading=lazy]{opacity:0;transition:opacity 400ms ease}img[loading=lazy].is-visible{opacity:1}a{color:#8b5e3c;text-decoration:underline;text-underline-offset:3px;transition:color 150ms ease}a:hover{color:#6d4a2d}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-weight:700;line-height:1.2;color:#2c2415;letter-spacing:-0.02em}p{margin-bottom:1rem}p:last-child{margin-bottom:0}.skip-link{position:absolute;left:1rem;top:1rem;z-index:9999;padding:.5rem 1rem;background:#8b5e3c;color:#fff;border-radius:4px;text-decoration:none;transform:translateY(-200%);transition:transform 150ms ease}.skip-link:focus{transform:translateY(0)}.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap}h1{font-size:clamp(1.875rem,5vw,3.75rem)}h2{font-size:clamp(1.5rem,4vw,3rem)}h3{font-size:clamp(1.25rem,3vw,1.875rem)}h4{font-size:clamp(1.125rem,2.5vw,1.5rem)}h5{font-size:1.125rem}h6{font-size:1rem}.section__eyebrow,.eyebrow{display:block;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8b5e3c;margin-bottom:.75rem}.section__eyebrow--light,.eyebrow--light{color:hsla(0,0%,100%,.7)}.section__title{margin-bottom:1.5rem}@media(min-width: 768px){.section__title{margin-bottom:2rem}}.section__intro{font-size:1.125rem;color:#6b5f50;line-height:1.8;max-width:65ch;margin-bottom:2rem}.entry-content{line-height:1.8;max-width:72ch}.entry-content>*+*{margin-top:1rem}.entry-content h2{margin-top:2.5rem;font-size:1.875rem}.entry-content h3{margin-top:2rem;font-size:1.5rem}.entry-content h4{margin-top:1.5rem;font-size:1.25rem}.entry-content p{color:#2c2415}.entry-content em{font-style:italic;color:#8b5e3c}.entry-content strong{font-weight:700}.entry-content a{color:#8b5e3c;text-decoration:underline}.entry-content a:hover{color:#6d4a2d}.entry-content ul,.entry-content ol{padding-left:1.5rem;list-style:revert}.entry-content ul li{margin-bottom:.5rem}.entry-content ol li{margin-bottom:.5rem}.entry-content blockquote{border-left:3px solid #d4a853;padding-left:1.5rem;margin-left:0;font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-style:italic;font-size:1.25rem;color:#8b5e3c;line-height:1.35}.entry-content figure{margin:2rem 0}.entry-content figcaption{font-size:.875rem;color:#6b5f50;text-align:center;margin-top:.75rem}.entry-content img{border-radius:8px}.pull-quote{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-style:italic;font-size:clamp(1.25rem,2.5vw,1.875rem);color:#8b5e3c;line-height:1.35;border-left:4px solid #d4a853;padding-left:1.5rem;margin:2.5rem 0}.tag{display:inline-block;padding:.25rem .75rem;background:#f5f0e8;border:1px solid #e8e0d0;border-radius:9999px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8b5e3c;text-decoration:none;transition:background 150ms ease,border-color 150ms ease}.tag:hover{background:#8b5e3c;border-color:#8b5e3c;color:#fff}.container{width:100%;max-width:1280px;margin-right:auto;margin-left:auto;padding-right:clamp(1.25rem,5vw,2.5rem);padding-left:clamp(1.25rem,5vw,2.5rem)}.container--narrow{max-width:760px}.container--wide{max-width:1440px}.section{padding-top:clamp(4rem,8vw,7rem);padding-bottom:clamp(4rem,8vw,7rem)}.section__header{text-align:center;max-width:700px;margin:0 auto 3rem}.section__footer{text-align:center;margin-top:2.5rem}.section--alt{background-color:#f5f0e8}.section--dark{background-color:#2c2415;color:#fff}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:80px;background-color:rgba(0,0,0,0);transition:background 250ms ease,box-shadow 250ms ease,height 250ms ease,transform 250ms ease}.site-header::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0) 100%);pointer-events:none;z-index:0;opacity:1;transition:opacity 250ms ease}.site-header.is-scrolled{background-color:hsla(0,0%,100%,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 1px 3px rgba(44,36,21,.08);height:64px}.site-header.is-scrolled::before{opacity:0}.site-header.is-hidden:not(.menu-is-open){transform:translateY(-100%)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:1.5rem;position:relative;z-index:1}.site-header__brand{flex-shrink:0;z-index:2}.site-header__brand a{display:block;line-height:0}.site-header__logo-img{height:52px;width:auto;transition:height 250ms ease,filter 250ms ease;filter:brightness(0) invert(1)}.is-scrolled .site-header__logo-img{height:40px;filter:none}.menu-is-open .site-header__logo-img{filter:none}.site-header__logo-text{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-size:1.25rem;font-weight:700;color:#fff;text-decoration:none;letter-spacing:-0.02em;transition:color 150ms ease}.is-scrolled .site-header__logo-text{color:#2c2415}.site-header__cta{display:none;flex-shrink:0}@media(min-width: 1024px){.site-header__cta{display:block}}.site-nav{display:none;flex:1;justify-content:center}@media(min-width: 1024px){.site-nav{display:flex}}.site-nav__list{display:flex;align-items:center;gap:1.5rem;list-style:none}.site-nav .menu-item{position:relative}.site-nav .menu-item>a{font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:hsla(0,0%,100%,.9);padding:.5rem 0;transition:color 150ms ease;white-space:nowrap}.site-nav .menu-item>a::after{content:"";display:block;height:2px;background:#d4a853;transform:scaleX(0);transition:transform 150ms ease;transform-origin:left}.site-nav .menu-item>a:hover,.site-nav .menu-item>a:focus-visible{color:#fff}.site-nav .menu-item>a:hover::after,.site-nav .menu-item>a:focus-visible::after{transform:scaleX(1)}.is-scrolled .site-nav .menu-item>a{color:#2c2415}.is-scrolled .site-nav .menu-item>a:hover{color:#8b5e3c}.site-nav .menu-item.current-menu-item>a,.site-nav .menu-item.current-menu-parent>a,.site-nav .menu-item.current-post-ancestor>a{color:#d4a853}.site-nav .menu-item.current-menu-item>a::after,.site-nav .menu-item.current-menu-parent>a::after,.site-nav .menu-item.current-post-ancestor>a::after{transform:scaleX(1)}.is-scrolled .site-nav .menu-item.current-menu-item>a,.is-scrolled .site-nav .menu-item.current-menu-parent>a,.is-scrolled .site-nav .menu-item.current-post-ancestor>a{color:#8b5e3c}.site-nav .sub-menu{position:absolute;top:calc(100% + .75rem);left:0;min-width:200px;background:#fff;border-radius:8px;box-shadow:0 8px 32px rgba(44,36,21,.12);padding:.5rem 0;opacity:0;visibility:hidden;transform:translateY(0.75rem);transition:opacity 250ms ease,visibility 250ms ease,transform 250ms ease;z-index:10}.site-nav .sub-menu .menu-item>a{display:block;padding:.75rem 1.5rem;font-size:.875rem;color:#2c2415;text-transform:none;letter-spacing:0}.site-nav .sub-menu .menu-item>a:hover{color:#8b5e3c;background:#f5f0e8}.site-nav .sub-menu .menu-item>a::after{display:none}.site-nav .menu-item:hover>.sub-menu,.site-nav .menu-item:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}.mobile-menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:.5rem;z-index:101;cursor:pointer}@media(min-width: 1024px){.mobile-menu-toggle{display:none}}.mobile-menu-toggle__bar{display:block;width:22px;height:2px;background-color:#fff;border-radius:9999px;transform-origin:center;transition:transform 250ms ease,opacity 250ms ease,background 250ms ease}.is-scrolled .mobile-menu-toggle__bar{background-color:#2c2415}.mobile-menu-toggle[aria-expanded=true] .mobile-menu-toggle__bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.mobile-menu-toggle[aria-expanded=true] .mobile-menu-toggle__bar:nth-child(2){opacity:0;transform:scaleX(0)}.mobile-menu-toggle[aria-expanded=true] .mobile-menu-toggle__bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width: 1023px){.site-header.menu-is-open{background:#fff}.site-header.menu-is-open .mobile-menu-toggle__bar{background-color:#2c2415}.site-header.menu-is-open .site-header__logo-text{color:#2c2415}/* is-scrolled .site-nav — top:0 fullscreen, noop */.site-nav{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;background:rgba(245,240,232,0.55);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:0;overflow:hidden;z-index:999;transform:translateX(100%);transition:transform 400ms cubic-bezier(.22,1,.36,1)}.menu-is-open .site-nav{transform:translateX(0)}.site-nav__list{flex-direction:column;align-items:flex-start;gap:0;width:100%}.site-nav .menu-item{width:100%;border-bottom:1px solid #e8e0d0}.site-nav .menu-item>a{display:block;padding:1.25rem 0;color:#2c2415;font-size:1rem;letter-spacing:0;text-transform:none}.site-nav .menu-item>a::after{display:none}.site-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;padding:0 0 .75rem 1.5rem;background:rgba(0,0,0,0);display:none}.site-nav .sub-menu .menu-item{border-bottom:none}.site-nav .sub-menu .menu-item>a{padding:.5rem 0;font-size:.875rem;color:#6b5f50}body.menu-is-open{overflow:hidden}}.site-footer{background-color:#2c2415;color:hsla(0,0%,100%,.6);padding-top:3rem}.site-footer a{color:hsla(0,0%,100%,.75);text-decoration:none;transition:color 150ms ease}.site-footer a:hover{color:#d4a853}.site-footer__inner{display:grid;grid-template-columns:1fr;gap:2rem;text-align:center}@media(min-width: 768px){.site-footer__inner{grid-template-columns:auto 1fr auto;align-items:center;text-align:left;gap:3rem}}.site-footer__brand{display:flex;justify-content:center}@media(min-width: 768px){.site-footer__brand{justify-content:flex-start}}.site-footer__logo{display:block;flex-shrink:0}.site-footer__logo img{width:80px;height:auto;filter:brightness(0) invert(1);opacity:.85}.site-footer__info{display:flex;flex-direction:column;gap:.5rem}.site-footer__company{font-size:.875rem;font-weight:700;color:hsla(0,0%,100%,.85);margin:0}.site-footer__address{font-size:.875rem;color:hsla(0,0%,100%,.45);line-height:1.8;margin:0}.site-footer .maps-link{display:inline-flex;align-items:center;gap:5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:hsla(0,0%,100%,.3);transition:color 150ms ease,text-decoration-color 150ms ease}.site-footer .maps-link svg{flex-shrink:0}.site-footer .maps-link:hover{color:#d4a853;text-decoration-color:#d4a853}.site-footer__contacts{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.site-footer__contacts a{font-size:.875rem;color:hsla(0,0%,100%,.6)}.site-footer__contacts a:hover{color:#d4a853}.site-footer__social{display:flex;gap:.75rem;flex-shrink:0;justify-content:center}@media(min-width: 768px){.site-footer__social{justify-content:flex-end}}.site-footer__social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid hsla(0,0%,100%,.2);border-radius:9999px;color:hsla(0,0%,100%,.65);transition:border-color 150ms ease,color 150ms ease,background 150ms ease}.site-footer__social-link:hover{border-color:#d4a853;color:#d4a853;background:rgba(212,168,83,.1)}.site-footer__bottom{border-top:1px solid hsla(0,0%,100%,.08);padding:1.25rem 0;margin-top:2.5rem}.site-footer__legal{font-size:.75rem;color:hsla(0,0%,100%,.3);text-align:center;letter-spacing:.02em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 2rem;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:2px solid rgba(0,0,0,0);border-radius:9999px;cursor:pointer;white-space:nowrap;transition:background 250ms ease,color 250ms ease,border-color 250ms ease,transform 150ms ease,box-shadow 250ms ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:3px solid #d4a853;outline-offset:3px}.btn--sm{padding:.5rem 1.25rem;font-size:.75rem}.btn--lg{padding:1rem 2.5rem;font-size:1rem}.btn--primary{background-color:#8b5e3c;color:#fff;border-color:#8b5e3c}.btn--primary:hover{background-color:#6d4a2d;border-color:#6d4a2d;color:#fff;box-shadow:0 4px 16px rgba(139,94,60,.35)}.btn--secondary{background-color:#4a6741;color:#fff;border-color:#4a6741}.btn--secondary:hover{background-color:#385131;border-color:#385131;color:#fff;box-shadow:0 4px 16px rgba(74,103,65,.35)}.btn--outline{background-color:rgba(0,0,0,0);color:#8b5e3c;border-color:#8b5e3c}.btn--outline:hover{background-color:#8b5e3c;color:#fff}.btn--outline-light{background-color:rgba(0,0,0,0);color:#fff;border-color:hsla(0,0%,100%,.65)}.btn--outline-light:hover{background-color:#fff;color:#2c2415;border-color:#fff}.btn--ghost{background-color:rgba(0,0,0,0);color:hsla(0,0%,100%,.85);border-color:rgba(0,0,0,0);text-decoration:underline;text-underline-offset:4px;letter-spacing:0;text-transform:none}.btn--ghost:hover{color:#fff;text-decoration:none}.card-product{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(44,36,21,.08);transition:box-shadow 250ms ease,transform 250ms ease;display:flex;flex-direction:column}.card-product:hover{box-shadow:0 8px 28px rgba(44,36,21,.14);transform:translateY(-4px)}.card-product__image-link{display:block;overflow:hidden}.card-product__image-wrap{aspect-ratio:4/3;overflow:hidden;background:#f5f0e8}.card-product__image{width:100%;height:100%;object-fit:cover;transition:transform 400ms ease}.card-product:hover .card-product__image{transform:scale(1.04)}.card-product__image--placeholder{background:linear-gradient(135deg, #F5F0E8, #E8E0D0)}.card-product__body{padding:1.5rem;display:flex;flex-direction:column;flex:1;gap:.75rem}.card-product__category{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8b5e3c;margin-bottom:0}.card-product__category a{color:inherit;text-decoration:none}.card-product__category a:hover{color:#6d4a2d}.card-product__title{font-size:1.25rem;line-height:1.35;margin:0}.card-product__title a{color:#2c2415;text-decoration:none}.card-product__title a:hover{color:#8b5e3c}.card-product__highlight{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-style:italic;font-size:1rem;color:#8b5e3c;line-height:1.35;margin:0}.card-product__desc{font-size:.875rem;color:#6b5f50;line-height:1.8;margin:0;flex:1}.card-product__seasonal{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#4a6741;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0}.card-product__seasonal svg{opacity:.7}.card-product__link{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:700;color:#8b5e3c;text-decoration:none;letter-spacing:.06em;text-transform:uppercase;margin-top:auto;padding-top:1rem;border-top:1px solid #e8e0d0;transition:gap 150ms ease,color 150ms ease}.card-product__link:hover{color:#6d4a2d;gap:1rem}.products-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width: 480px){.products-grid{grid-template-columns:repeat(2, 1fr)}}@media(min-width: 1024px){.products-grid{grid-template-columns:repeat(3, 1fr)}}.card-experience{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(44,36,21,.08);transition:box-shadow 250ms ease,transform 250ms ease;display:flex;flex-direction:column}.card-experience:hover{box-shadow:0 8px 28px rgba(44,36,21,.14);transform:translateY(-4px)}.card-experience__image-link{display:block}.card-experience__image-wrap{aspect-ratio:16/10;overflow:hidden;background:#f5f0e8}.card-experience__image{width:100%;height:100%;object-fit:cover;transition:transform 400ms ease}.card-experience:hover .card-experience__image{transform:scale(1.04)}.card-experience__image--placeholder{background:linear-gradient(135deg, #4A6741, rgba(74, 103, 65, 0.4))}.card-experience__body{padding:1.5rem;display:flex;flex-direction:column;flex:1;gap:.75rem}.card-experience__meta{display:flex;flex-wrap:wrap;gap:1rem}.card-experience__meta-item{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#4a6741}.card-experience__meta-item svg{opacity:.7}.card-experience__title{font-size:1.25rem;line-height:1.35;margin:0}.card-experience__title a{color:#2c2415;text-decoration:none}.card-experience__title a:hover{color:#4a6741}.card-experience__desc{font-size:.875rem;color:#6b5f50;line-height:1.8;margin:0;flex:1}.card-experience__link{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:700;color:#4a6741;text-decoration:none;letter-spacing:.06em;text-transform:uppercase;margin-top:auto;padding-top:1rem;border-top:1px solid #e8e0d0;transition:gap 150ms ease,color 150ms ease}.card-experience__link:hover{color:#385131;gap:1rem}.experiences-grid{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width: 768px){.experiences-grid{grid-template-columns:repeat(2, 1fr)}}@media(min-width: 1280px){.experiences-grid{grid-template-columns:repeat(3, 1fr)}}.testimonials-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width: 480px){.testimonials-grid{grid-template-columns:repeat(2, 1fr)}}@media(min-width: 768px){.testimonials-grid{grid-template-columns:repeat(3, 1fr)}}.testimonial-card{background:#fff;border-radius:16px;padding:2rem 1.5rem;box-shadow:0 2px 12px rgba(44,36,21,.08);display:flex;flex-direction:column;gap:1.5rem;position:relative}.testimonial-card__quote-icon{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-size:4rem;line-height:1;color:#d4a853;position:absolute;top:1rem;left:1.5rem;opacity:.5}.testimonial-card__stars{display:flex;gap:2px}.testimonial-card__star{color:#e8e0d0}.testimonial-card__star.is-filled{color:#d4a853}.testimonial-card__quote{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-style:italic;font-size:1.125rem;color:#2c2415;line-height:1.35;margin:0;flex:1}.testimonial-card__footer{display:flex;align-items:center;gap:.75rem}.testimonial-card__avatar{width:36px;height:36px;border-radius:9999px;object-fit:cover;flex-shrink:0}.testimonial-card__author{display:flex;flex-direction:column;gap:.25rem;font-style:normal}.testimonial-card__author strong{font-size:.875rem;font-weight:700;color:#8b5e3c}.testimonial-card__role{font-size:.75rem;color:#6b5f50;letter-spacing:.06em;text-transform:uppercase}.testimonials__google-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:#8b5e3c;text-decoration:none}.testimonials__google-link:hover{color:#6d4a2d}.archive-filter{padding:1.5rem 0;border-bottom:1px solid #e8e0d0;margin-bottom:3rem;background:#fff;position:sticky;top:64px;z-index:10}.archive-filter__nav{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.archive-filter__btn{display:inline-block;padding:.5rem 1.25rem;background:#f5f0e8;border:1px solid #e8e0d0;border-radius:9999px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b5f50;text-decoration:none;transition:background 150ms ease,border-color 150ms ease,color 150ms ease}.archive-filter__btn:hover{background:#e8e0d0;color:#2c2415}.archive-filter__btn.is-active{background:#8b5e3c;border-color:#8b5e3c;color:#fff}.nav-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-top:4rem;padding-top:2.5rem;border-top:1px solid #e8e0d0}.nav-links .page-numbers{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:9999px;background:#f5f0e8;border:1px solid #e8e0d0;font-size:.875rem;font-weight:700;color:#2c2415;text-decoration:none;transition:background 150ms ease,color 150ms ease,border-color 150ms ease}.nav-links .page-numbers:hover{background:#8b5e3c;border-color:#8b5e3c;color:#fff}.nav-links .page-numbers.current{background:#8b5e3c;border-color:#8b5e3c;color:#fff}.nav-links .page-numbers.prev,.nav-links .page-numbers.next{width:auto;padding:0 1.25rem;gap:.5rem}.section-hero{position:relative;min-height:100svh;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:clamp(4rem,8vh,8rem);overflow:hidden;background-color:#2c2415;background-size:cover;background-position:center center;background-repeat:no-repeat}.section-hero__bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}.section-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom, rgba(44, 36, 21, 0.1) 0%, rgba(44, 36, 21, 0.2) 40%, rgba(44, 36, 21, 0.7) 75%, rgba(44, 36, 21, 0.85) 100%)}.section-hero__content{position:relative;z-index:2;width:100%}.section-hero__text{max-width:680px}.section-hero__logo{display:none}@media(min-width: 768px){.section-hero__logo{display:block;position:absolute;bottom:clamp(2.5rem,8vh,6rem);right:clamp(1.5rem,5vw,5rem);z-index:2}}.section-hero__logo img{width:clamp(100px,14vw,180px);height:auto;filter:brightness(0) invert(1);opacity:.85}.section-hero__headline{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:700;line-height:1.2;letter-spacing:-0.02em;color:#fff;margin-bottom:1.5rem}.section-hero__headline em{font-style:italic;color:#d4a853}.section-hero__subtitle{font-size:clamp(1rem,2vw,1.25rem);color:hsla(0,0%,100%,.82);line-height:1.8;max-width:55ch;margin-bottom:2.5rem}.section-hero__actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.section-hero__scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;color:hsla(0,0%,100%,.5);animation:bounceDown 2s ease-in-out infinite;transition:opacity 400ms ease}@keyframes bounceDown{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}.story-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:1rem;pointer-events:none;opacity:0;visibility:hidden;transition:opacity 300ms ease,visibility 300ms ease}.story-modal.is-open{pointer-events:auto;opacity:1;visibility:visible}.story-modal__backdrop{position:absolute;inset:0;background:rgba(44,36,21,.75);backdrop-filter:blur(4px);cursor:pointer}.story-modal__box{position:relative;z-index:1;background:#fafaf7;border-radius:24px;max-width:760px;width:100%;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;transform:translateY(24px) scale(0.97);transition:transform 300ms cubic-bezier(0.22, 1, 0.36, 1);box-shadow:0 24px 64px rgba(44,36,21,.2)}.story-modal.is-open .story-modal__box{transform:translateY(0) scale(1)}.story-modal__close{position:sticky;top:1rem;float:right;margin:1rem 1rem 0 0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:rgba(44,36,21,.08);color:#2c2415;transition:background 150ms ease,transform 150ms ease;z-index:2}.story-modal__close:hover{background:rgba(44,36,21,.16);transform:scale(1.1)}.story-modal__inner{padding:1.25rem 1.25rem 2rem;clear:both}@media(min-width: 480px){.story-modal__inner{padding:2rem 2rem 2.5rem}}.story-modal__title{font-size:clamp(1.5rem,4vw,2.25rem);margin-bottom:1.5rem;color:#2c2415}.story-modal__video-wrap{position:relative;border-radius:16px;overflow:hidden;background:#000;margin-bottom:2rem;aspect-ratio:16/9}.story-modal__video-wrap video{width:100%;height:100%;object-fit:contain;display:block}.story-modal__text{max-width:68ch}.story-modal__text p{margin-bottom:1rem}.story-modal__text p:last-child{margin-bottom:0}body.modal-is-open{overflow:hidden}.section-story{background-color:#fafaf7}.section-story__grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}@media(min-width: 1024px){.section-story__grid{grid-template-columns:1fr 1fr;gap:4rem}}.section-story__image-wrap{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/3}@media(min-width: 1024px){.section-story__image-wrap{aspect-ratio:auto}}.section-story__image{width:100%;height:100%;object-fit:cover;border-radius:24px}.section-story__image-accent{position:absolute;width:60%;height:60%;bottom:-1.5rem;right:-1.5rem;background:#d4a853;border-radius:16px;z-index:-1;opacity:.25;pointer-events:none}.section-story__content{display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem}.section-story__text{max-width:62ch}.section-featured-products{background-color:#f5f0e8}.section-featured-products .section__title{font-size:clamp(1.875rem,4vw,3rem)}.section-featured-products .section__intro{margin:0 auto 2.5rem;text-align:center}.section-visit{background-color:#4a6741;color:#fff}.section-visit .section__title{color:#fff;font-size:clamp(1.875rem,4vw,3rem)}.section-visit__grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}@media(min-width: 1024px){.section-visit__grid{grid-template-columns:1fr 1fr;gap:4rem}}.section-visit__content{display:flex;flex-direction:column;gap:1.5rem}.section-visit__text{font-size:1.125rem;line-height:1.8;color:hsla(0,0%,100%,.82);max-width:55ch}.section-visit__actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding-top:1rem}.section-visit__image-wrap{border-radius:24px;overflow:hidden;aspect-ratio:4/3}@media(min-width: 1024px){.section-visit__image-wrap{aspect-ratio:auto;height:480px}}.section-visit__image{width:100%;height:100%;object-fit:cover;border-radius:24px}.section-contact-cta{background-color:#fff}.section-contact-cta__grid{display:grid;grid-template-columns:1fr;gap:3rem}@media(min-width: 1024px){.section-contact-cta__grid{grid-template-columns:1fr 1fr;gap:4rem}}.section-contact-cta__info{display:flex;flex-direction:column;gap:.5rem}.section-contact-cta__actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem;align-items:center}.section-contact-cta__map{border-radius:24px;overflow:hidden;box-shadow:0 4px 16px rgba(44,36,21,.1);min-height:300px}.section-contact-cta__map iframe{display:block;width:100%;height:100%;min-height:300px}@media(min-width: 768px){.section-contact-cta__map iframe{min-height:420px}}.section-contact-cta__map--placeholder{background:#ede6d6;display:flex;align-items:center;justify-content:center;padding:2rem}.section-contact-cta__map--placeholder p{color:#6b5f50;font-size:.875rem;text-align:center}.contact-info-item{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 0;border-bottom:1px solid #e8e0d0;font-size:1rem}.contact-info-item:last-of-type{border-bottom:none}.contact-info-item svg{flex-shrink:0;color:#8b5e3c;margin-top:2px}.contact-info-item>div{display:flex;flex-direction:column;gap:.25rem}.contact-info-item strong{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#6b5f50;font-weight:700}.contact-info-item span,.contact-info-item a{color:#2c2415;line-height:1.8}.contact-info-item a{text-decoration:none;transition:color 150ms ease}.contact-info-item a:hover{color:#8b5e3c}.section-partners{padding:1.5rem 0 3rem;background:#f5f0e8;text-align:center}.section-partners__img{display:block;max-width:min(1400px,95vw);width:100%;height:auto;margin:0 auto;mix-blend-mode:multiply}.archive-header{padding:clamp(6rem,12vw,10rem) 0 3rem;background:linear-gradient(135deg, #F5F0E8, #FFFFFF);text-align:center;border-bottom:1px solid #e8e0d0}.archive-header__eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#6b5f50;margin-bottom:.75rem}.archive-header__title{font-size:clamp(1.875rem,5vw,3.75rem);margin-bottom:1rem}.archive-header__subtitle{font-size:1.125rem;color:#6b5f50;max-width:60ch;margin:0 auto;line-height:1.8}.archive-header__deco{display:block;width:2.5rem;height:auto;margin:0 auto 2rem;color:#8b5e3c;opacity:.35}.archive-body{padding:4rem 0}.archive-empty{text-align:center;padding:4rem 0}.archive-empty p{font-size:1.125rem;color:#6b5f50;margin-bottom:2rem}.product-single__hero,.experience-single__hero{position:relative;height:clamp(300px,50vw,580px);overflow:hidden}.product-single__hero-image,.experience-single__hero-image{width:100%;height:100%;object-fit:cover}.product-single__hero-overlay,.experience-single__hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom, transparent 40%, rgba(44, 36, 21, 0.75));display:flex;align-items:flex-end;padding-bottom:3rem}.product-single__eyebrow,.experience-single__eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:hsla(0,0%,100%,.7);margin-bottom:.75rem}.product-single__title,.experience-single__title{font-size:clamp(1.875rem,4vw,3.75rem);color:#fff;text-shadow:0 2px 8px rgba(44,36,21,.4)}.product-single__header,.experience-single__header{padding-top:clamp(6rem,12vw,9rem);padding-bottom:2rem;background:#f5f0e8}.product-single__body,.experience-single__body{padding:3rem 0 5rem;background:#fff}.product-single__grid,.experience-single__grid{display:grid;grid-template-columns:1fr;gap:3rem}@media(min-width: 1024px){.product-single__grid,.experience-single__grid{grid-template-columns:1fr 1fr;gap:4rem}}.product-single__category a,.experience-single__category a{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#8b5e3c;text-decoration:none;font-weight:700}.product-single__highlight,.experience-single__highlight{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-style:italic;font-size:1.25rem;color:#8b5e3c;line-height:1.35;border-left:3px solid #d4a853;padding-left:1.25rem}.product-single__ingredients-title,.experience-single__ingredients-title{font-size:1rem;letter-spacing:.06em;text-transform:uppercase;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;color:#6b5f50;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e8e0d0}.product-single__seasonal,.experience-single__seasonal{display:flex;align-items:center;gap:.75rem;font-size:.875rem;font-weight:700;color:#4a6741;letter-spacing:.06em;text-transform:uppercase}.product-single__tags,.experience-single__tags{display:flex;flex-wrap:wrap;gap:.5rem}.product-single__cta,.experience-single__cta{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1.5rem;border-top:1px solid #e8e0d0}.product-single__gallery,.experience-single__gallery{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(min-width: 1024px){.product-single__gallery,.experience-single__gallery{grid-template-columns:1fr}}.product-single__gallery-item,.experience-single__gallery-item{border-radius:16px;overflow:hidden}.product-single__gallery-image,.experience-single__gallery-image{width:100%;height:100%;object-fit:cover}.product-single__meta,.experience-single__meta{display:flex;flex-direction:column;gap:0;border:1px solid #e8e0d0;border-radius:16px;overflow:hidden;margin:1.5rem 0}.product-single__meta-item,.experience-single__meta-item{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid #e8e0d0}.product-single__meta-item:last-child,.experience-single__meta-item:last-child{border-bottom:none}.product-single__meta-item svg,.experience-single__meta-item svg{color:#4a6741;flex-shrink:0;margin-top:2px}.product-single__meta-item>div,.experience-single__meta-item>div{display:flex;flex-direction:column;gap:.25rem}.product-single__meta-label,.experience-single__meta-label{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#6b5f50;font-weight:700}.product-single__meta-value,.experience-single__meta-value{font-size:1rem;color:#2c2415;font-weight:700}.page-article__hero{position:relative;height:clamp(280px,40vw,480px);overflow:hidden}.page-article__hero-image{width:100%;height:100%;object-fit:cover}.page-article__hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom, transparent 30%, rgba(44, 36, 21, 0.7));display:flex;align-items:flex-end;padding-bottom:2.5rem}.page-article__header{padding-top:clamp(6rem,12vw,9rem);padding-bottom:2rem;background:#f5f0e8}.page-article__title{font-size:clamp(1.875rem,5vw,3.75rem);color:#fff}.page-article__header .page-article__title{color:#2c2415}.page-article__body{padding:3rem 0 5rem;background:#fff}.error-404{padding:clamp(8rem,15vw,14rem) 0;text-align:center}.error-404__content{max-width:560px;margin:0 auto}.error-404__code{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-size:clamp(5rem,15vw,10rem);font-weight:700;color:#e8e0d0;line-height:1;margin-bottom:1rem}.error-404__title{font-size:clamp(1.5rem,4vw,2.25rem);margin-bottom:1rem}.error-404__text{color:#6b5f50;font-size:1.125rem;line-height:1.8;margin-bottom:2rem}.section-gallery{background:#4a6741}.section-gallery .section__eyebrow{color:hsla(0,0%,100%,.6)}.section-gallery .section__title{color:#fff}
.gallery-carousel{position:relative;margin-top:2rem}
.gallery-carousel__viewport{overflow:hidden;border-radius:12px}
.gallery-carousel__track{display:flex}
.gallery-carousel__slide{flex:0 0 100%;min-width:0;box-sizing:border-box;padding:0 .4rem}
@media(min-width:1024px){.gallery-carousel__slide{flex:0 0 33.3333%}}
.gallery-carousel__link{display:block;position:relative;overflow:hidden;border-radius:10px;aspect-ratio:4/3}
.gallery-carousel__link:hover .gallery-carousel__img{transform:scale(1.04)}
.gallery-carousel__link:hover .gallery-carousel__overlay{opacity:1}
.gallery-carousel__img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 400ms ease;border-radius:10px}
.gallery-carousel__overlay{position:absolute;inset:0;background:rgba(44,36,21,.35);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 300ms ease;border-radius:10px;color:#fff}
.gallery-carousel__btn{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;background:hsla(0,0%,100%,.94);color:#2c2415;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.25);transition:background 200ms ease,transform 200ms ease;z-index:2}
.gallery-carousel__btn:hover{background:#fff;transform:translateY(-50%) scale(1.06)}
.gallery-carousel__btn--prev{left:-6px}
.gallery-carousel__btn--next{right:-6px}
@media(min-width:768px){.gallery-carousel__btn--prev{left:-22px}.gallery-carousel__btn--next{right:-22px}}
.gallery-carousel__dots{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.gallery-carousel__dot{width:8px;height:8px;border-radius:50%;background:hsla(0,0%,100%,.35);padding:0;transition:background 200ms ease,transform 200ms ease}
.gallery-carousel__dot.is-active{background:#fff;transform:scale(1.3)}
.gallery-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity 250ms ease,visibility 250ms ease}.gallery-lightbox.is-open{opacity:1;visibility:visible}.gallery-lightbox__backdrop{position:absolute;inset:0;background:rgba(44,36,21,.92);cursor:pointer}.gallery-lightbox__img-wrap{position:relative;z-index:1;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.gallery-lightbox__img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 32px rgba(44,36,21,.12)}.gallery-lightbox__close,.gallery-lightbox__prev,.gallery-lightbox__next{position:absolute;z-index:2;background:hsla(0,0%,100%,.1);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:background 150ms ease}.gallery-lightbox__close:hover,.gallery-lightbox__prev:hover,.gallery-lightbox__next:hover{background:hsla(0,0%,100%,.25)}.gallery-lightbox__close{top:1.25rem;right:1.25rem;width:48px;height:48px}.gallery-lightbox__prev{left:1.25rem;top:50%;transform:translateY(-50%);width:52px;height:52px}.gallery-lightbox__next{right:1.25rem;top:50%;transform:translateY(-50%);width:52px;height:52px}.section-testimonials{background:#ede6d6}.related-products{background:#fafaf7;border-top:1px solid #e8e0d0}.site-main{padding-top:0}.section-editorial__hero{position:relative;height:clamp(320px,48vw,560px);overflow:hidden;background-color:#2c2415}.section-editorial__hero--sm{height:clamp(220px,32vw,380px)}.section-editorial__hero-image{width:100%;height:100%;object-fit:cover;object-position:center}.section-editorial__hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(44,36,21,.25) 0%,rgba(44,36,21,.65) 70%,rgba(44,36,21,.85) 100%)}.section-editorial__hero-content{position:absolute;bottom:0;left:0;right:0;padding-bottom:3rem}.section-editorial__header-simple{padding:clamp(6rem,12vw,10rem) 0 3rem;background:linear-gradient(135deg, #F5F0E8, #FFFFFF);border-bottom:1px solid #e8e0d0;text-align:center}.section-editorial__title{font-size:clamp(1.875rem,5vw,3.75rem);color:#fff;text-shadow:0 2px 10px rgba(44,36,21,.4)}.section-editorial__header-simple .section-editorial__title{color:#2c2415;text-shadow:none}.section-editorial__hero .section__eyebrow,.section-editorial__hero .eyebrow{color:hsla(0,0%,100%,.75)}.section-editorial__intro{padding:4rem 0;background:#fff;border-bottom:1px solid #e8e0d0}.section-editorial__highlight{font-family:"Playfair Display",Georgia,"Times New Roman",serif;font-style:italic;font-size:clamp(1.25rem,2.5vw,1.875rem);color:#8b5e3c;line-height:1.35;border-left:3px solid #d4a853;padding-left:1.5rem;margin-bottom:2rem}.section-editorial__sections{padding:3rem 0 5rem;background:#fff}.berry-nav{position:sticky;top:calc(64px + 1rem);z-index:50;display:flex;align-items:center;gap:.5rem;margin-bottom:2.5rem;padding:.5rem 1rem;background:#fff;border:1px solid #e8e0d0;border-radius:9999px;box-shadow:0 4px 16px rgba(44,36,21,.1);font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b5f50;overflow-x:auto;white-space:nowrap;width:100%;scrollbar-width:none;-ms-overflow-style:none}.berry-nav::-webkit-scrollbar{display:none}.berry-nav--no-header{margin-top:clamp(5rem,10vw,8rem)}.berry-nav__home{display:flex;align-items:center;color:#8b5e3c;transition:color 150ms ease;flex-shrink:0}.berry-nav__home:hover{color:#6d4a2d}.berry-nav__sep{color:#cfc4b0;font-weight:400}.berry-nav__label{color:#2c2415}.berry-nav__back{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8b5e3c;text-decoration:none;transition:color 150ms ease;white-space:nowrap}.berry-nav__back:hover{color:#6d4a2d}.subsections{padding:5rem 0;background:#f5f0e8;background-size:cover;background-position:center;position:relative}.subsections--has-bg{background-color:#2c2415;color:#fff}.subsections__overlay{position:absolute;inset:0;background:rgba(44,36,21,.65);z-index:0}.subsections>.container{position:relative;z-index:1}.subsections__header{text-align:center;max-width:640px;margin:0 auto 3rem}.subsections__title{font-size:clamp(1.5rem,4vw,3rem);margin-bottom:1rem}.subsections--has-bg .subsections__title{color:#fff}.subsections__intro{font-size:1.125rem;color:#6b5f50;line-height:1.8}.subsections--has-bg .subsections__intro{color:hsla(0,0%,100%,.75)}.subsections-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width: 480px){.subsections-grid{grid-template-columns:repeat(2, 1fr)}}@media(min-width: 1024px){.subsections-grid{grid-template-columns:repeat(3, 1fr)}}.card-subsection{border-radius:2rem;background:#fff;box-shadow:0 2px 12px rgba(44,36,21,.08);transition:box-shadow 250ms ease,transform 250ms ease}.card-subsection:hover{box-shadow:0 8px 28px rgba(44,36,21,.14);transform:translateY(-4px)}.card-subsection__inner{display:flex;flex-direction:column;text-decoration:none;color:inherit;height:100%;border-radius:2rem;overflow:hidden}.card-subsection__image-wrap{aspect-ratio:1/1;overflow:hidden;background:#f5f0e8;border-radius:50%;margin:1.5rem 1.5rem 0;flex-shrink:0}.card-subsection__image-wrap--empty{background:linear-gradient(135deg, #F5F0E8, #E8E0D0)}.card-subsection__image{width:100%;height:100%;object-fit:cover;transition:transform 400ms ease}.card-subsection:hover .card-subsection__image{transform:scale(1.04)}.card-subsection__body{padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.card-subsection__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8b5e3c;margin:0}.card-subsection__title{font-size:1.25rem;color:#2c2415;line-height:1.35;margin:0}.card-subsection__desc{font-size:.875rem;color:#6b5f50;line-height:1.8;margin:0;flex:1}.card-subsection__cta{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e8e0d0;font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8b5e3c;transition:gap 150ms ease,color 150ms ease}.card-subsection:hover .card-subsection__cta{gap:1rem;color:#6d4a2d}.berry-nav__item{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b5f50;text-decoration:none;padding:.5rem 1rem;border:1.5px solid #e8e0d0;border-radius:9999px;transition:color 150ms ease,background 150ms ease,border-color 150ms ease;white-space:nowrap;flex-shrink:0}.berry-nav__item:hover{color:#8b5e3c;border-color:#8b5e3c}.berry-nav__item.is-active{color:#fff;background:#8b5e3c;border-color:#8b5e3c}.berry-section{background:#fff;border-radius:2rem;box-shadow:0 2px 12px rgba(44,36,21,.08);padding:2rem 1.25rem;margin-bottom:1.5rem}@media(min-width: 768px){.berry-section{padding:3rem 2rem;margin-bottom:2rem}}.berry-section:nth-child(even){background:#f5f0e8}.berry-section:last-of-type{margin-bottom:0}.berry-section__inner{display:flex;flex-direction:column;gap:2.5rem}@media(min-width: 768px){.berry-section__inner{flex-direction:row;align-items:flex-start;gap:4rem}}@media(min-width: 768px){.berry-section:nth-child(even) .berry-section__inner{flex-direction:row-reverse}}.berry-section__text{flex:1;min-width:0}.berry-section__media{flex:0 0 clamp(200px,30%,340px);display:flex;justify-content:center;align-items:center}.berry-section__media img,.berry-section__media figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;display:block;margin:0 auto}.berry-section__media figure{margin:0;width:100%}.berry-section__media figure figcaption{font-size:.875rem;color:#6b5f50;margin-top:.75rem;text-align:center}.berry-section__title{font-size:clamp(1.5rem,3.5vw,2.25rem);color:#2c2415;margin-bottom:1.5rem;display:inline-block;position:relative;padding-bottom:.75rem}.berry-section__title::after{content:"";position:absolute;bottom:0;left:0;width:48px;height:3px;background:#d4a853;border-radius:9999px}@media(prefers-reduced-motion: no-preference){.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(0.22, 1, 0.36, 1),transform .6s cubic-bezier(0.22, 1, 0.36, 1)}.reveal--left{opacity:0;transform:translateX(-32px);transition:opacity .7s cubic-bezier(0.22, 1, 0.36, 1),transform .7s cubic-bezier(0.22, 1, 0.36, 1)}.reveal--right{opacity:0;transform:translateX(32px);transition:opacity .7s cubic-bezier(0.22, 1, 0.36, 1),transform .7s cubic-bezier(0.22, 1, 0.36, 1)}.reveal--delay-1{transition-delay:.1s}.reveal--delay-2{transition-delay:.2s}.reveal--delay-3{transition-delay:.3s}.is-revealed{opacity:1;transform:translate(0, 0)}}@media(prefers-reduced-motion: reduce){.reveal,.reveal--left,.reveal--right{opacity:1;transform:none}}.section-plp__products{padding:4rem 0 5rem;background:#fff}.section-plp__empty{padding:5rem 0;text-align:center;color:#6b5f50}.subsection-breadcrumb{background:#f5f0e8;border-bottom:1px solid #e8e0d0;padding:1rem 0}.subsection-breadcrumb>.container{display:flex;align-items:center;gap:.75rem;font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.subsection-breadcrumb__back{display:inline-flex;align-items:center;gap:.5rem;color:#8b5e3c;text-decoration:none;transition:color 150ms ease}.subsection-breadcrumb__back:hover{color:#6d4a2d}.subsection-breadcrumb__sep{color:#cfc4b0}.subsection-breadcrumb__current{color:#6b5f50}.section-subsection__body{padding:3rem 0 5rem;background:#fff}.section-subsection__footer{padding:2rem 0 4rem;background:#f5f0e8;border-top:1px solid #e8e0d0}


/* ── Section Divider ──────────────────────────────────────────────────────── */
.section-divider{width:100%;padding:1.25rem 0}
.section-divider__inner{display:flex;align-items:center;gap:1rem}
.section-divider__line{flex:1;height:1px;background:#d4b896;opacity:.45}
.section-divider--dark .section-divider__line{background:rgba(255,255,255,.3)}
.section-divider__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#8b5e3c;opacity:.55}
.section-divider--dark .section-divider__icon{color:#fff;opacity:.5}
.section-divider__svg{width:22px;height:auto;display:block}

/* ── Mobile menu: gap fix via JS custom property ──────────────────────────── */

/* ── Section Novità ─────────────────────────────────────────────────────── */
.section-novita{padding:clamp(4rem,8vw,7rem) 0}
.novita-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem}
@media(max-width:767px){.novita-grid{grid-template-columns:1fr;gap:1.5rem}}
@media(min-width:768px) and (max-width:1023px){.novita-grid{grid-template-columns:repeat(2,1fr)}}
.novita-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px rgba(44,36,21,.07);transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column}
.novita-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(44,36,21,.12)}
.novita-card__image-wrap{aspect-ratio:16/9;overflow:hidden}
.novita-card__image{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.novita-card:hover .novita-card__image{transform:scale(1.04)}
.novita-card__body{padding:1.25rem;flex:1;display:flex;flex-direction:column;gap:.5rem}
.novita-card__title{font-family:'Playfair Display',Georgia,serif;font-size:1.125rem;font-weight:700;color:#2c2415;margin:0;line-height:1.3}
.novita-card__text{font-size:.9rem;color:#6b5f50;line-height:1.55;margin:0;flex:1}.novita-ig-strip{margin-top:3rem;padding-top:2.5rem;border-top:1px solid #e8e0d0}.novita-ig-strip__label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#6b5f50;margin-bottom:1.25rem}.novita-ig-strip__label svg{color:#8b5e3c;flex-shrink:0}.novita-ig-strip__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:600px){.novita-ig-strip__grid{grid-template-columns:1fr}}.novita-ig-card{display:block;text-decoration:none;color:inherit;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 2px 8px rgba(44,36,21,.07);transition:transform .3s,box-shadow .3s}.novita-ig-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(44,36,21,.12)}.novita-ig-card__img-wrap{aspect-ratio:1;overflow:hidden}.novita-ig-card__img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.novita-ig-card:hover .novita-ig-card__img{transform:scale(1.05)}.novita-ig-card__caption{font-size:.8rem;color:#6b5f50;line-height:1.5;padding:.75rem 1rem;margin:0}
@media(max-width:1023px){
  .site-nav__list{
    flex-direction:column;align-items:flex-start;gap:0;width:100%;
    padding:calc(var(--header-h,80px) + 1.5rem) clamp(1.25rem,5vw,2.5rem) 2rem;
    overflow-y:auto;height:100dvh;box-sizing:border-box
  }
  .site-nav .menu-item{width:100%;border-bottom:1px solid rgba(44,36,21,.1)}
  .site-nav .menu-item>a{
    display:block;padding:1.1rem 0;color:#2c2415;font-size:1.15rem;
    font-weight:600;letter-spacing:0;text-transform:none
  }
  .site-nav .menu-item>a::after{display:none}
}
@media(max-width:1023px){
  .site-header{z-index:1000}
}

/* ── Section Editorial: text header + decorative icon ────────────────────── */
.section-editorial__header--text{position:relative;overflow:hidden;padding:clamp(6rem,12vw,10rem) 0 clamp(3rem,6vw,5rem);background:linear-gradient(135deg,#F5F0E8,#FAFAF7);text-align:center}.section-editorial--novita .section-editorial__header--text{padding:clamp(4rem,8vw,6rem) 0 clamp(2rem,4vw,3rem)}
.section-editorial__header-text-inner{position:relative;z-index:1}
.section-editorial__title--text{
  font-size:clamp(1.875rem,5vw,3.75rem);color:#2c2415
}
.section-editorial__header-highlight{
  font-family:'Playfair Display',Georgia,serif;font-style:italic;
  font-size:clamp(1.25rem,2.5vw,1.875rem);color:#8b5e3c;
  border-left:3px solid #d4b896;padding-left:1.5rem;
  margin:1.5rem auto 0;max-width:640px;text-align:left
}
.section-editorial__header-intro{
  max-width:640px;margin:1rem auto 0;color:#5a5040;text-align:left
}
.editorial-deco{
  position:absolute;pointer-events:none;color:#8b5e3c;opacity:.07
}
.editorial-deco--tr{top:-1rem;right:-1rem;width:80px;height:auto}
.editorial-deco svg,.editorial-deco--tr svg{width:100%;height:auto;display:block}

/* ── Product Detail Page (PDP) ─────────────────────────────────────────── */

/* Article wrapper */
.product-single{position:relative;overflow:hidden}

/* Decorative leaf SVGs — constrained, decorative only */
.pdp-deco{
  position:absolute;top:0;right:-1rem;
  width:120px;pointer-events:none;
  color:#8b5e3c;opacity:.06;z-index:0;
  display:flex;flex-direction:column;gap:.5rem
}
.pdp-deco svg{width:100%;height:auto;display:block}
@media(max-width:767px){.pdp-deco{display:none}}

/* PDP — beige background */
body.single-products,
body.single-products .site-main,
body.single-products .product-single{background-color:#f5f0e8}

/* Body — clear fixed header */
.single-product .product-single__body{
  padding-top:clamp(5rem,12vw,9rem)
}

/* Trust badges */
.product-trust-badges{
  display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;
  margin:1.25rem 0;padding:0;list-style:none
}
.product-trust-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.75rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:#4a6741
}
.product-trust-badge svg{flex-shrink:0}

/* Accordion */
.pdp-accordion{border-top:1px solid #e8e0d0;margin-top:1.5rem}
.pdp-accordion + .product-single__cta{margin-top:1.5rem}
.pdp-accordion__toggle{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:1rem 0;
  font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:#2c2415;background:none;border:none;cursor:pointer;text-align:left;
  transition:color 150ms ease
}
.pdp-accordion__toggle:hover{color:#8b5e3c}
.pdp-accordion__chevron{flex-shrink:0;transition:transform 250ms ease}
.pdp-accordion__toggle[aria-expanded="true"] .pdp-accordion__chevron{transform:rotate(180deg)}
.pdp-accordion__panel{
  overflow:hidden;max-height:0;
  transition:max-height 300ms ease
}
.pdp-accordion__panel.is-open{padding-bottom:1.25rem}

/* Benefit grid */
.benefit-grid{
  display:grid;grid-template-columns:1fr;gap:.75rem;
  list-style:none;padding:0;margin:0
}
@media(min-width:480px){.benefit-grid{grid-template-columns:repeat(2,1fr)}}
.benefit-card{display:flex;align-items:flex-start;gap:.75rem}
.benefit-card__icon{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:28px;height:28px;border-radius:9999px;
  background:#4a6741;color:#fff
}
.benefit-card__text{font-size:.875rem;color:#2c2415;line-height:1.65}

/* Store banner */
.product-store-banner{
  display:flex;align-items:flex-start;gap:1rem;
  padding:1.25rem;background:#f5f0e8;border-radius:12px;margin-top:1.5rem
}
.product-store-banner__icon{
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:40px;height:40px;border-radius:9999px;background:#fff;color:#8b5e3c
}
.product-store-banner__body{
  display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:#2c2415
}
.product-store-banner__body strong{font-weight:700}
.product-store-banner__address{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.8125rem;color:#8b5e3c;
  text-decoration:underline;text-underline-offset:3px;transition:color 150ms ease
}
.product-store-banner__address:hover{color:#6d4a2d}

/* External order link */
.product-single__external-link{margin-top:1.5rem}

/* Product gallery slideshow */
.product-slideshow{
  border-radius:20px;overflow:hidden;background:#f5f0e8;
  align-self:start;position:sticky;top:calc(64px + 1.5rem)
}
.product-slideshow__track{
  position:relative;overflow:hidden;border-radius:20px;aspect-ratio:4/3
}
.product-slideshow__slide{
  position:absolute;inset:0;opacity:0;
  transition:opacity 400ms ease;pointer-events:none
}
.product-slideshow__slide.is-active{opacity:1;pointer-events:auto}
.product-slideshow__img{
  width:100%;height:100%;object-fit:contain;display:block;background:#f5f0e8
}
.product-slideshow__arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:9999px;
  background:rgba(255,255,255,.85);color:#2c2415;
  box-shadow:0 2px 8px rgba(44,36,21,.15);
  transition:background 150ms ease;border:none;cursor:pointer
}
.product-slideshow__arrow:hover{background:#fff}
.product-slideshow__arrow--prev{left:.75rem}
.product-slideshow__arrow--next{right:.75rem}
.product-slideshow__nav{
  display:flex;justify-content:center;gap:.5rem;padding:.75rem
}
.product-slideshow__dot{
  width:8px;height:8px;border-radius:9999px;
  background:#d4b896;border:none;cursor:pointer;padding:0;
  transition:background 150ms ease,transform 150ms ease
}
.product-slideshow__dot.is-active{background:#8b5e3c;transform:scale(1.3)}

/* Description */
.product-single__description{margin:1.25rem 0}

/* Mobile: stack, image first */
@media(max-width:1023px){
  .product-slideshow{position:static;order:-1}
  .single-product .product-single__grid{grid-template-columns:1fr !important}
}

/* ── Section Editorial: split layout (video + testo) ────────────────────── */
.section-editorial__split{
  background:#f5f0e8;
  padding:clamp(6rem,12vw,10rem) 0 clamp(4rem,8vw,6rem)
}
.section-editorial__split-inner{
  display:grid;grid-template-columns:1fr;
  gap:3rem;align-items:center
}
@media(min-width:1024px){
  .section-editorial__split-inner{
    grid-template-columns:1fr 1fr;gap:5rem
  }
}
.section-editorial__split-media{
  border-radius:24px;overflow:hidden;
  box-shadow:0 8px 32px rgba(44,36,21,.12);
  aspect-ratio:4/3;background:#2c2415;flex-shrink:0
}
.section-editorial__split-video{
  width:100%;height:100%;object-fit:cover;display:block
}
.section-editorial__split-content{
  display:flex;flex-direction:column;gap:1.5rem
}
.section-editorial__split-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(2rem,5vw,3.75rem);font-weight:700;
  color:#2c2415;line-height:1.2;letter-spacing:-0.02em
}
.section__eyebrow--dark{color:#8b5e3c}

/* ── Section Editorial: product blocks (alternating media + testo) ───────── */
.section-product-blocks{background:#fafaf7}
.product-block{
  padding:clamp(3rem,6vw,5rem) 0;
  border-bottom:1px solid #e8e0d0
}
.product-block:last-child{border-bottom:none}
.product-block__inner{
  display:grid;grid-template-columns:1fr;
  gap:2.5rem;align-items:center
}
@media(min-width:1024px){
  .product-block__inner{
    grid-template-columns:1fr 1fr;gap:4rem
  }
  .product-block--flip .product-block__media{order:2}
}
.product-block__media{
  border-radius:20px;overflow:hidden;
  box-shadow:0 4px 16px rgba(44,36,21,.1);
  aspect-ratio:4/3;background:#f5f0e8
}
.product-block__video,.product-block__image{
  width:100%;height:100%;object-fit:cover;display:block
}
.product-block__content{
  display:flex;flex-direction:column;gap:1rem
}
.product-block__title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(1.5rem,3vw,2.25rem);
  color:#2c2415;line-height:1.2;letter-spacing:-0.02em
}
.product-block__text{color:#6b5f50;font-size:1rem;line-height:1.8}

/* ── Section Editorial: gallery foto ────────────────────────────────────── */
.section-editorial-gallery{
  padding:clamp(4rem,8vw,7rem) 0;
  background:#f5f0e8
}
.section-editorial-gallery__grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.75rem
}
@media(min-width:768px){
  .section-editorial-gallery__grid{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:1024px){
  .section-editorial-gallery__grid{grid-template-columns:repeat(4,1fr)}
}
.section-editorial-gallery__item{
  position:relative;display:block;
  border-radius:12px;overflow:hidden;
  aspect-ratio:1;line-height:0
}
.section-editorial-gallery__item img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 400ms ease
}
.section-editorial-gallery__item:hover img{transform:scale(1.05)}
.section-editorial-gallery__overlay{
  position:absolute;inset:0;
  background:rgba(44,36,21,.35);
  display:flex;align-items:center;justify-content:center;
  color:#fff;opacity:0;transition:opacity 300ms ease
}
.section-editorial-gallery__item:hover .section-editorial-gallery__overlay{opacity:1}

/* ── Cookie consent banner ──────────────────────────────────────────────── */
.fp-cookie-banner{
  position:fixed;bottom:0;left:0;right:0;z-index:10000;
  background:#fff;border-top:1px solid #e8e0d0;
  box-shadow:0 -4px 24px rgba(44,36,21,.1);
  transform:translateY(0);opacity:1;
  transition:transform 380ms cubic-bezier(.22,1,.36,1),opacity 380ms ease
}
.fp-cookie-banner[hidden]{display:none}
.fp-cookie-banner--out{transform:translateY(100%);opacity:0}
.fp-cookie-banner__inner{display:block;padding:.75rem 1rem}
.fp-cookie-banner__text{margin-bottom:.625rem}
.fp-cookie-banner__text strong{display:none}
.fp-cookie-banner__text p{font-size:.75rem;color:#6b5f50;margin:0;line-height:1.5}
.fp-cookie-banner__text a{color:#8b5e3c;text-decoration:underline}
.fp-cookie-long{display:none}
.fp-cookie-short{display:inline}
.fp-privacy-link{background:none;border:none;padding:0;font:inherit;font-size:.75rem;color:#8b5e3c;text-decoration:underline;cursor:pointer;line-height:inherit}
.fp-privacy-link:hover{color:#6d4a2d}
.fp-cookie-banner__actions{display:flex;gap:.5rem}
.fp-cookie-banner__actions .btn{flex:1;justify-content:center;padding:.45rem .5rem;font-size:.7rem}
@media(min-width:900px){
  .fp-cookie-banner__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem clamp(1.25rem,5vw,2.5rem)}
  .fp-cookie-banner__text{margin-bottom:0}
  .fp-cookie-banner__text strong{display:block;font-size:.875rem;font-weight:700;color:#2c2415}
  .fp-cookie-banner__text p{font-size:.8125rem;line-height:1.6}
  .fp-cookie-long{display:inline}
  .fp-cookie-short{display:none}
  .fp-privacy-link{font-size:.8125rem}
  .fp-cookie-banner__actions{flex-shrink:0}
  .fp-cookie-banner__actions .btn{flex:none;padding:.5rem 1.25rem;font-size:.75rem}
}

/* ── Privacy Policy modal ────────────────────────────────────────────────── */
.fp-modal{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;padding:1rem}
.fp-modal[hidden]{display:none}
.fp-modal__backdrop{position:absolute;inset:0;background:rgba(44,36,21,.55);backdrop-filter:blur(2px)}
.fp-modal__dialog{
  position:relative;z-index:1;
  background:#fafaf7;border-radius:16px;
  box-shadow:0 8px 32px rgba(44,36,21,.18);
  width:100%;max-width:660px;max-height:90vh;
  display:flex;flex-direction:column;overflow:hidden
}
.fp-modal__close{
  position:absolute;top:.875rem;right:1rem;
  background:none;border:none;cursor:pointer;
  font-size:1.125rem;color:#6b5f50;line-height:1;padding:.25rem;
  transition:color 150ms ease
}
.fp-modal__close:hover{color:#2c2415}
.fp-modal__body{
  overflow-y:auto;padding:2rem 2rem 2.5rem;
  scrollbar-width:thin;scrollbar-color:#cfc4b0 transparent
}
.fp-modal__body h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.375rem;font-weight:700;color:#2c2415;
  margin:0 0 .25rem;padding-right:2rem
}
.fp-modal__date{font-size:.75rem;color:#6b5f50;margin:0 0 1.5rem}
.fp-modal__body h3{
  font-family:'Playfair Display',Georgia,serif;
  font-size:1rem;font-weight:700;color:#2c2415;
  margin:1.5rem 0 .4rem
}
.fp-modal__body p,.fp-modal__body ul{font-size:.875rem;color:#6b5f50;line-height:1.7;margin:0 0 .5rem}
.fp-modal__body ul{padding-left:1.25rem}
.fp-modal__body li{margin-bottom:.4rem}
.fp-modal__body strong{color:#2c2415}
body.fp-modal-open{overflow:hidden}

/* Map consent placeholder — absolute overlay so iframe stays in flow below it */
.section-contact-cta__map{position:relative}
.fp-map-blocked{
  position:absolute;inset:0;z-index:2;
  background:#f5f0e8;border-radius:24px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1rem;padding:2rem;text-align:center;color:#8b5e3c
}
.fp-map-blocked[hidden]{display:none}
.fp-map-blocked p{font-size:.875rem;color:#6b5f50;margin:0}

/* ── Brand Statement ─────────────────────────────────────────────────────────
   Citazione tipografica a piena larghezza tra hero e journey sections.
   Sostituisce la sezione story mantenendo il titolo e il CTA.
   ─────────────────────────────────────────────────────────────────────────── */
.brand-statement{
  background:#fafaf7;
  padding:clamp(3.5rem,7vw,6rem) 0
}
.brand-statement__inner{
  display:flex;flex-direction:column;
  align-items:center;text-align:center;
  gap:1.25rem
}
.brand-statement__ornament{
  color:#d4a853;opacity:.6;display:block;line-height:0
}
.brand-statement__eyebrow{
  font-size:.75rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#8b5e3c;margin:0
}
.brand-statement__quote{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(1.75rem,4.5vw,3.25rem);
  font-weight:700;font-style:italic;
  line-height:1.2;letter-spacing:-.02em;
  color:#2c2415;margin:0;
  max-width:18ch
}
.brand-statement__actions{
  display:flex;flex-wrap:wrap;gap:1rem;
  justify-content:center;
  margin-top:.75rem
}

/* ── Journey: Narrative Homepage Sections ───────────────────────────────────────
   Four full-width chapters: Farm → Lab → Store → Shop
   Each has its own visual theme and storytelling layout.
   ──────────────────────────────────────────────────────────────────────────── */

/* Chapter intro bridge */
.journey-chapter-intro{padding:2rem 0 0;background:#fafaf7}
.journey-chapter-intro__inner{display:flex;align-items:center;gap:1.25rem}
.journey-chapter-intro__line{flex:1;height:1px;background:linear-gradient(to right, transparent, #d4b896 40%, #d4b896 60%, transparent);opacity:.5}
.journey-chapter-intro__label{font-size:.6875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#9c8e7a;white-space:nowrap}

/* Base section */
.section-journey{position:relative;overflow:hidden;padding:clamp(5rem,10vw,8rem) 0}

/* ── Journey Shop: header + prodotti ────────────────────────────────────────
   Header testo a sinistra (max 600px), poi griglia 3 prodotti.
   Su mobile: scroll orizzontale con snap per il carosello.
   ─────────────────────────────────────────────────────────────────────────── */
/* ── Journey Shop: showcase prodotti (strip full-bleed) ─────────────────────
   Strip crema separata visivamente dalla sezione principale,
   con header proprio, griglia 3 prodotti e CTA centrato in fondo.
   ─────────────────────────────────────────────────────────────────────────── */
.journey-shop__showcase{
  background:#f5f0e8;
  margin-top:clamp(3rem,6vw,5rem);
  padding:clamp(2.5rem,5vw,4rem) 0 clamp(3rem,6vw,5rem);
  position:relative
}
/* Lineetta decorativa di raccordo tra la sezione e la showcase */
.journey-shop__showcase::before{
  content:'';
  position:absolute;top:0;left:50%;
  transform:translate(-50%,-50%);
  width:40px;height:40px;
  border-radius:9999px;
  background:#f5f0e8;
  border:2px solid #e8e0d0;
  box-shadow:0 0 0 6px #fafaf7
}

/* Header showcase */
.journey-shop__showcase-header{
  text-align:center;margin-bottom:2.5rem
}
.journey-shop__showcase-eyebrow{
  font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#8b5e3c;margin-bottom:.625rem
}
.journey-shop__showcase-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(1.375rem,3vw,2rem);
  color:#2c2415;line-height:1.2;margin:0
}

/* Grid prodotti */
.journey-shop__products-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem
}
@media(max-width:767px){
  .journey-shop__products-grid{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    gap:1rem;
    padding-bottom:.75rem;
    margin-inline:calc(clamp(1.25rem,5vw,2.5rem) * -1);
    padding-inline:clamp(1.25rem,5vw,2.5rem)
  }
  .journey-shop__products-grid::-webkit-scrollbar{display:none}
  .journey-shop__products-grid .card-product{
    flex:0 0 82%;
    scroll-snap-align:start
  }
}
@media(min-width:768px) and (max-width:1023px){
  .journey-shop__products-grid{grid-template-columns:repeat(2,1fr)}
}

/* Footer con CTA centrato */
.journey-shop__showcase-footer{
  text-align:center;
  margin-top:2.5rem
}

/* ── Card CTA linee di prodotto (Confetture / Nettari / Novità) ─────────────
   Sostituiscono i 3 prodotti casuali nella showcase "Prodotti selezionati".
   Stesso linguaggio visivo di .card-product; l'intera card è un unico link.
   ─────────────────────────────────────────────────────────────────────────── */
.card-category{
  display:flex;
  flex-direction:column;
  background:var(--c-surface,#fff);
  border-radius:var(--radius-lg,16px);
  overflow:hidden;
  box-shadow:var(--shadow-card,0 2px 12px rgba(44,36,21,.08));
  text-decoration:none;
  transition:box-shadow 250ms ease,transform 250ms ease
}
.card-category:hover{
  box-shadow:var(--shadow-card-hover,0 8px 28px rgba(44,36,21,.14));
  transform:translateY(-4px)
}
.card-category:focus-visible{
  outline:3px solid var(--c-ring,#d4a853);
  outline-offset:3px
}
.card-category__image-wrap{
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--c-crema,#f5f0e8)
}
.card-category__image{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform 400ms ease
}
.card-category:hover .card-category__image{transform:scale(1.04)}
.card-category__image--placeholder{
  background:linear-gradient(135deg,#f5f0e8,#e8e0d0)
}
.card-category__body{
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  flex:1;
  gap:.75rem
}
.card-category__title{
  font-size:1.375rem;
  line-height:1.3;
  margin:0;
  color:var(--c-heading,#2c2415);
  transition:color 150ms ease
}
.card-category:hover .card-category__title{color:var(--c-primary,#8b5e3c)}
.card-category__tagline{
  font-size:.875rem;
  color:var(--c-text-muted,#6b5f50);
  line-height:1.8;
  margin:0;
  flex:1
}
.card-category__link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:44px;
  font-size:.875rem;
  font-weight:700;
  color:var(--c-primary,#8b5e3c);
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-top:auto;
  padding-top:1rem;
  border-top:1px solid var(--c-border,#e8e0d0);
  transition:gap 150ms ease,color 150ms ease
}
.card-category:hover .card-category__link{
  color:var(--c-primary-hover,#6d4a2d);
  gap:1rem
}
/* Carosello mobile: stesse regole di scroll-snap delle card prodotto */
@media(max-width:767px){
  .journey-shop__products-grid .card-category{
    flex:0 0 82%;
    scroll-snap-align:start
  }
}

/* Placeholder colonna sinistra quando l'immagine non è ancora impostata (Lab) */
.journey__media-empty{
  border-radius:24px;min-height:380px;
  background:rgba(255,255,255,.04);
  border:2px dashed rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center
}
.section-journey--lab .journey__media-empty{
  background:rgba(139,94,60,.06);
  border-color:rgba(139,94,60,.18)
}
@media(max-width:1023px){.journey__media-empty{display:none}}

/* Grid layouts — HTML order governa sinistra/destra */
.journey__grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
@media(min-width:1024px){
  /* Split standard: primo figlio sinistra, secondo figlio destra */
  .journey__grid--split{grid-template-columns:1fr 1fr;gap:clamp(3rem,5vw,5rem)}
  /* Store: colonna testo (55%) + colonna visiva (45%) */
  .journey__grid--store-split{grid-template-columns:55% 1fr;gap:0}
}

/* Media (immagine) */
.journey__media{border-radius:24px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.25);aspect-ratio:4/3;background:rgba(0,0,0,.1)}
.journey__media-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 600ms ease;aspect-ratio:4/3}
@media(min-width:1024px){
  .journey__media{aspect-ratio:auto}
  .journey__media-img{aspect-ratio:auto;height:540px}
}
.section-journey:hover .journey__media-img{transform:scale(1.02)}

/* Store: colonna destra visiva (sfondo fotografico) */
.journey__store-visual{
  display:none;
  border-radius:0 0 0 24px;
  background-color:#4a1f3a;
  background-size:cover;background-position:center;
  position:relative;
  min-height:420px
}
.journey__store-visual::after{
  content:'';position:absolute;inset:0;border-radius:0 0 0 24px;
  background:linear-gradient(to right,rgba(74,31,58,.5) 0%,rgba(74,31,58,.1) 100%)
}
@media(min-width:1024px){.journey__store-visual{display:block}}

/* Content wrapper — flex column, tutto allineato a sinistra per default */
.journey__content{display:flex;flex-direction:column}

/* Elementi del contenuto */
.journey__step-badge{display:flex;align-items:center;gap:.625rem;margin-bottom:1.25rem}
.journey__step-num{font-family:'Playfair Display',Georgia,serif;font-size:1rem;font-weight:700;letter-spacing:.06em;color:#d4a853;line-height:1}
.journey__step-slash{opacity:.3;font-size:.875rem}
.journey__step-category{font-size:.6875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.65}
.journey__eyebrow{display:block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem}
.journey__title{font-size:clamp(1.875rem,4vw,3rem);line-height:1.15;letter-spacing:-.025em;margin-bottom:1.5rem}
.journey__text{font-size:1.0625rem;line-height:1.8;max-width:56ch;margin-bottom:2rem;opacity:.85}
.journey__text p:last-child{margin-bottom:0}
.journey__actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}

/* ── FATTORIA (01, dispari): verde foresta scuro ─────────────────────────── */
.section-journey--farm{background:#1d2e1a;color:#fff}
.section-journey--farm .journey__bg-num{color:#fff}
.section-journey--farm .journey__eyebrow{color:#d4a853}
.section-journey--farm .journey__title{color:#fff}
.section-journey--farm .journey__text{color:rgba(255,255,255,.82)}
.section-journey--farm .journey__text p{color:inherit}
.section-journey--farm .journey__media{box-shadow:0 20px 60px rgba(0,0,0,.5)}

/* ── LABORATORIO (02, pari): crema calda ────────────────────────────────── */
.section-journey--lab{background:#f5f0e8;color:#2c2415}
/* btn--ghost su sfondo chiaro: colore scuro invece del bianco default */
.section-journey--lab .btn--ghost{color:#8b5e3c}
.section-journey--lab .btn--ghost:hover{color:#6d4a2d}
.section-journey--lab .journey__bg-num{color:#2c2415}
.section-journey--lab .journey__eyebrow{color:#8b5e3c}
.section-journey--lab .journey__title{color:#2c2415}
.section-journey--lab .journey__text{color:#6b5f50}
.section-journey--lab .journey__text p{color:inherit}
.section-journey--lab .journey__step-num{color:#8b5e3c}

/* ── PUNTO VENDITA (03, dispari): prugna/bacca ──────────────────────────── */
.section-journey--store{background:#4a1f3a;color:#fff;overflow:hidden}
.section-journey--store .journey__bg-num{color:#fff}
.section-journey--store .journey__eyebrow{color:#d4a853}
.section-journey--store .journey__title{color:#fff}
.section-journey--store .journey__text{color:rgba(255,255,255,.82)}
.section-journey--store .journey__text p{color:inherit}
/* Padding esteso per la colonna testo nel layout store-split */
@media(min-width:1024px){
  .section-journey--store .journey__content{padding-right:3rem}
}

/* ── ACQUISTA (04, pari): bianco caldo ──────────────────────────────────── */
.section-journey--shop{background:#fafaf7;color:#2c2415}
.section-journey--shop .journey__bg-num{color:#2c2415}
.section-journey--shop .journey__eyebrow{color:#8b5e3c}
.section-journey--shop .journey__title{color:#2c2415}
.section-journey--shop .journey__step-num{color:#8b5e3c}
.section-journey--shop .journey__text{color:#6b5f50}
.section-journey--shop .journey__text p{color:inherit}
.journey__shop-card-wrap{display:flex;align-items:center;justify-content:center}

/* Shop card */
.journey-shop__card{
  background:#fff;border-radius:20px;padding:2rem;
  box-shadow:0 4px 24px rgba(44,36,21,.1);
  display:flex;flex-direction:column;gap:1.25rem;
  max-width:420px;width:100%;border:1px solid #e8e0d0
}
.journey-shop__card-header{display:flex;align-items:center;gap:.75rem;color:#8b5e3c}
.journey-shop__card-label{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8b5e3c;margin:0}
.journey-shop__card-title{font-size:1.25rem;color:#2c2415;margin:0 0 .375rem;line-height:1.3}
.journey-shop__card-text{font-size:.9375rem;color:#6b5f50;line-height:1.7;margin:0}
.journey-shop__perks{display:flex;flex-direction:column;gap:.625rem;list-style:none;padding:.25rem 0 0;margin:0;border-top:1px solid #e8e0d0;padding-top:1.25rem}
.journey-shop__perks li{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:#2c2415}
.journey-shop__perks li svg{color:#4a6741;flex-shrink:0}

/* Amazon button */
.journey-shop__amazon-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.75rem;
  padding:.9375rem 1.75rem;background:#ff9900;color:#111;
  border-radius:9999px;font-size:.9375rem;font-weight:700;
  text-decoration:none;letter-spacing:0;text-transform:none;
  transition:background 200ms ease,transform 150ms ease,box-shadow 200ms ease;
  border:2px solid transparent
}
.journey-shop__amazon-btn:hover{background:#e68a00;transform:translateY(-1px);box-shadow:0 6px 20px rgba(255,153,0,.4);color:#111}
.journey-shop__amazon-btn:focus-visible{outline:3px solid #d4a853;outline-offset:3px}
.journey-shop__amazon-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}
.journey-shop__no-amazon{display:flex;flex-direction:column;gap:.875rem;padding-top:1rem;border-top:1px solid #e8e0d0}
.journey-shop__no-amazon p{font-size:.875rem;color:#6b5f50;margin:0}

/* ── Scroll progress line ────────────────────────────────────────────────────
   Linea sottile ambra/marrone che si riempie con lo scroll in cima alla pagina.
   ─────────────────────────────────────────────────────────────────────────── */
.scroll-progress-line{
  position:fixed;top:0;left:0;right:0;height:2px;z-index:9999;
  background:linear-gradient(to right,#8b5e3c,#d4a853);
  transform-origin:left center;transform:scaleX(0);
  pointer-events:none
}

/* ── Journey content: stagger cascade via CSS ────────────────────────────────
   Quando il parent .journey__content riceve .is-revealed dall'observer,
   i figli diretti entrano in sequenza via :nth-child transition-delay.
   Nessun observer aggiuntivo necessario — funziona sempre.
   ─────────────────────────────────────────────────────────────────────────── */
@media(prefers-reduced-motion:no-preference){
  .section-journey .journey__content > *{
    opacity:0;
    transform:translateY(20px);
    transition:opacity 480ms ease, transform 480ms cubic-bezier(.22,1,.36,1)
  }
  .section-journey .journey__content.is-revealed > *{
    opacity:1;transform:translateY(0)
  }
  .section-journey .journey__content.is-revealed > *:nth-child(1){transition-delay: 60ms}
  .section-journey .journey__content.is-revealed > *:nth-child(2){transition-delay:170ms}
  .section-journey .journey__content.is-revealed > *:nth-child(3){transition-delay:280ms}
  .section-journey .journey__content.is-revealed > *:nth-child(4){transition-delay:390ms}
  .section-journey .journey__content.is-revealed > *:nth-child(5){transition-delay:500ms}
  .section-journey .journey__content.is-revealed > *:nth-child(n+6){transition-delay:580ms}
}
@media(prefers-reduced-motion:reduce){
  .section-journey .journey__content > *{opacity:1;transform:none}
}

/* ── Button ripple ───────────────────────────────────────────────────────────
   Onda al click. Il .btn già ha overflow:hidden; il ripple si espande
   da dove l'utente ha cliccato.
   ─────────────────────────────────────────────────────────────────────────── */
.btn-ripple{
  position:absolute;
  width:6px;height:6px;
  border-radius:9999px;
  background:rgba(255,255,255,.35);
  transform:translate(-50%,-50%) scale(0);
  pointer-events:none;
  animation:btn-ripple-anim 580ms ease-out forwards
}
@keyframes btn-ripple-anim{
  to{transform:translate(-50%,-50%) scale(60);opacity:0}
}

/* ── Journey Progress Strip ─────────────────────────────────────────────────
   Sticky strip animato. Si posiziona sotto l'header (top:64px) all'interno
   del .journey-wrapper e scorre via naturalmente dopo l'ultima sezione.
   Stato step: default → is-active → is-done
   ───────────────────────────────────────────────────────────────────────── */

.journey-wrapper{position:relative}

.journey-progress{
  position:sticky;top:64px;z-index:45;
  background:rgba(250,250,247,.97);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid #e8e0d0;
  padding:.625rem 0;
  box-shadow:0 2px 12px rgba(44,36,21,.06)
}

.journey-progress__inner{
  display:flex;align-items:center;justify-content:center;
  gap:0;
  max-width:860px;margin:0 auto;
  padding:0 clamp(1rem,4vw,2rem)
}

/* ── Step item ────────────────────────────────────────────────────────────── */
.journey-progress__step{
  display:flex;flex-direction:column;align-items:center;gap:.3rem;
  text-decoration:none;color:#6b5f50;
  flex-shrink:0;
  transition:color 250ms ease;
  padding:.25rem .5rem
}
.journey-progress__step:hover{color:#2c2415}

/* ── Dot (cerchio) ──────────────────────────────────────────────────────── */
.journey-progress__dot{
  width:38px;height:38px;border-radius:9999px;
  border:2px solid #d4b896;
  background:#fafaf7;
  display:flex;align-items:center;justify-content:center;
  position:relative;
  transition:border-color 350ms ease,background 350ms ease,box-shadow 350ms ease;
  overflow:hidden
}

/* Tre stati del dot — solo uno visibile per volta */
.journey-progress__state{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  transition:opacity 300ms ease,transform 300ms ease;
}
/* Numero (default) */
.journey-progress__state--num{
  font-family:'Playfair Display',Georgia,serif;
  font-size:.75rem;font-weight:700;color:#9c8e7a;
  opacity:1;transform:scale(1)
}
/* Icona step (active) */
.journey-progress__state--icon{opacity:0;transform:scale(.7)}
.journey-progress__state--icon svg{width:17px;height:17px;color:#fff}
/* Checkmark (done) */
.journey-progress__state--check{opacity:0;transform:scale(.7)}
.journey-progress__state--check svg{width:14px;height:14px;color:#fff}

/* ── Labels ─────────────────────────────────────────────────────────────── */
.journey-progress__labels{
  display:flex;flex-direction:column;align-items:center;gap:.05rem
}
.journey-progress__label{
  font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  white-space:nowrap;line-height:1.2;
  transition:color 250ms ease
}
.journey-progress__sublabel{
  font-size:.575rem;letter-spacing:.06em;text-transform:uppercase;
  color:#b0a090;line-height:1;white-space:nowrap;
  transition:color 250ms ease
}

/* ── Connector (linea tra step) ─────────────────────────────────────────── */
.journey-progress__connector{
  display:flex;align-items:center;gap:.35rem;
  flex:1;min-width:24px;max-width:80px;
  padding:0 .25rem
}
.journey-progress__connector-track{
  flex:1;height:2px;background:#e8e0d0;border-radius:9999px;
  position:relative;overflow:hidden
}
.journey-progress__connector-fill{
  position:absolute;inset:0;
  background:linear-gradient(to right,#8b5e3c,#d4a853);
  transform-origin:left center;
  transform:scaleX(0);
  transition:transform 550ms cubic-bezier(.22,1,.36,1)
}
.journey-progress__arrow{
  font-size:.8rem;color:#d4b896;line-height:1;flex-shrink:0;
  transition:color 350ms ease
}

/* ── State: ACTIVE ───────────────────────────────────────────────────────── */
.journey-progress__step.is-active .journey-progress__dot{
  border-color:#d4a853;
  background:#d4a853;
  box-shadow:0 0 0 4px rgba(212,168,83,.18)
}
.journey-progress__step.is-active .journey-progress__state--num{opacity:0;transform:scale(.6)}
.journey-progress__step.is-active .journey-progress__state--icon{opacity:1;transform:scale(1)}
.journey-progress__step.is-active .journey-progress__label{color:#2c2415}
.journey-progress__step.is-active .journey-progress__sublabel{color:#8b5e3c}

/* Pulse ring sull'active */
@keyframes jp-pulse{
  0%{box-shadow:0 0 0 0 rgba(212,168,83,.45)}
  70%{box-shadow:0 0 0 8px rgba(212,168,83,0)}
  100%{box-shadow:0 0 0 0 rgba(212,168,83,0)}
}
@media(prefers-reduced-motion:no-preference){
  .journey-progress__step.is-active .journey-progress__dot{
    animation:jp-pulse 2s ease-out infinite
  }
}

/* ── State: DONE ─────────────────────────────────────────────────────────── */
.journey-progress__step.is-done .journey-progress__dot{
  border-color:#4a6741;background:#4a6741
}
.journey-progress__step.is-done .journey-progress__state--num{opacity:0;transform:scale(.6)}
.journey-progress__step.is-done .journey-progress__state--check{opacity:1;transform:scale(1)}
.journey-progress__step.is-done .journey-progress__label{color:#4a6741}
.journey-progress__step.is-done .journey-progress__sublabel{color:#4a6741}

/* Connector fill quando il precedente step è done */
.journey-progress__connector.is-filled .journey-progress__connector-fill{transform:scaleX(1)}
.journey-progress__connector.is-filled .journey-progress__arrow{color:#d4a853}

/* ── Mobile: mostra i titoli sotto i pallini, riduce i dot ──────────────── */
@media(max-width:639px){
  .journey-progress__inner{padding:0 .5rem}
  .journey-progress__step{padding:.25rem .15rem;gap:.25rem}
  .journey-progress__dot{width:30px;height:30px}
  .journey-progress__labels{display:flex}
  .journey-progress__label{
    font-size:.5rem;letter-spacing:.04em;
    white-space:normal;text-align:center;max-width:8ch;line-height:1.15
  }
  .journey-progress__sublabel{display:none}
  .journey-progress__connector{min-width:10px;max-width:32px;padding:0 .1rem}
  .journey-progress__arrow{font-size:.7rem}
}
/* ── Reduced-motion safety belt (UI/UX modernization 2026-06) ──────────────────
   The theme already gates scroll-reveals behind (no-preference); this neutralizes
   the remaining ungated/decorative keyframe animations and JS-driven motion for
   users who request reduced motion. Static elements stay visible. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  html{scroll-behavior:auto !important;}
  .scroll-progress-line{display:none !important;}
  .section-hero__bg-img{transform:none !important;}
  .btn-ripple{display:none !important;}
}

/* ── Accessibility: focus & touch (UI/UX modernization 2026-06) ────────────────
   Fallback keyboard-focus ring for every interactive element that lacks a
   bespoke one. Uses :where() = 0 specificity, so component-specific focus styles
   (.btn, nav links, …) still win. Plus touch-action to drop the 300ms tap delay
   and a subtle branded tap highlight instead of the default grey box. */
:where(a, button, input, select, textarea, summary, [tabindex], [role="button"]):focus-visible{
  outline: 3px solid var(--c-ring, #d4a853);
  outline-offset: 2px;
  border-radius: 2px;
}
a, button, input, select, textarea, summary, [tabindex], [role="button"]{
  touch-action: manipulation;
}
a, button, [role="button"], .btn{
  -webkit-tap-highlight-color: rgba(139, 94, 60, .15);
}

/* ── Aesthetic polish (UI/UX modernization 2026-06) ───────────────────────────
   Measured refinements on top of the existing (strong) design. Additive. */

/* Testimonials: roman serif instead of long italic blocks + airier leading,
   keeping the decorative gold quote mark. Easier to read, still elegant. */
.testimonial-card__quote{ font-style: normal; line-height: 1.6; }

/* Modern heading typography: balance multi-line titles so they don't leave
   a lonely last word; tidy body wrapping (orphan/widow control). */
h1, h2, h3, .section__title, .section-hero__headline{ text-wrap: balance; }
.section__intro, .entry-content p, .testimonial-card__quote{ text-wrap: pretty; }

/* Touch targets: solid/outline CTAs reach the 44px minimum (Apple HIG / WCAG)
   without changing the text-style ghost links. */
.btn:not(.btn--ghost){ min-height: 44px; }

/* ── Language switcher (Polylang) — UI/UX modernization 2026-06 ────────────────
   Compact IT/EN switch in the header. White over the hero, dark once scrolled. */
.lang-switcher{ display:flex; align-items:center; }
.lang-switcher__list{ display:flex; align-items:center; gap:.15rem; list-style:none; margin:0; padding:0; }
.lang-switcher__item{ font-size:.75rem; font-weight:700; letter-spacing:.08em; line-height:1; }
.lang-switcher__item + .lang-switcher__item{ margin-left:.15rem; border-left:1px solid currentColor; padding-left:.15rem; opacity:1; }
.lang-switcher__item a{ display:inline-flex; align-items:center; min-height:44px; padding:0 .5rem; color:rgba(255,255,255,.82); text-decoration:none; border-radius:4px; transition:color .15s ease, background .15s ease; }
.lang-switcher__item a:hover{ color:#fff; }
.lang-switcher__item.is-current a{ color:var(--c-accent,#d4a853); }
.site-header.is-scrolled .lang-switcher__item a{ color:var(--c-text-muted,#6b5f50); }
.site-header.is-scrolled .lang-switcher__item a:hover{ color:var(--c-text,#2c2415); }
.site-header.is-scrolled .lang-switcher__item.is-current a{ color:var(--c-primary,#8b5e3c); }

/* Hero headline tagline (second line under the brand name) — modernization 2026-06 */
.section-hero__headline-tagline{ display:block; font-size:.5em; font-weight:400; letter-spacing:.05em; margin-top:.35em; opacity:.95; }

/* ── Loop video ("GIF-style") + Fruit postcard rail (2026-06) ────────────────── */
.loop-video{ position:relative; border-radius:var(--radius-lg,16px); overflow:hidden; background:#2c2415; box-shadow:var(--shadow-card,0 2px 12px rgba(44,36,21,.08)); }
.loop-video__el{ width:100%; height:100%; object-fit:cover; display:block; }
.loop-video--portrait{ aspect-ratio:9/16; }
.loop-video::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(to top, rgba(0,0,0,.5), rgba(0,0,0,0) 48%); }
.loop-video__label{ position:absolute; left:.85rem; bottom:.8rem; z-index:2; color:#fff; font-family:var(--ff-heading,'Playfair Display',serif); font-size:1.05rem; font-weight:700; letter-spacing:.01em; text-shadow:0 2px 10px rgba(0,0,0,.55); }

/* Fruit loop inside product blocks (berry page): contain the 9:16 portrait video */
.product-block__loop{ max-width:300px; margin-inline:auto; width:100%; }
@media (min-width:768px){ .product-block__loop{ max-width:340px; } }

/* ── Fruit bubble (cycling videos over the Fattoria image) ───────────────────── */
.section-journey--farm .journey__media{ position:relative; overflow:visible; }
.fruit-bubble{ position:absolute; right:-.75rem; bottom:-1.25rem; z-index:3; width:clamp(120px,34%,210px); cursor:pointer; transform-origin:center; transition:transform .5s cubic-bezier(.22,1,.36,1); will-change:transform; }
.fruit-bubble__inner{ position:relative; width:100%; aspect-ratio:1; border-radius:50%; overflow:hidden; box-shadow:0 14px 44px rgba(0,0,0,.45); transition:box-shadow .45s ease; }
.fruit-bubble.is-zoomed{ z-index:6; }
.fruit-bubble.is-zoomed .fruit-bubble__inner{ box-shadow:0 26px 70px rgba(0,0,0,.6); }
.fruit-bubble:focus-visible{ outline:none; }
.fruit-bubble:focus-visible .fruit-bubble__inner{ box-shadow:0 0 0 3px var(--c-ring,#d4a853), 0 14px 44px rgba(0,0,0,.45); }
.fruit-bubble__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .7s ease; }
.fruit-bubble__video.is-active{ opacity:1; }
.fruit-bubble__ring{ position:absolute; inset:0; z-index:4; border-radius:50%; border:5px solid #fff; pointer-events:none; }
.fruit-bubble__caption{ position:absolute; left:50%; top:calc(100% + .4rem); transform:translateX(-50%) translateY(4px); z-index:5; padding:.16em .7em; border-radius:9999px; background:rgba(44,36,21,.72); color:#fff; font-family:var(--ff-heading,'Playfair Display',serif); font-weight:700; font-size:.62rem; letter-spacing:.03em; white-space:nowrap; opacity:0; transition:opacity .35s ease, transform .35s ease; pointer-events:none; }
.fruit-bubble.is-zoomed .fruit-bubble__caption{ opacity:1; transform:translateX(-50%) translateY(0); }
@media (min-width:768px){ .fruit-bubble{ right:-1.5rem; bottom:-1.5rem; } }
@media (prefers-reduced-motion: reduce){ .fruit-bubble__video, .fruit-bubble__caption{ transition:none; } }

/* ── Fruit identity: signature colours + icons (2026-06) ─────────────────────── */
:root{
  --fruit-blueberry:#3f4d99;
  --fruit-raspberry:#c0396b;
  --fruit-blackberry:#42305c;
  --fruit-currant:#cf3a2f;
  --fruit-strawberry:#d6455a;
}

/* ── Hero logo → header logo morph on scroll (mobile only) ───────────────────
   One large logo sits centered near the top of the hero. As the user scrolls,
   JS animates it (transform only) into the header's logo slot, then swaps to
   the real header logo. Everything below is inert until main.js confirms it
   will drive the effect (adds body.hero-logo-morph) — a safe fallback if JS
   fails to load is both logos showing in their normal, pre-existing spots. */
@media(max-width:767px){
  body.hero-logo-morph .section-hero__content{
    padding-top:clamp(13rem,34vh,15rem);
  }
  body.hero-logo-morph .section-hero__logo{
    position:fixed;
    top:clamp(4.5rem,11vh,5.5rem);
    left:50%;
    transform:translateX(-50%);
    z-index:1001;
  }
  body.hero-logo-morph .section-hero__logo::before{
    content:"";
    position:absolute;
    inset:-20%;
    border-radius:50%;
    background:radial-gradient(circle, rgba(0,0,0,.38), rgba(0,0,0,0) 72%);
    z-index:-1;
  }
  body.hero-logo-morph .section-hero__logo img{
    width:clamp(130px,36vw,170px);
    height:auto;
    filter:brightness(0) invert(1) drop-shadow(0 4px 18px rgba(0,0,0,.5));
    opacity:1;
  }
  body.hero-logo-morph .section-hero__logo.is-docked{
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease;
  }
  body.hero-logo-morph .site-header__brand{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .25s ease, visibility 0s linear .25s;
  }
  body.hero-logo-morph .site-header__brand.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:opacity .25s ease, visibility 0s linear;
  }
}
.fp-fruit-ico{ width:1em; height:1em; display:inline-block; vertical-align:middle; }
.section-divider__icon .fp-fruit-ico{ width:30px; height:30px; }
/* berry-page block title gets its fruit icon */
.section-product-blocks .product-block__title{ display:flex; align-items:center; gap:.55rem; }
.section-product-blocks .product-block__title .fp-fruit-ico{ width:1.15em; height:1.15em; flex:none; }

/* Fruit bubble: ring + caption take the colour of the fruit currently shown */
.fruit-bubble__ring{ border-color:var(--fruit-color,#fff); transition:border-color .6s ease; }
.fruit-bubble__caption{ background:var(--fruit-color,rgba(44,36,21,.72)); }

/* Punto Vendita: una sola immagine (collage store), niente più video —
   le tolgo il vincolo di altezza condiviso con le altre sezioni journey
   per darle più spazio visto che non deve più convivere con il loop video. */
.section-journey--store .journey__media{ box-shadow:none; background:transparent; }
.section-journey--store .journey__media-img{ border-radius:18px; box-shadow:0 14px 40px rgba(0,0,0,.28); }
/* Il collage caricato è quadrato (1:1): sotto i 1024px eredita il box 4:3
   e object-fit:cover taglia sopra/sotto, nascondendo metà delle due foto
   affiancate nel collage. Allineo il rapporto del box a quello reale. */
@media(max-width:1023px){
  .section-journey--store .journey__media{ aspect-ratio:1/1; }
  .section-journey--store .journey__media-img{ aspect-ratio:1/1; }
}
@media(min-width:1024px){
  .section-journey--store .journey__media-img{ height:640px; }
}

/* ── Banner loghi PSR Calabria / UE (sopra il footer) ───────────────────────
   Obbligo di trasparenza fondi: strip bianca discreta, loghi centrati
   a tutte le larghezze (l'immagine si restringe invece di scorrere).
   ─────────────────────────────────────────────────────────────────────────── */
.funding-banner{
  background:var(--c-white,#fff);
  border-top:1px solid var(--c-border,#e8e0d0);
  padding:1.25rem 0
}
.funding-banner__inner{
  display:flex;
  justify-content:center
}
.funding-banner__img{
  width:100%;
  max-width:880px;
  height:auto
}

/* ── Hero: logo sempre visibile, anche su mobile (richiesta cliente) ────────
   Sovrascrive il display:none originale sotto i 768px. Ombra morbida per
   staccare il logo bianco da qualsiasi foto di sfondo; opacita' piena.
   Mobile: centrato in alto (il contenuto hero e' ancorato in basso, quindi
   la parte alta della foto e' libera). Desktop: in basso a destra come prima.
   ─────────────────────────────────────────────────────────────────────────── */
.section-hero__logo{
  display:block;
  position:absolute;
  top:clamp(5.5rem,14vh,7.5rem);
  left:50%;
  transform:translateX(-50%);
  z-index:2
}
.section-hero__logo img{
  width:clamp(120px,32vw,150px);
  height:auto;
  filter:brightness(0) invert(1) drop-shadow(0 2px 14px rgba(0,0,0,.45));
  opacity:1
}
@media(min-width:768px){
  .section-hero__logo{
    top:auto;
    left:auto;
    transform:none;
    bottom:clamp(2.5rem,8vh,6rem);
    right:clamp(1.5rem,5vw,5rem)
  }
  .section-hero__logo img{
    width:clamp(160px,18vw,280px)
  }
}

/* ── Footer: P.IVA sotto i contatti ───────────────────────────────────── */
.site-footer__vat{
  font-size:.875rem;
  color:hsla(0,0%,100%,.45);
}

/* ── Novità: intera card cliccabile verso la sezione Novità ──────────────── */
.novita-card__link{
  display:flex;
  flex-direction:column;
  height:100%;
  color:inherit;
  text-decoration:none;
}
.novita-card__link:focus-visible{
  outline:3px solid #d4a853;
  outline-offset:3px;
  border-radius:16px;
}
