:root{
  --ink:#11140f;
  --ink-2:#1a2118;
  --forest:#20351f;
  --brand:#a9c98d;
  --brand-strong:#5a8d50;
  --cream:#f2eee5;
  --paper:#f7f4ed;
  --sage:#dfe8d7;
  --earth:#5a301a;
  --earth-dark:#321b10;
  --line:rgba(17,20,15,.15);
  --white:#fff;
  --muted:#6b7067;
  --radius:24px;
  --header-h:88px;
  --container:min(1240px,calc(100vw - 64px));
  --ease:cubic-bezier(.2,.75,.25,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;font-family:"Avenir Next","Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open,body.drawer-open,body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{color:inherit}
img,video{display:block;max-width:100%}
::selection{background:var(--brand);color:var(--ink)}
.container{width:var(--container);margin-inline:auto}

h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-weight:500;letter-spacing:-.045em;line-height:.98}
h1{font-size:clamp(4rem,9vw,9.2rem)}
h2{font-size:clamp(3rem,6vw,6.6rem)}
h3{font-size:clamp(1.5rem,2.3vw,2.5rem)}

.eyebrow,.overline{font-size:.73rem;line-height:1;text-transform:uppercase;letter-spacing:.16em;font-weight:700}
.eyebrow.light{color:rgba(255,255,255,.75)}

.site-header{position:fixed;z-index:70;top:0;left:0;right:0;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:12px 30px;transition:background .4s var(--ease),border-color .4s var(--ease),backdrop-filter .4s var(--ease);border-bottom:1px solid transparent}
.site-header.is-scrolled{background:rgba(246,243,235,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:rgba(17,20,15,.1)}
.brand{display:grid;place-items:center;width:112px;height:66px;padding:6px 12px;border-radius:16px;background:rgba(244,239,227,.82);backdrop-filter:blur(10px);box-shadow:0 8px 30px rgba(0,0,0,.08)}
.brand img{width:100%;height:100%;object-fit:contain}
.desktop-nav{display:flex;gap:34px;align-items:center;color:#fff;font-size:.83rem;font-weight:600;letter-spacing:.02em;transition:color .3s ease}
.site-header.is-scrolled .desktop-nav,.shop-header .desktop-nav{color:var(--ink)}
.desktop-nav a{position:relative;padding:12px 0}
.desktop-nav a:after{content:"";position:absolute;left:0;bottom:6px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.desktop-nav a:hover:after{transform:scaleX(1);transform-origin:left}
.header-actions{display:flex;align-items:center;gap:16px}
.shop-link{display:inline-flex;align-items:center;gap:10px;color:#fff;border:1px solid rgba(255,255,255,.42);padding:12px 18px;border-radius:999px;font-size:.82rem;font-weight:700;transition:.3s ease}
.shop-link:hover{background:#fff;color:var(--ink)}
.site-header.is-scrolled .shop-link{color:var(--ink);border-color:var(--line)}
.site-header.is-scrolled .shop-link:hover{background:var(--ink);color:#fff}
.menu-button{display:none;width:44px;height:44px;border:0;border-radius:999px;background:rgba(255,255,255,.12);padding:0;position:relative;cursor:pointer}
.menu-button span{position:absolute;width:18px;height:1.5px;background:currentColor;left:13px;transition:.3s var(--ease)}
.menu-button span:first-child{top:18px}.menu-button span:last-child{top:25px}
.site-header:not(.is-scrolled) .menu-button{color:#fff}
.site-header.is-scrolled .menu-button,.shop-header .menu-button{color:var(--ink);background:rgba(17,20,15,.08)}
.menu-button[aria-expanded="true"] span:first-child{top:21px;transform:rotate(45deg)}
.menu-button[aria-expanded="true"] span:last-child{top:21px;transform:rotate(-45deg)}

.mobile-menu{position:fixed;z-index:65;inset:0;background:var(--brand);clip-path:circle(0 at calc(100% - 40px) 44px);transition:clip-path .7s var(--ease);pointer-events:none}
.mobile-menu.open{clip-path:circle(150% at calc(100% - 40px) 44px);pointer-events:auto}
.mobile-menu-inner{width:var(--container);height:100%;margin:auto;padding-top:130px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.mobile-menu a{font-size:clamp(2.4rem,9vw,5rem);font-weight:500;letter-spacing:-.05em;line-height:1.04;border-bottom:1px solid rgba(17,20,15,.15);padding:9px 0}

.hero{position:relative;height:100svh;min-height:720px;background:#0c0f0b;color:#fff;overflow:hidden}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.025)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,8,4,.78) 0%,rgba(4,8,4,.35) 49%,rgba(4,8,4,.08) 72%),linear-gradient(0deg,rgba(4,8,4,.52),transparent 45%)}
.hero-grain{position:absolute;inset:0;opacity:.09;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E")}
.hero-copy{position:absolute;z-index:3;left:max(32px,calc((100vw - 1240px)/2));bottom:10vh;width:min(760px,58vw)}
.hero-copy h1{margin:18px 0 28px;text-wrap:balance}
.hero-copy h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.055em}
.hero-lead{width:min(560px,100%);font-size:clamp(1.05rem,1.4vw,1.3rem);color:rgba(255,255,255,.82);margin-bottom:30px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:999px;border:1px solid transparent;font-size:.82rem;font-weight:750;letter-spacing:.01em;cursor:pointer;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease}
.btn:hover{transform:translateY(-2px)}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:var(--brand)}
.btn-ghost{border-color:rgba(255,255,255,.38);color:#fff;background:rgba(0,0,0,.08);backdrop-filter:blur(8px)}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--brand-strong)}
.btn.full{width:100%}

.weather-card{position:absolute;z-index:4;right:max(30px,calc((100vw - 1240px)/2));bottom:9vh;width:min(420px,35vw);border-radius:18px;background:rgba(9,14,9,.72);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:18px 20px 16px;box-shadow:0 25px 80px rgba(0,0,0,.24)}
.weather-topline,.weather-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;color:rgba(255,255,255,.72);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}
.weather-topline>span:first-child{display:flex;align-items:center;gap:8px;color:#fff;font-weight:700}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 0 rgba(169,201,141,.55);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(169,201,141,0)}100%{box-shadow:0 0 0 0 rgba(169,201,141,0)}}
.weather-temp{font-size:clamp(3.5rem,5.4vw,5.3rem);line-height:1;font-weight:750;letter-spacing:-.065em;margin:15px 0 16px;color:#fff}
.weather-meta{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);padding:12px 0;margin-bottom:12px}
.weather-meta>div{display:flex;gap:10px;align-items:center}
.weather-meta>div+div{border-left:1px solid rgba(255,255,255,.12);padding-left:18px}
.weather-icon{font-size:1.1rem;color:var(--brand)}
.weather-meta span span{display:flex;flex-direction:column}
.weather-meta small{display:block;color:rgba(255,255,255,.52);font-size:.64rem;text-transform:uppercase;letter-spacing:.08em}
.weather-meta strong{font-size:1.02rem;color:#fff}
.scroll-cue{position:absolute;z-index:4;left:30px;bottom:26px;display:flex;align-items:center;gap:13px;color:rgba(255,255,255,.72);font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;transform:rotate(-90deg);transform-origin:left bottom}
.scroll-cue i{width:65px;height:1px;background:rgba(255,255,255,.6);display:block;position:relative;overflow:hidden}
.scroll-cue i:after{content:"";position:absolute;inset:0;background:#fff;transform:translateX(-100%);animation:lineMove 2.4s infinite}
@keyframes lineMove{50%,100%{transform:translateX(100%)}}

.section-dark{background:var(--ink);color:#fff}
.intro{padding:140px 0 0}
.intro-grid{display:grid;grid-template-columns:220px 1fr;gap:80px;padding-bottom:110px}
.section-kicker{display:flex;align-items:flex-start;gap:14px;padding-top:12px;color:rgba(255,255,255,.55);font-size:.72rem;text-transform:uppercase;letter-spacing:.13em}
.section-kicker span{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:50%;font-size:.62rem}
.section-kicker p{margin:8px 0 0}
.dark-kicker{color:var(--muted)}
.dark-kicker span{border-color:rgba(17,20,15,.18)}
.intro-statement{max-width:980px}
.intro-statement h2{font-size:clamp(3rem,5.5vw,6.2rem);margin-bottom:38px}
.intro-statement p{max-width:690px;color:rgba(255,255,255,.63);font-size:1.12rem;margin-left:auto}
.landscape-panel{position:relative;width:calc(100% - 60px);height:min(74vw,860px);margin:0 auto;overflow:hidden;border-radius:26px 26px 0 0}
.landscape-panel img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.5s var(--ease)}
.landscape-panel.in-view img{transform:scale(1)}
.landscape-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,9,5,.48),transparent 48%)}
.landscape-caption{position:absolute;z-index:2;left:30px;right:30px;bottom:22px;display:flex;justify-content:space-between;color:#fff;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:65px 0 120px;border-top:1px solid rgba(255,255,255,.12)}
.fact{padding:20px 28px 0;border-right:1px solid rgba(255,255,255,.12)}
.fact:first-child{padding-left:0}.fact:last-child{border-right:0}
.fact strong{display:block;font-size:clamp(2.8rem,4vw,5rem);font-weight:500;letter-spacing:-.06em;margin-bottom:9px}
.fact span{display:block;max-width:185px;color:rgba(255,255,255,.52);font-size:.82rem}

.angel-section{background:var(--cream);padding:150px 0}
.angel-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:9vw;align-items:center}
.angel-photo{position:relative;border-radius:40% 40% 20px 20px;overflow:hidden;min-height:760px;background:var(--sage)}
.angel-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transform:scale(1.04);transition:transform 1.3s var(--ease)}
.angel-photo.in-view img{transform:scale(1)}
.age-chip{position:absolute;right:18px;bottom:18px;width:124px;height:124px;border-radius:50%;display:grid;place-items:center;align-content:center;background:var(--brand);color:var(--ink);box-shadow:0 14px 45px rgba(0,0,0,.13)}
.age-chip strong{font-size:3.2rem;line-height:.85;letter-spacing:-.08em}.age-chip span{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;margin-top:6px}
.angel-copy h2{font-size:clamp(3rem,5vw,5.7rem);margin:18px 0 38px}
.angel-copy>p:not(.overline){color:#565a53;font-size:1.04rem;max-width:630px}
.angel-copy blockquote{border-left:2px solid var(--brand-strong);margin:34px 0;padding:4px 0 4px 25px;font-family:Georgia,serif;font-size:1.35rem;line-height:1.45;color:#30332e;max-width:640px}
.text-link{display:inline-flex;gap:10px;align-items:center;font-weight:750;font-size:.8rem;border-bottom:1px solid currentColor;padding-bottom:5px}
.text-link span{transition:transform .3s var(--ease)}.text-link:hover span{transform:translateX(5px)}

.eco-section{display:grid;grid-template-columns:1fr 1fr;min-height:880px;background:var(--brand)}
.eco-image{position:relative;overflow:hidden;min-height:720px}
.eco-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transform:scale(1.08);transition:transform 1.4s var(--ease)}
.eco-image.in-view img{transform:scale(1)}
.eco-content{padding:110px max(7vw,55px);display:flex;flex-direction:column;justify-content:center}
.eco-content h2{font-size:clamp(3.2rem,5vw,6rem);margin:20px 0 30px}
.eco-content>p{max-width:620px;color:rgba(17,20,15,.72);font-size:1.05rem;margin-bottom:48px}
.eco-list{border-top:1px solid rgba(17,20,15,.18)}
.eco-list>div{display:grid;grid-template-columns:48px 1fr;gap:14px;padding:17px 0;border-bottom:1px solid rgba(17,20,15,.18);font-size:.9rem}
.eco-list>div>span{font-size:.64rem;letter-spacing:.12em;padding-top:4px}.eco-list p{margin:0;max-width:520px}

.process-section{position:relative;min-height:94vh;color:#fff;display:flex;align-items:flex-end;overflow:hidden}
.process-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.process-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,8,5,.78),rgba(5,8,5,.28) 60%,rgba(5,8,5,.22)),linear-gradient(0deg,rgba(5,8,5,.78),transparent 65%)}
.process-copy{position:relative;z-index:2;padding-bottom:80px}
.process-copy h2{font-size:clamp(4rem,7vw,7.5rem);margin:20px 0 26px}
.process-copy>p:not(.eyebrow){width:min(650px,100%);font-size:1.06rem;color:rgba(255,255,255,.72)}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:58px;border-top:1px solid rgba(255,255,255,.3);padding-top:18px;gap:20px;font-size:.71rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.68)}

.products-section{padding:140px 0 160px;background:var(--paper)}
.products-heading{margin-bottom:65px}
.heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-top:25px}
.heading-row h2{max-width:900px;margin:0}
.featured-products{display:grid;grid-template-columns:repeat(2,1fr);gap:70px 30px}
.product-feature{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
.product-image-wrap{height:560px;background:#eeeee7;border-radius:20px;overflow:hidden;display:grid;place-items:center;position:relative}
.product-image-wrap:after{content:"";position:absolute;inset:0;border:1px solid rgba(17,20,15,.08);border-radius:inherit;pointer-events:none}
.product-image-wrap img{width:86%;height:86%;object-fit:contain;mix-blend-mode:multiply;transition:transform .55s var(--ease)}
.product-feature:hover .product-image-wrap img{transform:scale(1.04) rotate(-1deg)}
.product-feature>div>span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.product-feature h3{margin:8px 0 8px}.product-feature p{color:var(--muted);max-width:430px;margin:0}

.awards-section{background:var(--earth-dark);color:#fff}
.awards-visual{height:min(72vw,900px);position:relative;overflow:hidden}
.awards-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.05);opacity:.83}
.awards-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--earth-dark),transparent 58%),linear-gradient(90deg,rgba(50,27,16,.5),transparent)}
.award-number{position:absolute;z-index:2;left:max(30px,calc((100vw - 1240px)/2));bottom:7%;display:flex;align-items:flex-end;gap:22px}
.award-number strong{font-size:clamp(5rem,12vw,12rem);line-height:.73;font-weight:500;letter-spacing:-.085em;color:var(--brand)}
.award-number span{max-width:240px;font-size:.78rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.72);padding-bottom:6px}
.awards-content{padding:60px 0 140px}
.awards-title{display:grid;grid-template-columns:1.35fr .65fr;gap:10vw;align-items:end;margin:35px 0 70px}
.awards-title h2{margin:0}.awards-title p{color:rgba(255,255,255,.58);font-size:1rem;max-width:430px}
.award-timeline{border-top:1px solid rgba(255,255,255,.18)}
.award-year{display:grid;grid-template-columns:180px 1fr;padding:32px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.award-year .year{font-size:2.6rem;letter-spacing:-.05em;color:rgba(255,255,255,.32);transition:color .3s ease}
.award-year:hover .year,.award-year.current .year{color:var(--brand)}
.award-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 45px;align-items:start}
.award-list p{font-size:.9rem;margin:0;color:rgba(255,255,255,.75)}
.award-list b{color:#fff}.award-list small{grid-column:1/-1;color:var(--brand);font-size:.76rem;margin-top:5px}

.visit-section{padding:150px 0;background:var(--cream)}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}
.visit-copy h2{font-size:clamp(3.1rem,5.1vw,5.9rem);margin:18px 0 28px}.visit-copy>p:not(.overline){color:var(--muted);max-width:600px}
.visit-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin:34px 0 50px}
.visit-details{margin:0;border-top:1px solid var(--line)}
.visit-details>div{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.visit-details dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.visit-details dd{margin:0;font-size:.88rem}
.visit-images{position:relative;min-height:780px}
.visit-images figure{margin:0;overflow:hidden}
.visit-main{position:absolute;top:0;right:0;width:82%;height:76%;border-radius:45% 45% 16px 16px}
.visit-small{position:absolute;left:0;bottom:0;width:48%;height:38%;border:8px solid var(--cream);border-radius:18px}
.visit-images img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 1.3s var(--ease)}
.visit-images .in-view img{transform:scale(1)}

.map-section{position:relative;height:720px;background:var(--sage)}
.map-frame,.map-frame iframe{width:100%;height:100%;border:0}
.map-frame iframe{filter:saturate(.65) contrast(.9)}
.map-card{position:absolute;left:max(30px,calc((100vw - 1240px)/2));top:50%;transform:translateY(-50%);width:min(430px,calc(100vw - 60px));background:rgba(247,244,237,.95);backdrop-filter:blur(12px);padding:34px;border-radius:22px;box-shadow:0 25px 80px rgba(0,0,0,.14)}
.map-card img{width:100px;height:78px;object-fit:contain;margin-bottom:20px}.map-card h2{font-size:2.5rem;margin:10px 0 17px}.map-card p{color:var(--muted);margin-bottom:25px}

.final-cta{height:75vh;min-height:620px;position:relative;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.final-bg{position:absolute;inset:0}.final-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.06)}
.final-overlay{position:absolute;inset:0;background:rgba(7,12,7,.55)}
.final-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}.final-content h2{max-width:900px;margin:20px auto 34px}

.site-footer{background:#0a0d09;color:#fff;padding:80px 0 24px}
.footer-main{display:grid;grid-template-columns:1.4fr .8fr .6fr .6fr;gap:50px;padding-bottom:60px}
.footer-brand img{width:135px;height:105px;object-fit:contain;background:var(--cream);border-radius:14px;padding:8px;margin-bottom:20px}.footer-brand p{color:rgba(255,255,255,.55);max-width:290px;font-size:.86rem}
.footer-col{display:flex;flex-direction:column;gap:9px}.footer-col>span{font-size:.65rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.38);margin-bottom:7px}.footer-col a{font-size:.83rem;color:rgba(255,255,255,.75);word-break:break-word}.footer-col a:hover{color:var(--brand)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.13);padding-top:20px;display:flex;justify-content:space-between;gap:24px;color:rgba(255,255,255,.38);font-size:.66rem;letter-spacing:.03em}

/* Store */
.shop-page{background:var(--paper)}
.shop-header{position:fixed}.shop-header .brand{box-shadow:none;background:transparent}.shop-header .brand img{filter:none}
.cart-button{border:0;background:var(--ink);color:#fff;border-radius:999px;padding:12px 16px;cursor:pointer;font-size:.78rem;font-weight:750;display:flex;gap:10px;align-items:center}.cart-button span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand);color:var(--ink);font-size:.7rem}
.shop-hero{padding:160px 0 95px;background:var(--sage)}
.shop-hero-grid{display:grid;grid-template-columns:1fr .92fr;align-items:end;gap:8vw}.shop-hero h1{font-size:clamp(4.4rem,8vw,9rem);margin:12px 0 25px}.shop-hero p:not(.eyebrow){max-width:490px;color:#4d544a;font-size:1.05rem}.shop-hero-image{height:620px;overflow:hidden;border-radius:50% 50% 18px 18px;background:var(--cream)}.shop-hero-image img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.3s var(--ease)}.shop-hero-image.in-view img{transform:scale(1)}
.shop-catalog{padding:120px 0 130px}.catalog-top{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:50px}.catalog-top h2{font-size:clamp(3.2rem,5vw,5.5rem);margin:10px 0 0}.filters{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:999px}.filter-btn{border:0;background:transparent;border-radius:999px;padding:9px 15px;cursor:pointer;font-size:.75rem}.filter-btn.active{background:var(--ink);color:#fff}
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:55px 22px}.shop-product{display:flex;flex-direction:column;transition:opacity .35s ease,transform .35s ease}.shop-product.hidden{opacity:0;transform:scale(.97);pointer-events:none;display:none}.shop-product-image{position:relative;height:460px;border-radius:18px;background:#eceee7;overflow:hidden;display:grid;place-items:center}.shop-product-image img{width:85%;height:85%;object-fit:contain;mix-blend-mode:multiply;transition:transform .5s var(--ease)}.shop-product:hover .shop-product-image img{transform:scale(1.045)}.product-badge{position:absolute;z-index:2;top:14px;left:14px;border-radius:999px;background:rgba(247,244,237,.9);padding:7px 10px;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em}.shop-product-image.scenic img{width:100%;height:100%;object-fit:cover;mix-blend-mode:normal;filter:saturate(.82)}.shop-product-image.scenic:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.scenic-label{position:absolute;z-index:2;left:22px;bottom:22px;font-size:3rem;line-height:.85;letter-spacing:-.06em;color:#fff;font-weight:650}.shop-product-body{display:flex;flex-direction:column;justify-content:space-between;min-height:190px;padding:18px 4px 0}.shop-product-body>div:first-child>span{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.shop-product-body h3{font-size:1.65rem;margin:7px 0}.shop-product-body p{font-size:.85rem;color:var(--muted);max-width:340px}.price-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px}.price-row strong{font-size:1.05rem}.add-cart{border:1px solid var(--line);background:transparent;border-radius:999px;padding:9px 14px;cursor:pointer;font-size:.72rem;font-weight:750;transition:.25s ease}.add-cart:hover{background:var(--ink);color:#fff}.add-cart.added{background:var(--brand);border-color:var(--brand)}
.shop-note{display:grid;grid-template-columns:repeat(3,1fr);margin-top:110px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.shop-note>div{display:grid;grid-template-columns:42px 1fr;gap:12px;padding:22px 20px;border-right:1px solid var(--line)}.shop-note>div:last-child{border-right:0}.shop-note span{font-size:.65rem;color:var(--muted);padding-top:3px}.shop-note p{margin:0;font-size:.8rem}.shop-note strong{font-size:.88rem}
.shop-story{background:var(--brand);padding:120px 0}.shop-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.shop-story h2{font-size:clamp(3.1rem,5vw,5.8rem);margin:18px 0 28px}.shop-story p:not(.eyebrow){max-width:550px;color:rgba(17,20,15,.68);margin-bottom:30px}.shop-story-grid>div:last-child{height:620px;border-radius:18px 18px 48% 48%;overflow:hidden}.shop-story img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 1.3s var(--ease)}.shop-story .in-view img{transform:scale(1)}
.shop-footer{padding-top:25px}

.drawer-backdrop{position:fixed;z-index:84;inset:0;background:rgba(5,8,5,.44);opacity:0;pointer-events:none;transition:opacity .35s ease}.drawer-backdrop.open{opacity:1;pointer-events:auto}.cart-drawer{position:fixed;z-index:85;top:0;right:0;width:min(460px,100vw);height:100dvh;background:var(--paper);transform:translateX(100%);transition:transform .5s var(--ease);display:flex;flex-direction:column;padding:25px}.cart-drawer.open{transform:translateX(0)}.cart-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.cart-head h2{font-size:2rem;margin:0}.cart-head button,.modal-close{border:0;background:rgba(17,20,15,.07);border-radius:50%;width:40px;height:40px;font-size:1.5rem;cursor:pointer}.cart-items{flex:1;overflow:auto}.cart-line{display:grid;grid-template-columns:70px 1fr auto;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}.cart-line img{width:70px;height:82px;object-fit:contain;background:#eceee7;border-radius:10px}.cart-line h4{margin:0 0 4px;font-size:.9rem}.cart-line small{color:var(--muted)}.qty-control{display:flex;align-items:center;gap:8px;margin-top:8px}.qty-control button{border:1px solid var(--line);background:transparent;border-radius:50%;width:25px;height:25px;cursor:pointer}.remove-item{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:.72rem;text-decoration:underline;margin-top:7px}.cart-line>strong{font-size:.82rem}.cart-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}.cart-empty p{font-size:1.35rem;color:var(--ink);margin-bottom:4px}.cart-empty span{font-size:.8rem}.cart-footer{padding-top:18px;border-top:1px solid var(--line)}.cart-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.cart-total strong{font-size:1.45rem}.cart-footer>p{font-size:.68rem;color:var(--muted);margin:0 0 14px}
.checkout-modal{position:fixed;z-index:90;inset:0;background:rgba(5,8,5,.7);display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s ease}.checkout-modal.open{opacity:1;pointer-events:auto}.checkout-card{width:min(650px,100%);max-height:92dvh;overflow:auto;background:var(--cream);border-radius:24px;padding:34px;position:relative;transform:translateY(20px);transition:transform .4s var(--ease)}.checkout-modal.open .checkout-card{transform:translateY(0)}.modal-close{position:absolute;top:18px;right:18px}.checkout-card h2{font-size:2.8rem;margin:11px 0}.modal-intro{color:var(--muted);font-size:.85rem;max-width:480px}.checkout-card form{display:grid;gap:15px;margin-top:24px}.checkout-card label{display:grid;gap:6px;font-size:.72rem;font-weight:700}.checkout-card input,.checkout-card textarea{width:100%;border:1px solid rgba(17,20,15,.18);background:rgba(255,255,255,.55);border-radius:11px;padding:12px 13px;outline:none}.checkout-card input:focus,.checkout-card textarea:focus{border-color:var(--brand-strong)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-row{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;font-weight:500!important;line-height:1.4}.check-row input{width:auto;margin-top:3px}

.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in-view,.reveal.is-visible{opacity:1;transform:none}
.reveal-image{clip-path:inset(0 0 100% 0 round 16px);transition:clip-path 1.1s var(--ease)}
.reveal-image.in-view,.reveal-image.is-visible{clip-path:inset(0 0 0 0 round 16px)}
.cursor-glow{position:fixed;z-index:100;left:0;top:0;width:260px;height:260px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(169,201,141,.13),transparent 68%);transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease;mix-blend-mode:screen}
body:hover .cursor-glow{opacity:1}

@media (max-width:1100px){
  :root{--container:min(100% - 40px,1000px)}
  .desktop-nav{display:none}.menu-button{display:block}.shop-link{display:none}
  .weather-card{width:390px;right:24px}.hero-copy{left:24px;width:58vw}
  .intro-grid{grid-template-columns:160px 1fr;gap:30px}.facts-grid{grid-template-columns:repeat(2,1fr)}.fact:nth-child(2){border-right:0}.fact:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12);padding-top:32px}
  .angel-grid{gap:6vw}.angel-photo{min-height:650px}
  .eco-content{padding:80px 45px}
  .product-image-wrap{height:470px}
  .awards-title{grid-template-columns:1fr;gap:25px}.award-list{grid-template-columns:1fr}
  .visit-grid{gap:5vw}.visit-images{min-height:680px}
  .footer-main{grid-template-columns:1.2fr 1fr 1fr}.footer-col:last-child{grid-column:2/3}
  .shop-grid{grid-template-columns:repeat(2,1fr)}.shop-hero-grid{gap:5vw}.shop-hero-image{height:540px}
}

@media (max-width:760px){
  :root{--container:calc(100% - 32px);--header-h:74px}
  body{font-size:15px}
  .site-header{height:var(--header-h);padding:9px 14px}.brand{width:92px;height:58px;border-radius:12px;padding:6px 9px}.header-actions{gap:8px}
  .hero{min-height:760px;height:100svh}.hero-shade{background:linear-gradient(0deg,rgba(5,8,5,.8) 0%,rgba(5,8,5,.3) 58%,rgba(5,8,5,.15))}.hero-copy{left:16px;right:16px;width:auto;bottom:31vh}.hero-copy h1{font-size:clamp(3.6rem,17vw,6.4rem);margin:13px 0 18px}.hero-lead{font-size:.95rem;margin-bottom:22px}.weather-card{left:16px;right:16px;bottom:23px;width:auto;padding:14px 15px}.weather-temp{font-size:3.4rem;margin:10px 0}.weather-foot{font-size:.58rem}.weather-meta{padding:9px 0}.weather-meta strong{font-size:.92rem}.scroll-cue{display:none}
  .intro{padding-top:90px}.intro-grid{display:block;padding-bottom:70px}.section-kicker{margin-bottom:34px}.intro-statement h2{font-size:clamp(2.8rem,13vw,4.7rem);margin-bottom:26px}.intro-statement p{font-size:.95rem;margin-left:0}.landscape-panel{width:calc(100% - 20px);height:72vh;border-radius:18px 18px 0 0}.landscape-caption{left:14px;right:14px;bottom:14px;font-size:.56rem}.facts-grid{display:grid;grid-template-columns:1fr 1fr;padding:42px 0 80px}.fact{padding:20px 15px}.fact:first-child{padding-left:0}.fact:nth-child(3){padding-left:0}.fact strong{font-size:2.7rem}.fact span{font-size:.72rem}
  .angel-section{padding:90px 0}.angel-grid{display:flex;flex-direction:column;gap:60px}.angel-photo{min-height:560px;width:100%}.age-chip{width:98px;height:98px}.age-chip strong{font-size:2.5rem}.angel-copy h2{font-size:clamp(2.8rem,12vw,4.5rem)}.angel-copy blockquote{font-size:1.15rem}
  .eco-section{grid-template-columns:1fr}.eco-image{height:72vh;min-height:540px}.eco-content{padding:75px 16px}.eco-content h2{font-size:clamp(2.9rem,12vw,4.6rem)}
  .process-section{min-height:820px}.process-copy{padding-bottom:40px}.process-copy h2{font-size:clamp(3.5rem,14vw,5.5rem)}.process-steps{grid-template-columns:1fr 1fr;gap:13px;padding-top:16px}
  .products-section{padding:90px 0}.heading-row{display:block}.heading-row .btn{margin-top:22px}.featured-products{grid-template-columns:1fr;gap:48px}.product-image-wrap{height:450px}
  .awards-visual{height:75vh;min-height:620px}.award-number{left:16px;bottom:8%;display:block}.award-number strong{font-size:7.2rem}.award-number span{display:block;margin-top:15px}.awards-content{padding:40px 0 90px}.awards-title{margin:30px 0 50px}.awards-title h2{font-size:clamp(2.8rem,12vw,4.5rem)}.award-year{grid-template-columns:80px 1fr;gap:16px;padding:24px 0}.award-year .year{font-size:1.65rem}.award-list{gap:8px}.award-list p{font-size:.78rem}
  .visit-section{padding:90px 0}.visit-grid{display:block}.visit-copy h2{font-size:clamp(2.9rem,12vw,4.6rem)}.visit-images{min-height:580px;margin-top:55px}.visit-main{width:88%;height:78%}.visit-small{width:55%;height:39%}.visit-details>div{grid-template-columns:100px 1fr}
  .map-section{height:720px}.map-card{left:16px;right:16px;top:auto;bottom:16px;transform:none;width:auto;padding:24px}.map-card img{width:80px;height:58px}.map-card h2{font-size:2rem}
  .final-cta{height:70vh;min-height:560px}.final-content h2{font-size:clamp(3rem,13vw,5rem)}
  .site-footer{padding-top:60px}.footer-main{grid-template-columns:1fr 1fr;gap:36px 22px}.footer-brand{grid-column:1/-1}.footer-col:last-child{grid-column:auto}.footer-bottom{flex-direction:column;gap:8px}
  .cursor-glow{display:none}
  .shop-hero{padding:120px 0 65px}.shop-hero-grid{grid-template-columns:1fr;gap:45px}.shop-hero h1{font-size:clamp(4rem,18vw,6.5rem)}.shop-hero-image{height:480px}.shop-catalog{padding:80px 0}.catalog-top{display:block}.filters{width:max-content;margin-top:22px}.shop-grid{grid-template-columns:1fr;gap:45px}.shop-product-image{height:460px}.shop-note{grid-template-columns:1fr;margin-top:70px}.shop-note>div{border-right:0;border-bottom:1px solid var(--line)}.shop-note>div:last-child{border-bottom:0}.shop-story{padding:80px 0}.shop-story-grid{grid-template-columns:1fr;gap:50px}.shop-story h2{font-size:clamp(3rem,13vw,4.8rem)}.shop-story-grid>div:last-child{height:520px}.checkout-card{padding:28px 20px}.checkout-card h2{font-size:2.3rem}.form-row{grid-template-columns:1fr}
}

@media (max-width:420px){
  .hero-copy{bottom:32vh}.hero-copy h1{font-size:3.7rem}.hero-ctas .btn{padding:0 16px;font-size:.75rem}.weather-topline{font-size:.57rem}.weather-temp{font-size:3rem}.weather-meta>div+div{padding-left:10px}.weather-meta{grid-template-columns:1.05fr .95fr}
  .angel-photo{min-height:500px}.product-image-wrap,.shop-product-image{height:410px}.visit-images{min-height:520px}.shop-hero-image{height:430px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero-video,.process-video{display:none}.hero{background:url('assets/img/hero-poster.jpg') center/cover no-repeat}.process-section{background:url('assets/img/detalle-poster.jpg') center/cover no-repeat}.cursor-glow{display:none}.reveal{opacity:1;transform:none}.reveal-image{clip-path:none}
}

/* ===== August 2026 refinements for El Lagar de Valleseco ===== */
.brand,
.shop-header .brand,
.footer-brand img {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.brand {
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
}

.brand img {
  width: 108px !important;
  height: auto !important;
  object-fit: contain !important;
  filter: none !important;
}

.site-header {
  background: rgba(237, 233, 224, 0.96);
  border-bottom: 1px solid rgba(18, 28, 19, 0.08);
}

.desktop-nav a,
.shop-link {
  color: var(--ink) !important;
}

.section-kicker,
.dark-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0;
  font-size: 0.82rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.62);
}

.section-kicker p,
.dark-kicker p {
  margin: 0;
}

.section-kicker span,
.dark-kicker span {
  display: none !important;
}

.intro {
  padding: 96px 0 88px;
}

.intro-grid {
  align-items: end;
  gap: 28px;
}

.intro-statement h2 {
  max-width: 12ch;
  font-size: clamp(3rem, 7vw, 6rem);
  line-height: 0.95;
  margin-bottom: 22px;
}

.intro-statement p {
  max-width: 44rem;
  margin-left: auto;
}

.landscape-panel {
  margin-top: 36px !important;
  min-height: 420px;
  height: 52vh;
}

.facts-grid {
  margin-top: 26px !important;
  gap: 0;
}

.reveal-image {
  opacity: 1 !important;
  clip-path: inset(0 0 0 0) !important;
  transform: none !important;
}

.reveal {
  transform: translateY(16px);
}

.reveal.is-visible,
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

.weather-card--reference {
  right: clamp(20px, 5vw, 72px);
  bottom: clamp(20px, 5vw, 36px);
  width: min(390px, calc(100vw - 40px));
  padding: 30px 26px 18px;
  border-radius: 18px;
  background: rgba(10, 12, 9, 0.8);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 24px 60px rgba(0,0,0,0.35);
}

.weather-ribbon {
  position: absolute;
  left: 50%;
  top: -16px;
  transform: translateX(-50%);
  background: #3d1f10;
  color: #fff;
  padding: 10px 18px;
  font-size: 0.95rem;
  font-weight: 700;
  border-radius: 0;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.weather-temp-wrap {
  display: flex;
  justify-content: center;
  margin-top: 8px;
}

.weather-temp {
  font-size: clamp(3.8rem, 7vw, 5.4rem);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.05em;
}

.weather-reference-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.12);
}

.weather-reference-metric {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.15rem;
}

.weather-reference-metric--right {
  justify-content: flex-end;
}

.weather-reference-metric strong {
  font-size: 1.15rem;
  font-weight: 700;
}

.weather-icon {
  font-size: 1rem;
  opacity: 0.85;
}

.angel-section {
  padding: 90px 0;
}

.angel-grid {
  align-items: center;
  gap: 48px;
}

.angel-photo {
  min-height: 560px;
}

.angel-copy .overline,
.visit-copy .overline {
  margin-bottom: 12px;
}

.eco-section {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 0;
  background: #a8c88d;
  min-height: auto;
}

.eco-image {
  min-height: 640px;
}

.eco-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.eco-content {
  padding: 96px 76px 90px;
}

.eco-content h2 {
  max-width: 10ch;
}

.process-section {
  background: #060b07;
  color: #f4f0e7;
  padding: 96px 0;
}

.process-shell {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 48px;
  align-items: center;
}

.process-media {
  min-height: 620px;
  border-radius: 28px;
  overflow: hidden;
  background: rgba(255,255,255,0.05);
}

.process-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.process-copy {
  max-width: 680px;
}

.process-copy h2 {
  margin: 14px 0 18px;
  font-size: clamp(2.8rem, 5.5vw, 4.9rem);
  line-height: 0.96;
}

.process-copy p:not(.eyebrow) {
  color: rgba(244,240,231,0.8);
}

.process-note {
  margin-top: 16px;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  color: rgba(244,240,231,0.58) !important;
}

.interactive-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 34px;
}

.interactive-steps .process-step {
  justify-content: flex-start;
  text-align: left;
  padding: 20px 22px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.03);
  color: rgba(244,240,231,0.86);
  transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.interactive-steps .process-step span {
  display: inline-block;
  margin-right: 10px;
  color: rgba(255,255,255,0.45);
  font-size: 0.85rem;
}

.interactive-steps .process-step.is-active {
  background: rgba(168, 200, 141, 0.15);
  border-color: rgba(168, 200, 141, 0.55);
  color: #fff;
  transform: translateY(-2px);
}

.products-heading {
  display: grid;
  gap: 16px;
}

.heading-row {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-end;
}

.heading-row h2 {
  max-width: 12ch;
}

.featured-products--compact {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-top: 42px;
}

.product-feature {
  padding: 0;
  background: transparent;
  border: none;
}

.product-image-wrap--tall {
  min-height: 390px;
  max-height: 390px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border-radius: 24px;
  padding: 34px 24px 18px;
  background: #efeee7;
  overflow: hidden;
}

.product-image-wrap--tall img {
  width: auto;
  height: 100%;
  max-height: 330px;
  object-fit: contain;
  transform: none;
}

.product-feature span {
  display: block;
  margin-top: 18px;
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(18, 28, 19, 0.44);
}

.product-feature h3 {
  margin: 8px 0 10px;
}

.products-section {
  padding: 92px 0 100px;
}

.awards-section {
  padding-top: 0;
}

.visit-section {
  padding: 94px 0 100px;
}

.visit-grid--map {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 42px;
  align-items: start;
}

.visit-copy {
  padding-right: 0;
}

.visit-copy h2 {
  max-width: 10ch;
}

.visit-map-wrapper {
  display: flex;
  flex-direction: column;
  gap: 18px;
  align-items: stretch;
}

.visit-map-card {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(18, 28, 19, 0.08);
  box-shadow: 0 18px 40px rgba(18, 28, 19, 0.09);
  background: #e8e4d9;
}

.visit-map-card iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.visit-map-link {
  align-self: flex-start;
}

.final-bg img {
  object-position: center center;
}

.footer-brand img {
  width: 210px;
  height: auto;
}

.footer-col a,
.footer-brand p,
.footer-bottom span {
  color: rgba(244,240,231,0.74);
}

.site-footer {
  padding-top: 62px;
}

@media (max-width: 1100px) {
  .process-shell,
  .visit-grid--map,
  .eco-section,
  .featured-products--compact {
    grid-template-columns: 1fr;
  }

  .eco-image {
    min-height: 420px;
    order: -1;
  }

  .eco-content {
    padding: 54px 22px 58px;
  }

  .process-media {
    min-height: 420px;
  }

  .heading-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 780px) {
  .weather-card--reference {
    width: calc(100vw - 32px);
    padding: 24px 16px 14px;
  }

  .weather-ribbon {
    font-size: 0.82rem;
    padding: 8px 14px;
  }

  .weather-temp {
    font-size: 3.4rem;
  }

  .intro,
  .angel-section,
  .process-section,
  .products-section,
  .visit-section {
    padding: 72px 0;
  }

  .landscape-panel {
    height: 38vh;
    min-height: 280px;
  }

  .interactive-steps {
    grid-template-columns: 1fr;
  }

  .product-image-wrap--tall {
    min-height: 300px;
    max-height: 300px;
  }

  .featured-products--compact {
    gap: 34px;
  }

  .visit-map-card {
    aspect-ratio: 4 / 3;
  }
}

/* --- Ajustes solicitados agosto 2026 --- */
.intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.72fr);
  align-items: end;
  gap: 72px;
  padding-bottom: 110px;
}

.intro-lead {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.intro-lead h2 {
  max-width: 8.8ch;
  margin: 0;
  font-size: clamp(3.6rem, 7vw, 6.3rem);
  line-height: 0.94;
}

.intro-kicker {
  margin-top: 72px;
}

.intro-kicker p {
  margin: 0;
}

.intro-aside {
  align-self: end;
}

.intro-aside p {
  max-width: 35rem;
  margin: 0;
  font-size: 1.06rem;
}

.landscape-panel img {
  transform: none !important;
  object-position: center center;
}

.angel-grid {
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1fr);
  align-items: center;
}

.angel-photo {
  min-height: auto;
  aspect-ratio: 1 / 1;
  border-radius: 24px;
  overflow: hidden;
  background: #d8d3c9;
}

.angel-photo img {
  position: static;
  inset: auto;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform: none !important;
}

.eco-image img {
  object-position: center center;
}

.process-section {
  position: relative;
  min-height: 94vh;
  padding: 0;
  background: #050907;
  color: #f4f0e7;
  overflow: hidden;
}

.process-shell {
  position: relative;
  min-height: 94vh;
  display: block;
  padding-top: 128px;
  padding-bottom: 46px;
}

.process-media {
  position: absolute;
  inset: 0;
  min-height: 0;
  border-radius: 0;
  overflow: hidden;
  background: transparent;
}

.process-media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(4,6,4,0.7) 0%, rgba(4,6,4,0.54) 38%, rgba(4,6,4,0.82) 100%);
  z-index: 1;
}

.process-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(4,6,4,0.84) 0%, rgba(4,6,4,0.3) 34%, rgba(4,6,4,0.08) 58%, rgba(4,6,4,0.32) 100%);
  z-index: 1;
}

.process-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.process-copy {
  position: relative;
  z-index: 2;
  max-width: none;
  min-height: calc(94vh - 174px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 0;
}

.process-copy .eyebrow {
  margin-bottom: 18px;
}

.process-copy h2 {
  max-width: 10ch;
  margin: 0 0 22px;
  font-size: clamp(4.1rem, 7vw, 7rem);
  line-height: 0.95;
}

.process-copy p:not(.eyebrow) {
  max-width: 44rem;
  font-size: 1.06rem;
  color: rgba(244,240,231,0.84);
}

.process-note {
  display: none;
}

.interactive-steps {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
  margin-top: 42px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.22);
}

.interactive-steps .process-step {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(244,240,231,0.7);
  box-shadow: none;
}

.interactive-steps .process-step span {
  display: block;
  margin: 0 0 10px;
  color: rgba(244,240,231,0.62);
  font-size: 0.82rem;
  letter-spacing: 0.16em;
}

.interactive-steps .process-step.is-active {
  background: transparent;
  border: 0;
  color: #ffffff;
  transform: none;
}

.interactive-steps .process-step:hover {
  color: #ffffff;
  transform: none;
}

@media (max-width: 1100px) {
  .intro-grid {
    grid-template-columns: 1fr;
    gap: 34px;
    padding-bottom: 76px;
  }

  .intro-kicker {
    margin-top: 34px;
  }

  .angel-grid {
    grid-template-columns: 1fr;
  }

  .angel-photo {
    max-width: 560px;
    width: 100%;
  }

  .process-shell {
    min-height: 860px;
  }

  .process-copy {
    min-height: calc(860px - 174px);
  }

  .interactive-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
}

@media (max-width: 780px) {
  .intro-lead h2 {
    font-size: clamp(3rem, 14vw, 4.8rem);
  }

  .angel-photo {
    max-width: 100%;
  }

  .process-section {
    min-height: 760px;
  }

  .process-shell {
    min-height: 760px;
    padding-top: 100px;
    padding-bottom: 28px;
  }

  .process-media::before {
    background: linear-gradient(90deg, rgba(4,6,4,0.7) 0%, rgba(4,6,4,0.62) 50%, rgba(4,6,4,0.82) 100%);
  }

  .process-copy {
    min-height: calc(760px - 128px);
  }

  .process-copy h2 {
    font-size: clamp(3.4rem, 13vw, 5.4rem);
  }

  .interactive-steps {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 28px;
    padding-top: 14px;
  }
}

@media (max-width: 560px) {
  .interactive-steps {
    grid-template-columns: 1fr;
  }
}


/* --- August update overrides --- */
.site-header,
.shop-header {
  overflow: visible;
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 96px;
  min-width: 96px;
  height: 72px;
  padding: 8px 10px;
  overflow: hidden;
}

.brand img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.hero-media {
  align-items: flex-end;
}

.hero-seals {
  position: absolute;
  right: 3rem;
  bottom: 3rem;
  display: flex;
  align-items: flex-end;
  gap: 0.9rem;
  z-index: 3;
}

.seal {
  width: 112px;
  height: 112px;
  border-radius: 999px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(9, 14, 9, 0.78);
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.22);
}

.seal span {
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1;
}

.seal small {
  margin-top: 0.45rem;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.82;
}

.seal--gold {
  background: rgba(178, 143, 68, 0.86);
  color: #ffffff;
}

.seal--silver {
  background: rgba(208, 214, 214, 0.9);
  color: #11150f;
}

.seal--dark {
  width: 126px;
  height: 126px;
  background: rgba(11, 16, 11, 0.92);
  color: #ffffff;
}

.process-media {
  position: relative;
  overflow: hidden;
}

.process-media video,
.process-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
  transition: opacity 0.3s ease;
}

.process-media img,
.process-media video {
  position: absolute;
  inset: 0;
}

.process-media img.is-hidden,
.process-media video.is-hidden {
  opacity: 0;
  pointer-events: none;
}

.process-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.05), rgba(0,0,0,0.14));
  pointer-events: none;
}

.news-section {
  padding: 4.5rem 0 5.5rem;
  background: #f4f1e8;
}

.news-heading {
  max-width: 720px;
  margin-bottom: 2.2rem;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem;
}

.news-card {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1.6rem;
  min-height: 100%;
  border-radius: 28px;
  background: #ffffff;
  border: 1px solid rgba(14, 20, 14, 0.08);
  color: inherit;
  text-decoration: none;
  box-shadow: 0 12px 32px rgba(13, 18, 13, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.news-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(13, 18, 13, 0.09);
}

.news-source {
  display: inline-flex;
  align-self: flex-start;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: #edf2e7;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.news-card h3 {
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  line-height: 1.08;
  margin: 0;
}

.news-card p {
  margin: 0;
  color: #51574d;
}

.news-card strong {
  margin-top: auto;
  font-size: 0.95rem;
}

.footer-main .footer-col {
  margin-top: 1.35rem;
}

.footer-main .footer-brand {
  margin-top: 0;
}

.shop-hero-image--square,
.shop-story-media--square {
  aspect-ratio: 1 / 1;
  border-radius: 34px;
  overflow: hidden;
}

.shop-hero-image--square img,
.shop-story-media--square img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.shop-product-image {
  display: flex;
  align-items: center;
  justify-content: center;
}

.shop-product-image img {
  object-fit: contain;
  object-position: center center;
}

.product-image-full-bottle {
  width: 58%;
  height: 92%;
}

.product-image-lobo {
  width: 38%;
  height: 64%;
}

@media (max-width: 1100px) {
  .hero-seals {
    right: 1.6rem;
    bottom: 1.8rem;
  }

  .seal,
  .seal--dark {
    width: 94px;
    height: 94px;
  }

  .news-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .brand {
    width: 82px;
    min-width: 82px;
    height: 62px;
    padding: 6px 8px;
  }

  .hero-seals {
    position: static;
    margin-top: 1.6rem;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .seal,
  .seal--dark {
    width: 82px;
    height: 82px;
  }

  .product-image-full-bottle {
    width: 62%;
    height: 88%;
  }

  .product-image-lobo {
    width: 42%;
    height: 66%;
  }
}


/* --- Process video: permanent full-bleed background --- */
.process-section {
  position: relative;
  overflow: hidden;
  background: #050907;
}

.process-section .process-shell {
  position: relative;
  z-index: 1;
}

.process-section .process-media {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  z-index: 0 !important;
  pointer-events: none;
}

.process-section .process-media video {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  opacity: 1 !important;
  display: block !important;
  z-index: 0 !important;
}

.process-section .process-media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(3,7,4,.66) 0%, rgba(3,7,4,.34) 48%, rgba(3,7,4,.64) 100%);
}

.process-section .process-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(0deg, rgba(3,7,4,.76) 0%, rgba(3,7,4,.10) 55%, rgba(3,7,4,.20) 100%);
}

.process-section .process-copy {
  position: relative;
  z-index: 3;
}


/* --- Process section: true viewport full-bleed video --- */
.process-section {
  width: 100%;
  max-width: none;
}

.process-section > .process-media {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100% !important;
  margin: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  z-index: 0 !important;
}

.process-section > .process-media video {
  position: absolute !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

.process-section > .process-shell {
  position: relative !important;
  z-index: 2 !important;
  width: min(1240px, calc(100% - 48px));
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 780px) {
  .process-section > .process-shell {
    width: min(100% - 28px, 1240px);
  }
}

/* --- Header logo + tienda natural alignment fix --- */
.site-header .brand,
.shop-header .brand {
  width: 92px;
  min-width: 92px;
  height: 64px;
  padding: 3px 5px;
  margin: 0;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-radius: 0;
  overflow: hidden;
  align-self: center;
}

.site-header .brand img,
.shop-header .brand img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.product-image-natural {
  width: 42% !important;
  height: 88% !important;
  object-fit: contain !important;
  object-position: center center !important;
  mix-blend-mode: multiply;
}

@media (max-width: 720px) {
  .site-header .brand,
  .shop-header .brand {
    width: 80px;
    min-width: 80px;
    height: 56px;
    padding: 2px 4px;
  }

  .product-image-natural {
    width: 46% !important;
    height: 86% !important;
  }
}


/* --- Ajustes solicitados: foto cuadrada en tienda y cambio de imagen de origen --- */
.shop-story .shop-story-photo.shop-story-media--square{
  width:100%;
  max-width:560px;
  justify-self:end;
  aspect-ratio:1 / 1;
  height:auto !important;
  border-radius:28px !important;
  overflow:hidden;
  clip-path:none !important;
}

.shop-story .shop-story-photo.shop-story-media--square img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:none;
}

@media (max-width: 900px){
  .shop-story .shop-story-photo.shop-story-media--square{
    max-width:none;
    justify-self:stretch;
  }
}


/* Ajuste solicitado: destacar la sidra natural en la cuadrícula de productos */
.product-image-wrap--natural-home {
  aspect-ratio: 1 / 1;
  min-height: 390px;
  max-height: 390px;
  align-items: center;
  justify-content: center;
  padding: 22px 18px 18px;
}

.product-image-wrap--natural-home img {
  height: 100%;
  max-height: 360px;
  width: auto;
  object-fit: contain;
}


/* --- Ajustes finales: logo del header y sellos oficiales del hero --- */
.site-header .brand,
.shop-header .brand {
  width: 94px;
  height: 56px;
  padding: 5px 9px;
  border-radius: 14px;
}

.site-header .brand img,
.shop-header .brand img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.hero-seals {
  position: absolute;
  right: max(26px, calc((100vw - 1240px) / 2));
  bottom: 24px;
  z-index: 5;
  display: flex;
  align-items: flex-end;
  gap: 16px;
}

.seal-badge {
  width: 118px;
  height: 118px;
  min-width: 118px;
  min-height: 118px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  padding: 0;
  text-align: center;
  box-shadow: 0 16px 36px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.35);
  border: 1px solid rgba(255,255,255,0.22);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.seal-badge .seal-ring {
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 13px 12px 11px;
  border: 1px solid rgba(0,0,0,0.14);
  position: relative;
  overflow: hidden;
}

.seal-badge .seal-ring::before,
.seal-badge .seal-ring::after {
  content: '✦';
  position: absolute;
  top: 13px;
  font-size: 10px;
  opacity: 0.8;
}
.seal-badge .seal-ring::before { left: 13px; }
.seal-badge .seal-ring::after { right: 13px; }

.seal-top,
.seal-name,
.seal-year,
.seal-medal {
  display: block;
  line-height: 1.1;
}

.seal-top {
  font-size: 0.56rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.11em;
}

.seal-medal {
  font-size: 1.78rem;
  font-weight: 800;
  letter-spacing: -0.05em;
  text-transform: uppercase;
}

.seal-name {
  font-size: 0.44rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  max-width: 84px;
}

.seal-year {
  font-size: 0.56rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 2px;
}

.seal-badge--gold {
  background: radial-gradient(circle at 32% 28%, #fff7cc 0%, #f3de93 35%, #d4ae4f 68%, #8b6924 100%);
  color: #2f240c;
}

.seal-badge--gold .seal-ring {
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.68), rgba(255,255,255,0.12) 42%, rgba(0,0,0,0.05) 100%);
  border-color: rgba(102,74,16,0.25);
}

.seal-badge--silver {
  background: radial-gradient(circle at 32% 28%, #fdfdfd 0%, #d8dde0 35%, #aeb6bf 68%, #6c737b 100%);
  color: #1e2429;
}

.seal-badge--silver .seal-ring {
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.7), rgba(255,255,255,0.12) 42%, rgba(0,0,0,0.06) 100%);
  border-color: rgba(71,79,88,0.25);
}

.seal-badge--dark {
  background: radial-gradient(circle at 32% 28%, rgba(56,62,53,0.95) 0%, rgba(20,24,18,0.98) 72%, rgba(8,10,8,1) 100%);
  color: #f4f0e7;
  border-color: rgba(255,255,255,0.12);
}

.seal-badge--dark .seal-ring {
  border-color: rgba(255,255,255,0.1);
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.08), rgba(255,255,255,0.02) 45%, rgba(0,0,0,0.08) 100%);
}

.seal-badge--dark .seal-name,
.seal-badge--dark .seal-top,
.seal-badge--dark .seal-year {
  color: rgba(255,255,255,0.78);
}

@media (max-width: 1024px) {
  .hero-seals {
    right: 18px;
    bottom: 18px;
    gap: 12px;
  }

  .seal-badge {
    width: 104px;
    height: 104px;
    min-width: 104px;
    min-height: 104px;
  }

  .seal-medal {
    font-size: 1.52rem;
  }

  .seal-name {
    font-size: 0.41rem;
    max-width: 74px;
  }
}

@media (max-width: 768px) {
  .site-header .brand,
  .shop-header .brand {
    width: 82px;
    height: 50px;
    padding: 4px 8px;
  }

  .hero-seals {
    position: static;
    margin: 26px 16px 0;
    justify-content: center;
    flex-wrap: wrap;
  }

  .seal-badge,
  .seal-badge--dark {
    width: 96px;
    height: 96px;
    min-width: 96px;
    min-height: 96px;
  }

  .seal-top {
    font-size: 0.5rem;
  }

  .seal-medal {
    font-size: 1.38rem;
  }
}


/* --- Ajuste final solicitado: header más pequeño, transparente y sin flechas --- */
.site-header,
.site-header.is-scrolled,
.shop-header,
.shop-header.is-scrolled {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.site-header .brand,
.shop-header .brand {
  width: 74px !important;
  height: 46px !important;
  min-width: 74px !important;
  padding: 3px 6px !important;
  border-radius: 10px !important;
  background: transparent !important;
  box-shadow: none !important;
}

.site-header .brand img,
.shop-header .brand img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.shop-link span,
.text-link span {
  display: none !important;
}

@media (max-width: 768px) {
  .site-header .brand,
  .shop-header .brand {
    width: 66px !important;
    height: 40px !important;
    min-width: 66px !important;
    padding: 2px 5px !important;
  }
}


/* --- Ajuste final: logo un poco más grande y menú en blanco --- */
.site-header .brand,
.shop-header .brand {
  width: 84px !important;
  height: 52px !important;
  min-width: 84px !important;
  padding: 4px 7px !important;
}

.site-header .desktop-nav,
.site-header .desktop-nav a,
.shop-header .desktop-nav,
.shop-header .desktop-nav a {
  color: #ffffff !important;
}

.site-header .shop-link,
.shop-header .shop-link {
  color: #ffffff !important;
  border-color: rgba(255,255,255,.55) !important;
}

.site-header .shop-link:hover,
.shop-header .shop-link:hover {
  background: rgba(255,255,255,.14) !important;
  color: #ffffff !important;
}

.site-header .menu-button,
.shop-header .menu-button {
  color: #ffffff !important;
}

@media (max-width: 768px) {
  .site-header .brand,
  .shop-header .brand {
    width: 74px !important;
    height: 46px !important;
    min-width: 74px !important;
    padding: 3px 6px !important;
  }
}


/* --- Ajuste extra: logo todavía más grande en el menú --- */
.site-header .brand,
.shop-header .brand {
  width: 102px !important;
  height: 64px !important;
  min-width: 102px !important;
  padding: 4px 8px !important;
}

@media (max-width: 768px) {
  .site-header .brand,
  .shop-header .brand {
    width: 86px !important;
    height: 54px !important;
    min-width: 86px !important;
    padding: 3px 6px !important;
  }
}


/* --- Medallas reales / oficiales en hero --- */
.seal-medal-image {
  width: 118px;
  height: 118px;
  min-width: 118px;
  min-height: 118px;
  border-radius: 50%;
  overflow: hidden;
  display: grid;
  place-items: center;
  box-shadow: 0 16px 36px rgba(0,0,0,0.22);
  background: transparent;
}

.seal-medal-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,0.15));
}

.seal-badge--count .seal-ring {
  gap: 1px;
}

.seal-badge--count .seal-top {
  font-size: 0.5rem;
  letter-spacing: 0.18em;
}

.seal-badge--count .seal-medal {
  font-size: 1.92rem;
  letter-spacing: -0.04em;
}

.seal-badge--count .seal-name {
  font-size: 0.58rem;
  letter-spacing: 0.16em;
  max-width: none;
}

.seal-badge--count .seal-ring::before,
.seal-badge--count .seal-ring::after,
.seal-badge--count .seal-year {
  display: none;
}

@media (max-width: 1024px) {
  .seal-medal-image {
    width: 104px;
    height: 104px;
    min-width: 104px;
    min-height: 104px;
  }
}

@media (max-width: 768px) {
  .seal-medal-image {
    width: 96px;
    height: 96px;
    min-width: 96px;
    min-height: 96px;
  }

  .seal-badge--count .seal-medal {
    font-size: 1.5rem;
  }

  .seal-badge--count .seal-name {
    font-size: 0.5rem;
  }
}


/* --- Banner demo Nexbrokers y créditos con logo --- */
.demo-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 95;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 7px 14px;
  background: rgba(10, 12, 11, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: rgba(255,255,255,0.9);
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  text-align: center;
}

.demo-banner a {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-header,
.shop-header {
  top: 30px !important;
}

.mobile-menu {
  top: calc(var(--header-h) + 30px) !important;
}

.footer-demo-credit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.footer-demo-credit a {
  color: inherit;
}

.footer-demo-credit a:hover {
  color: rgba(255,255,255,0.82);
}

.footer-nex-logo {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0.92;
}

.footer-nex-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

@media (max-width: 768px) {
  .demo-banner {
    font-size: 0.64rem;
    min-height: 28px;
    padding: 6px 10px;
  }

  .site-header,
  .shop-header {
    top: 28px !important;
  }

  .mobile-menu {
    top: calc(var(--header-h) + 28px) !important;
  }

  .footer-demo-credit {
    justify-content: flex-start;
  }
}


/* --- Ajuste adicional: medallas oficiales + optimización móvil --- */
@media (max-width: 768px) {
  html, body {
    overflow-x: hidden;
  }

  .demo-banner {
    line-height: 1.35;
  }

  .site-header .header-inner,
  .shop-header .header-inner {
    gap: 12px;
    padding-left: 12px;
    padding-right: 12px;
  }

  .hero {
    min-height: auto;
    padding-bottom: 28px;
  }

  .hero-copy {
    position: relative;
    bottom: auto !important;
    left: auto;
    right: auto;
    padding-top: 148px;
    padding-bottom: 0;
  }

  .hero-copy h1 {
    font-size: clamp(3.05rem, 15vw, 4.35rem) !important;
    line-height: 0.94;
    max-width: 10ch;
  }

  .hero-lead {
    max-width: 100%;
    font-size: 0.98rem;
  }

  .hero-ctas {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    max-width: 320px;
  }

  .hero-ctas .btn {
    width: 100%;
    justify-content: center;
    min-height: 52px;
    font-size: 0.82rem !important;
  }

  .hero-seals {
    margin: 22px auto 0;
    max-width: 320px;
    gap: 10px;
  }

  .seal-medal-image,
  .seal-badge,
  .seal-badge--dark {
    width: 90px;
    height: 90px;
    min-width: 90px;
    min-height: 90px;
  }

  .seal-badge .seal-ring {
    padding: 11px 10px 10px;
  }

  .seal-badge--count .seal-medal {
    font-size: 1.36rem;
  }

  .seal-badge--count .seal-name {
    font-size: 0.47rem;
    letter-spacing: 0.12em;
  }

  .awards-visual {
    min-height: 500px !important;
    height: 68vh !important;
  }

  .award-number strong {
    font-size: 5.8rem !important;
  }

  .award-number span {
    max-width: 180px;
    font-size: 0.68rem;
  }

  .visit-details > div {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .footer-main {
    grid-template-columns: 1fr !important;
  }

  .footer-bottom {
    align-items: flex-start;
  }

  .footer-demo-credit {
    gap: 6px;
  }

  .shop-hero {
    padding-top: 116px !important;
  }

  .shop-hero h1 {
    font-size: clamp(3.15rem, 15vw, 5rem) !important;
    line-height: 0.93;
  }

  .shop-hero p:not(.eyebrow) {
    max-width: 100%;
  }

  .shop-hero-image,
  .shop-story-grid > div:last-child,
  .shop-story .shop-story-photo.shop-story-media--square,
  .shop-product-image {
    height: auto !important;
    aspect-ratio: 1 / 1;
  }

  .filters {
    width: 100% !important;
    overflow-x: auto;
    padding-bottom: 6px;
    margin-top: 18px !important;
  }

  .filters::-webkit-scrollbar {
    height: 4px;
  }

  .shop-grid {
    gap: 28px !important;
  }

  .shop-product {
    border-radius: 22px;
    overflow: hidden;
  }
}

@media (max-width: 480px) {
  .site-header .brand,
  .shop-header .brand {
    width: 80px !important;
    height: 50px !important;
    min-width: 80px !important;
  }

  .desktop-nav {
    gap: 12px;
  }

  .hero-copy {
    padding-top: 140px;
  }

  .hero-copy h1 {
    font-size: 2.8rem !important;
  }

  .hero-lead {
    font-size: 0.92rem;
  }

  .hero-seals {
    max-width: 296px;
  }

  .seal-medal-image,
  .seal-badge,
  .seal-badge--dark {
    width: 84px;
    height: 84px;
    min-width: 84px;
    min-height: 84px;
  }

  .seal-top {
    font-size: 0.46rem;
  }

  .seal-badge--count .seal-medal {
    font-size: 1.26rem;
  }

  .seal-badge--count .seal-name {
    font-size: 0.44rem;
  }

  .award-number strong {
    font-size: 4.95rem !important;
  }

  .shop-product-body {
    padding: 18px 16px 16px;
  }
}


/* --- Ajuste final: logo Nexbrokers del footer al tamaño del texto --- */
.footer-nex-logo {
  width: auto !important;
  height: 1em !important;
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1;
  opacity: 0.96;
}

.footer-nex-logo img {
  width: auto !important;
  height: 1em !important;
  max-height: 1em !important;
  object-fit: contain;
  display: block;
}


/* === Multilingual navigation: ES / EN / DE === */
.language-switcher {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  background: rgba(5,8,5,.12);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.language-switcher a {
  display: grid;
  place-items: center;
  min-width: 31px;
  height: 28px;
  padding: 0 7px;
  border-radius: 999px;
  color: rgba(255,255,255,.76) !important;
  font-size: .68rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .06em;
  transition: background .2s ease, color .2s ease;
}

.language-switcher a:hover,
.language-switcher a.active {
  background: rgba(255,255,255,.94);
  color: var(--ink) !important;
}

.language-switcher--mobile {
  display: none;
}

@media (max-width: 1100px) {
  .language-switcher--desktop {
    display: inline-flex;
  }
}

@media (max-width: 760px) {
  .language-switcher--desktop {
    display: none;
  }

  .language-switcher--mobile {
    display: inline-flex;
    align-self: flex-start;
    margin-top: 26px;
    border-color: rgba(17,20,15,.22);
    background: rgba(255,255,255,.18);
  }

  .mobile-menu .language-switcher--mobile a {
    min-width: 44px;
    height: 38px;
    padding: 0 10px;
    border: 0;
    color: rgba(17,20,15,.72) !important;
    font-size: .78rem !important;
    font-weight: 800;
    letter-spacing: .06em;
    line-height: 1;
  }

  .mobile-menu .language-switcher--mobile a.active,
  .mobile-menu .language-switcher--mobile a:hover {
    background: var(--ink);
    color: #fff !important;
  }
}


/* Medallas oficiales recortadas de las etiquetas originales del producto */
.hero-seals .seal-medal-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 50%;
  image-rendering: auto;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.22));
}


/* --- Ajuste solicitado: medallas a sangre y sin texto superior del hero --- */
.hero-copy > .eyebrow { display: none !important; }

.hero-seals .seal-medal-image {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: hidden !important;
  border-radius: 50% !important;
}

.hero-seals .seal-medal-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 50% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.18)) !important;
  transform: scale(1.035);
}

/* Ajuste final: las medallas ocupan todo el círculo sin borde blanco visible */
.hero-seals .seal-medal-image img {
  transform: scale(1.16) !important;
}


/* === FINAL MOBILE + SEO UX PASS — AUG 2026 === */
body.no-scroll { overflow: hidden !important; }

/* Hero medals intentionally removed from markup; hide any stale injected copy. */
.hero-seals { display: none !important; }

/* Better keyboard focus for accessibility and SEO-adjacent UX quality. */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid #a9c98d;
  outline-offset: 3px;
}

@media (max-width: 900px) {
  :root {
    --header-h: 64px;
    --container: min(100% - 32px, 1240px);
  }

  .site-header,
  .shop-header,
  .site-header.is-scrolled,
  .shop-header.is-scrolled,
  .site-header.scrolled,
  .shop-header.scrolled {
    top: 28px !important;
    height: var(--header-h) !important;
    padding: 6px 14px !important;
    background: linear-gradient(180deg, rgba(5,8,5,.50), rgba(5,8,5,.12)) !important;
    border-bottom-color: rgba(255,255,255,.08) !important;
    backdrop-filter: blur(7px) !important;
    -webkit-backdrop-filter: blur(7px) !important;
  }

  .shop-header,
  .shop-header.is-scrolled,
  .shop-header.scrolled {
    background: rgba(9,14,9,.76) !important;
  }

  .site-header .brand,
  .shop-header .brand {
    width: 82px !important;
    min-width: 82px !important;
    height: 50px !important;
    padding: 2px 4px !important;
    margin: 0 !important;
  }

  .site-header .brand img,
  .shop-header .brand img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }

  .desktop-nav { display: none !important; }
  .menu-button {
    display: inline-block !important;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    color: #fff !important;
    background: rgba(255,255,255,.12) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
  }

  .header-actions { gap: 8px !important; margin-left: auto; }
  .shop-link { padding: 10px 14px !important; min-height: 42px; color:#fff !important; border-color:rgba(255,255,255,.42) !important; }
  .cart-button { min-height: 42px; padding: 0 12px; }

  .mobile-menu {
    position: fixed !important;
    z-index: 65 !important;
    top: 28px !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    height: calc(100dvh - 28px) !important;
    background: #a9c98d !important;
    clip-path: none !important;
    transform: translateY(-105%) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: transform .45s var(--ease), opacity .3s ease, visibility .3s ease !important;
    overflow-y: auto;
  }

  .mobile-menu.is-open,
  .mobile-menu.open {
    transform: translateY(0) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .mobile-menu-inner,
  .mobile-inner {
    width: min(100% - 36px, 560px) !important;
    min-height: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 100px 0 38px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 0 !important;
  }

  .mobile-menu .mobile-menu-inner > a,
  .mobile-menu .mobile-inner > a {
    display: block;
    padding: 13px 0 !important;
    border-bottom: 1px solid rgba(17,20,15,.16) !important;
    font-size: clamp(2rem, 10vw, 3.5rem) !important;
    line-height: 1 !important;
    letter-spacing: -.05em !important;
    color: var(--ink) !important;
  }

  .language-switcher--desktop { display: none !important; }
  .language-switcher--mobile {
    display: inline-flex !important;
    margin-top: 24px !important;
    align-self: flex-start;
  }

  /* Landing hero */
  .hero {
    height: auto !important;
    min-height: 100svh !important;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
  }

  .hero-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 58% center;
    transform: none !important;
  }

  .hero-shade {
    background: linear-gradient(180deg, rgba(4,8,4,.20) 0%, rgba(4,8,4,.32) 36%, rgba(4,8,4,.88) 100%),
                linear-gradient(90deg, rgba(4,8,4,.42), rgba(4,8,4,.05) 72%) !important;
  }

  .hero-copy {
    position: relative !important;
    z-index: 3;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: var(--container) !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 170px 0 56px !important;
  }

  .hero-copy h1 {
    margin: 0 0 22px !important;
    max-width: 9ch !important;
    font-size: clamp(3.25rem, 14.5vw, 5.1rem) !important;
    line-height: .92 !important;
    text-wrap: balance;
  }

  .hero-lead {
    width: 100% !important;
    max-width: 34rem !important;
    margin-bottom: 24px !important;
    font-size: 1rem !important;
    line-height: 1.55;
  }

  .hero-ctas {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px !important;
    width: min(100%, 420px);
  }

  .hero-ctas .btn { min-height: 50px; padding: 0 14px; }
  .scroll-cue { display: none !important; }

  /* Origin */
  .intro { padding: 72px 0 0 !important; }
  .intro-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    padding-bottom: 58px !important;
  }
  .intro-lead h2,
  .intro-statement h2 {
    max-width: 9ch !important;
    font-size: clamp(2.9rem, 13.5vw, 4.6rem) !important;
    line-height: .95 !important;
  }
  .intro-kicker { margin-top: 28px !important; }
  .intro-aside p,
  .intro-statement p { margin: 0 !important; font-size: .98rem !important; }
  .landscape-panel {
    width: calc(100% - 24px) !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3 !important;
    margin: 0 auto !important;
    border-radius: 20px 20px 0 0 !important;
  }
  .landscape-caption { left: 16px !important; right: 16px !important; bottom: 14px !important; gap: 12px; font-size: .58rem !important; }
  .facts-grid {
    grid-template-columns: 1fr 1fr !important;
    padding: 34px 0 70px !important;
  }
  .fact { padding: 24px 14px !important; min-width: 0; }
  .fact:nth-child(odd) { border-left: 0 !important; }
  .fact strong { font-size: clamp(2rem, 10vw, 3.4rem) !important; }

  /* Person / ecology */
  .angel-section { padding: 70px 0 !important; }
  .angel-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
  .angel-photo { width: 100% !important; max-width: none !important; aspect-ratio: 1 / 1 !important; border-radius: 20px !important; }
  .angel-copy h2 { font-size: clamp(3rem, 13vw, 4.8rem) !important; }

  .eco-section { grid-template-columns: 1fr !important; }
  .eco-image { min-height: 0 !important; height: auto !important; aspect-ratio: 4 / 3; order: 0 !important; }
  .eco-content { padding: 58px 16px 64px !important; }
  .eco-content h2 { font-size: clamp(2.9rem, 13vw, 4.6rem) !important; max-width: 10ch !important; }
  .eco-list > div { gap: 12px; }

  /* Process full-bleed video */
  .process-section { min-height: 820px !important; height: auto !important; }
  .process-section > .process-shell {
    width: var(--container) !important;
    min-height: 820px !important;
    padding: 92px 0 28px !important;
  }
  .process-copy { min-height: 700px !important; display:flex; flex-direction:column; justify-content:flex-end; }
  .process-copy h2 { font-size: clamp(3rem, 13vw, 4.9rem) !important; max-width: 9ch; }
  .process-copy p:not(.eyebrow) { max-width: 38rem; }
  .interactive-steps {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin-top: 22px !important;
    padding-top: 12px !important;
  }
  .interactive-steps .process-step { padding: 12px 8px !important; min-height: 54px; font-size: .72rem; }
  .interactive-steps .process-step span { margin: 0 0 5px !important; font-size: .66rem !important; }

  /* Products */
  .products-section { padding: 70px 0 76px !important; }
  .heading-row { align-items: flex-start !important; gap: 18px !important; }
  .heading-row h2 { font-size: clamp(3rem, 13vw, 4.7rem) !important; max-width: 10ch !important; }
  .featured-products--compact { grid-template-columns: 1fr !important; gap: 34px !important; margin-top: 34px !important; }
  .product-image-wrap--tall,
  .product-image-wrap--natural-home { min-height: 0 !important; max-height: none !important; height: auto !important; aspect-ratio: 1 / 1 !important; padding: 22px !important; }
  .product-image-wrap--tall img,
  .product-image-wrap--natural-home img { max-height: 88% !important; }

  /* Awards remain as full section; hero badges removed. */
  .awards-visual { height: 58svh !important; min-height: 430px !important; }
  .award-number { left: 16px !important; right: 16px; bottom: 9% !important; gap: 12px !important; }
  .award-number strong { font-size: clamp(4.8rem, 24vw, 7rem) !important; }
  .award-number span { max-width: 160px !important; font-size: .64rem !important; }
  .awards-content { padding: 42px 0 76px !important; }
  .awards-title { grid-template-columns: 1fr !important; gap: 18px !important; margin: 28px 0 42px !important; }
  .awards-title h2 { font-size: clamp(2.9rem, 13vw, 4.6rem) !important; }
  .award-year { grid-template-columns: 64px 1fr !important; gap: 12px !important; padding: 22px 0 !important; }
  .award-year .year { font-size: 1.45rem !important; }
  .award-list p { font-size: .78rem !important; }

  /* News */
  .news-section { padding: 68px 0 76px !important; }
  .news-heading h2 { font-size: clamp(2.9rem, 13vw, 4.5rem) !important; }
  .news-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .news-card { border-radius: 20px !important; padding: 20px !important; }

  /* Visits */
  .visit-section { padding: 70px 0 76px !important; }
  .visit-grid--map { grid-template-columns: 1fr !important; gap: 34px !important; }
  .visit-copy h2 { font-size: clamp(2.9rem, 13vw, 4.6rem) !important; max-width: 10ch !important; }
  .visit-actions { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; }
  .visit-actions .btn, .visit-actions .text-link { width: 100%; justify-content:center; }
  .visit-details > div { grid-template-columns: 1fr !important; gap: 4px !important; padding: 14px 0 !important; }
  .visit-map-card { aspect-ratio: 1 / 1 !important; border-radius: 20px !important; }
  .visit-map-link { width: 100%; }

  /* Final CTA + footer */
  .final-cta { min-height: 72svh !important; }
  .final-copy h2 { font-size: clamp(3rem, 14vw, 5rem) !important; }
  .site-footer { padding-top: 52px !important; }
  .footer-main { grid-template-columns: 1fr 1fr !important; gap: 32px 20px !important; padding-bottom: 38px !important; }
  .footer-brand { grid-column: 1 / -1 !important; }
  .footer-brand img { width: 150px !important; }
  .footer-main .footer-col { margin-top: 0 !important; }
  .footer-bottom { flex-direction: column !important; align-items: flex-start !important; gap: 10px !important; font-size: .62rem !important; }
  .footer-demo-credit { justify-content: flex-start !important; line-height: 1.5; }

  /* Shop */
  .shop-hero { padding: 122px 0 58px !important; }
  .shop-hero-grid { grid-template-columns: 1fr !important; gap: 30px !important; }
  .shop-hero h1 { font-size: clamp(3.5rem, 16vw, 5.4rem) !important; line-height: .92 !important; }
  .shop-hero-image--square { width: 100%; height: auto !important; aspect-ratio: 1 / 1 !important; border-radius: 22px !important; }
  .shop-catalog { padding: 68px 0 78px !important; }
  .catalog-top { display: block !important; margin-bottom: 30px !important; }
  .catalog-top h2 { font-size: clamp(3rem, 13vw, 4.6rem) !important; }
  .filters { width: max-content !important; max-width: 100%; overflow-x: auto; margin-top: 18px !important; scrollbar-width: thin; }
  .shop-grid { grid-template-columns: 1fr !important; gap: 36px !important; }
  .shop-product-image { height: auto !important; aspect-ratio: 1 / 1 !important; border-radius: 18px !important; }
  .shop-product-body { min-height: 0 !important; padding: 16px 2px 0 !important; }
  .shop-product-body h3 { font-size: 1.55rem !important; }
  .shop-note { grid-template-columns: 1fr !important; margin-top: 58px !important; }
  .shop-note > div { border-right: 0 !important; border-bottom: 1px solid var(--line); }
  .shop-note > div:last-child { border-bottom: 0; }
  .shop-story { padding: 70px 0 !important; }
  .shop-story-grid { grid-template-columns: 1fr !important; gap: 34px !important; }
  .shop-story h2 { font-size: clamp(3rem, 13vw, 4.6rem) !important; }
  .shop-story .shop-story-photo.shop-story-media--square { max-width: none !important; aspect-ratio: 1 / 1 !important; border-radius: 20px !important; }
  .cart-drawer { width: min(100%, 440px) !important; padding: 18px !important; }
  .checkout-modal { padding: 12px !important; }
  .checkout-card { max-height: calc(100dvh - 24px) !important; padding: 28px 18px 22px !important; border-radius: 20px !important; }
  .checkout-card h2 { padding-right: 42px; }
  .form-row { grid-template-columns: 1fr !important; }
}

@media (max-width: 520px) {
  :root { --container: min(100% - 28px, 1240px); }

  .demo-banner { min-height: 28px !important; padding: 6px 8px !important; font-size: .61rem !important; }
  .site-header, .shop-header { padding-left: 10px !important; padding-right: 10px !important; }
  .site-header .brand, .shop-header .brand { width: 74px !important; min-width: 74px !important; height: 46px !important; }
  .shop-link { padding: 9px 11px !important; font-size: .7rem !important; }
  .cart-button { font-size: .7rem !important; }
  .cart-button span { min-width: 22px; }

  .hero-copy { padding-top: 152px !important; padding-bottom: 46px !important; }
  .hero-copy h1 { font-size: clamp(2.95rem, 15vw, 4rem) !important; }
  .hero-lead { font-size: .93rem !important; }
  .hero-ctas { grid-template-columns: 1fr !important; width: 100%; }

  .intro-lead h2, .intro-statement h2,
  .angel-copy h2, .eco-content h2,
  .process-copy h2, .heading-row h2,
  .awards-title h2, .news-heading h2,
  .visit-copy h2, .shop-story h2 { font-size: clamp(2.7rem, 13.2vw, 3.9rem) !important; }

  .facts-grid { grid-template-columns: 1fr 1fr !important; }
  .fact { min-height: 132px; padding: 20px 10px !important; }

  .process-section, .process-section > .process-shell { min-height: 780px !important; }
  .process-copy { min-height: 660px !important; }
  .interactive-steps .process-step { min-height: 58px; }

  .award-number { display: block !important; }
  .award-number span { display:block; margin-top: 12px; }
  .award-year { grid-template-columns: 1fr !important; }
  .award-year .year { margin-bottom: 8px; }

  .footer-main { grid-template-columns: 1fr !important; }
  .footer-brand { grid-column: auto !important; }
  .footer-col:last-child { grid-column: auto !important; }

  .shop-hero { padding-top: 112px !important; }
  .shop-hero h1 { font-size: clamp(3rem, 15.5vw, 4.4rem) !important; }
  .cart-line { grid-template-columns: 58px 1fr auto !important; gap: 10px !important; }
  .cart-line img { width: 58px !important; height: 70px !important; }
}

/* --- Ajustes finales solicitados: kickers en negro + menor separación --- */
.angel-copy .section-kicker,
.eco-content .section-kicker,
.products-heading .section-kicker,
.awards-content .section-kicker,
.news-section .section-kicker,
.visit-copy .section-kicker {
  color: rgba(17,20,15,0.78) !important;
}

/* Menos espacio entre el bloque de cifras y la sección de Ángel */
.facts-grid {
  padding-bottom: 96px !important;
}

.angel-section {
  padding-top: 72px !important;
}

@media (max-width: 780px) {
  .facts-grid {
    padding-bottom: 56px !important;
  }

  .angel-section {
    padding-top: 62px !important;
  }
}

/* --- Ajustes móviles finales: menos espacio noticias/visitas + footer reorganizado --- */
@media (max-width: 768px) {
  /* Reducir el hueco entre Noticias y Reserva previa / Visitas */
  .news-section {
    padding-top: 60px !important;
    padding-bottom: 42px !important;
  }

  .visit-section {
    padding-top: 46px !important;
    padding-bottom: 72px !important;
  }

  /* Footer móvil en 2 filas: logo + contacto / descubrir + social */
  .footer-main {
    grid-template-columns: 92px minmax(0, 1fr) !important;
    grid-template-areas:
      "brand contact"
      "discover social" !important;
    gap: 24px 18px !important;
    align-items: start !important;
    padding-bottom: 34px !important;
  }

  .footer-brand {
    grid-area: brand !important;
    grid-column: auto !important;
    margin: 0 !important;
    align-self: start !important;
  }

  .footer-main > .footer-col:nth-of-type(2) {
    grid-area: contact !important;
    margin-top: 0 !important;
  }

  .footer-main > .footer-col:nth-of-type(3) {
    grid-area: discover !important;
    margin-top: 0 !important;
  }

  .footer-main > .footer-col:nth-of-type(4) {
    grid-area: social !important;
    margin-top: 0 !important;
  }

  .footer-brand img {
    width: 84px !important;
    height: auto !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
  }

  .footer-col > span {
    margin-bottom: 10px !important;
  }

  .footer-col a {
    font-size: 0.92rem !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 520px) {
  .footer-main {
    grid-template-columns: 88px minmax(0, 1fr) !important;
    grid-template-areas:
      "brand contact"
      "discover social" !important;
    gap: 24px 16px !important;
  }

  .footer-brand {
    grid-column: auto !important;
  }

  .footer-brand img {
    width: 78px !important;
  }

  .footer-main > .footer-col:nth-of-type(2),
  .footer-main > .footer-col:nth-of-type(3),
  .footer-main > .footer-col:nth-of-type(4) {
    margin-top: 0 !important;
  }

  .footer-col > span {
    font-size: 0.68rem !important;
  }

  .footer-col a {
    font-size: 0.88rem !important;
  }
}

/* --- Corrección final icono menú móvil: barras rectas y centradas --- */
@media (max-width: 768px) {
  .menu-button {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .menu-button span {
    position: absolute !important;
    left: 50% !important;
    width: 20px !important;
    height: 2px !important;
    border-radius: 999px !important;
    background: currentColor !important;
    transform: translateX(-50%) rotate(0deg) !important;
    transform-origin: center center !important;
    transition: top .25s ease, transform .25s ease !important;
  }

  .menu-button span:first-child {
    top: calc(50% - 4px) !important;
  }

  .menu-button span:last-child {
    top: calc(50% + 4px) !important;
  }

  .menu-button[aria-expanded="true"] span:first-child {
    top: 50% !important;
    transform: translate(-50%, -50%) rotate(45deg) !important;
  }

  .menu-button[aria-expanded="true"] span:last-child {
    top: 50% !important;
    transform: translate(-50%, -50%) rotate(-45deg) !important;
  }
}

/* --- Ajuste final footer móvil: logo + descubrir + social arriba, contacto abajo --- */
@media (max-width: 768px) {
  .footer-main {
    grid-template-columns: 72px minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "brand discover social"
      "contact contact contact" !important;
    gap: 22px 18px !important;
    align-items: start !important;
    padding-bottom: 30px !important;
  }

  .footer-brand {
    grid-area: brand !important;
    align-self: start !important;
    margin: 0 !important;
  }

  .footer-main > .footer-col:nth-of-type(2) {
    grid-area: contact !important;
    margin-top: 0 !important;
  }

  .footer-main > .footer-col:nth-of-type(3) {
    grid-area: discover !important;
    margin-top: 0 !important;
  }

  .footer-main > .footer-col:nth-of-type(4) {
    grid-area: social !important;
    margin-top: 0 !important;
  }

  .footer-brand img {
    width: 62px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
  }

  .footer-col > span {
    margin-bottom: 9px !important;
  }

  .footer-col a {
    font-size: 0.9rem !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 520px) {
  .footer-main {
    grid-template-columns: 68px minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "brand discover social"
      "contact contact contact" !important;
    gap: 20px 14px !important;
  }

  .footer-brand img {
    width: 56px !important;
  }

  .footer-col > span {
    font-size: 0.68rem !important;
  }

  .footer-col a {
    font-size: 0.86rem !important;
  }
}

/* --- Ajuste extra: logo del footer móvil al tamaño visual del bloque "Descubrir" --- */
@media (max-width: 768px) {
  .footer-brand img {
    width: 40px !important;
    height: auto !important;
  }
}

@media (max-width: 520px) {
  .footer-brand img {
    width: 34px !important;
    height: auto !important;
  }
}

/* --- Ajuste final solicitado: logo del footer móvil más grande, al nivel visual de Descubrir / links --- */
@media (max-width: 768px) {
  .footer-main {
    grid-template-columns: 96px minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  .footer-brand img {
    width: 84px !important;
    height: auto !important;
    margin: 0 !important;
  }
}

@media (max-width: 520px) {
  .footer-main {
    grid-template-columns: 90px minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  .footer-brand img {
    width: 78px !important;
    height: auto !important;
    margin: 0 !important;
  }
}


/* --- Marca registrada + actualización de precios/formatos de venta --- */
.site-header .brand,
.shop-header .brand,
.footer-brand {
  position: relative;
}

.site-header .brand::after,
.shop-header .brand::after {
  content: "®";
  position: absolute;
  right: 2px;
  bottom: 6px;
  font-size: 8px;
  line-height: 1;
  color: rgba(255,255,255,.8);
  pointer-events: none;
}

.footer-brand::after {
  content: "®";
  position: absolute;
  left: 88px;
  top: 3px;
  font-size: 9px;
  line-height: 1;
  color: rgba(255,255,255,.55);
  pointer-events: none;
}

.catalog-purchase-note {
  margin: -10px 0 34px;
  max-width: 760px;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.55;
}

.price-row {
  align-items: flex-end !important;
  gap: 14px;
}

.price-block {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.price-block strong {
  display: block;
}

.price-block small {
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.35;
}

@media (max-width: 768px) {
  .site-header .brand::after,
  .shop-header .brand::after {
    right: -1px;
    bottom: 4px;
    font-size: 7px;
  }

  .footer-brand::after {
    left: 80px;
    top: 2px;
    font-size: 8px;
  }

  .catalog-purchase-note {
    margin-top: -4px;
    margin-bottom: 28px;
    font-size: .84rem;
  }

  .price-row {
    align-items: center !important;
  }
}

@media (max-width: 520px) {
  .footer-brand::after {
    left: 74px;
    top: 1px;
    font-size: 7px;
  }

  .price-row {
    align-items: flex-end !important;
  }

  .price-block small {
    max-width: 180px;
    font-size: .64rem;
  }
}

/* Registered mark visibility */
.site-header .brand::after {
  text-shadow: 0 1px 3px rgba(0,0,0,.55);
}
.shop-header .brand::after,
.shop-header.is-scrolled .brand::after {
  color: rgba(17,20,15,.72) !important;
  text-shadow: none;
}

/* --- Producción Cloudflare Pages: sin banner demo --- */
.demo-banner { display: none !important; }
.site-header,
.shop-header { top: 0 !important; }
.mobile-menu { top: var(--header-h) !important; }

/* Crédito de producción Nexbrokers */
.footer-production-credit a:not(.footer-nex-logo) {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.footer-production-credit a:not(.footer-nex-logo):hover {
  text-decoration-thickness: 2px;
}

/* Evita recortes de la primera letra en textos secundarios de precio en móvil */
.price-block small {
  overflow: visible !important;
  padding-left: 1px;
  text-indent: 0 !important;
}
