/* Vinitto — the label becomes the landscape. Local fonts, native motion. */
@font-face {
  font-family:"Bricolage Grotesque";
  src:url("fotos/fonts/bricolage-grotesque-800.ttf") format("truetype");
  font-style:normal;
  font-weight:800;
  font-display:swap;
}
@font-face {
  font-family:Manrope;
  src:url("fotos/fonts/manrope-400.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:Manrope;
  src:url("fotos/fonts/manrope-700.ttf") format("truetype");
  font-style:normal;
  font-weight:700;
  font-display:swap;
}
.landing {
  --cream:#fff7e9;
  --white:#fffaf1;
  --deep:#163c42;
  --ink:var(--deep);
  --muted:#36585a;
  --blue:#4fbab7;
  --label-blue:#327ea8;
  --coral:#c63b22;
  --wine:#712d40;
  --line:#c8cebb;
  --font-display:"Bricolage Grotesque",sans-serif;
  --container:min(1320px,calc(100% - 112px));
  background:var(--cream);
  font-size:16px;
}
.landing ::selection { background:var(--coral); color:var(--cream); }
.landing :focus-visible { outline:3px solid currentColor; outline-offset:6px; }
.landing h1,.landing h2,.landing h3 { font-weight:800; letter-spacing:-.065em; }
.landing .eyebrow { letter-spacing:.1em; font-size:.7rem; font-weight:700; }
.landing .site-header { padding:24px max(56px,calc((100% - 1320px)/2)); }
.landing .brand { width:132px; height:66px; }
.landing .brand img { width:220px; height:110px; transform:translate(-44px,-22px); }
.landing .site-nav { gap:32px; font-size:.8rem; }
.landing .site-nav a { min-height:44px; display:flex; align-items:center; }
.landing .site-nav .nav-contact { padding:12px 22px; gap:28px; background:var(--deep); color:var(--cream); }
.landing .site-nav .nav-contact:hover { background:var(--coral); border-color:var(--coral); }
.landing .button { min-height:58px; padding:16px 24px; gap:32px; font-size:.85rem; font-weight:700; }
.landing .button--primary { color:var(--cream); background:var(--deep); border-color:var(--deep); }
.landing .button--primary:hover { color:var(--cream); background:var(--coral); border-color:var(--coral); }
.landing .button span { font-size:1.3rem; line-height:1; }
.landing .hero { background:var(--cream); }
.landing .hero__inner {
  width:var(--container);
  min-height:830px;
  grid-template-columns:1.25fr 1fr;
  gap:0;
  padding:142px 0 50px;
}
.landing .hero__copy { padding:0; }
.landing .hero__copy>.eyebrow { display:flex; align-items:center; gap:12px; margin-bottom:25px; }
.tiny-wave { font:800 2.6rem/.5 "Bricolage Grotesque",sans-serif; color:var(--coral); }
.landing .hero h1 { font-size:clamp(5.3rem,9.7vw,9.1rem); line-height:.88; }
.landing .hero h1>span { display:block; margin-top:18px; font-size:.6em; line-height:1.04; white-space:nowrap; }
.landing .hero h1 em { font-style:normal; color:var(--coral); }
.landing .hero h1 span::after,.landing .hero__lede strong::after { content:none; }
.landing .hero__lede { font-size:1rem; max-width:395px; margin-top:28px; line-height:1.7; }
.hero-actions { display:flex; align-items:center; gap:23px; margin-top:28px; flex-wrap:wrap; }
.hero-discover { display:inline-flex; gap:13px; align-items:center; min-height:44px; font-size:.75rem; font-weight:700; }
.hero-discover:hover { text-decoration:underline; text-underline-offset:5px; }
.landing .hero__product { min-height:620px; align-content:center; margin:0 -12px 0 -10px; isolation:isolate; }
.label-world { position:absolute; inset:0; width:100%; height:100%; transform:rotate(7deg); translate:0 calc(var(--claim-progress,0) * 35px); z-index:-1; }
.landing .hero__bottle {
  height:550px;
  max-height:none;
  width:auto;
  transform:rotate(12deg);
  filter:drop-shadow(17px 18px 8px rgb(12 57 64 / .2));
  animation:none;
}
.landing .hero__format {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  top:12px;
  left:0;
  width:137px;
  height:137px;
  border-radius:50%;
  border:1px solid var(--deep);
  background:var(--cream);
  opacity:1;
  z-index:3;
  transform:rotate(-13deg);
  color:var(--deep);
  letter-spacing:0;
  font-size:1rem;
  line-height:1;
}
.landing .hero__format strong { font:800 4.2rem/.9 var(--font-display); letter-spacing:-.09em; margin-bottom:4px; }
.landing .hero__format>span { font-size:.65rem; text-align:center; letter-spacing:0; line-height:1.25; font-weight:700; }
.hero-squiggle { position:absolute; right:20px; bottom:52px; width:108px; color:var(--coral); transform:rotate(-12deg); z-index:3; }
.landing .hero__product figcaption { position:absolute; bottom:7px; left:8%; font-size:.7rem; transform:rotate(-8deg); text-transform:none; letter-spacing:0; }
.landing .hero__bottom {
  width:100%;
  padding:24px max(56px,calc((100% - 1320px)/2));
  border-top:1px solid var(--deep);
  border-bottom:1px solid var(--deep);
  font-size:.77rem;
  font-weight:700;
  gap:25px;
  align-items:center;
}
.landing .hero__bottom>span::before { content:"≈"; color:var(--coral); font-size:1.6rem; line-height:0; margin-right:18px; vertical-align:-2px; }
.landing .hero__bottom a { min-height:30px; align-items:center; gap:20px; }
.landing .hero__bottom a:hover { text-decoration:underline; text-underline-offset:5px; }
.landing .section { padding-block:105px; }
.landing .section-heading { margin-bottom:40px; }
.landing h2 { font-size:clamp(2.6rem,5.3vw,5rem); line-height:.98; }
.landing .section-heading>p:last-child { font-size:.95rem; max-width:470px; margin-top:25px; }
.landing .wine { background:var(--blue); transition:background 450ms; }
.landing .wine h2 span { color:#204e59; }
.landing .wine[data-wine="tinto"] { background:#e8b1b2; }
.landing .wine[data-wine="tinto"] h2 span { color:var(--wine); }
.landing .wine-selector { gap:0; margin-bottom:38px; }
.landing .wine-selector button {
  padding:12px 32px;
  border:1px solid var(--deep);
  border-radius:0;
  font-size:.85rem;
  min-height:48px;
}
.landing .wine-selector button:first-child { border-radius:30px 0 0 30px; }
.landing .wine-selector button:last-child { border-radius:0 30px 30px 0; border-left:0; }
.landing .wine-selector button[aria-pressed="true"] { background:var(--deep); border-color:var(--deep); color:var(--cream); }
.landing .wine-panel { grid-template-columns:1fr 1fr; gap:9%; min-height:540px; }
.landing .wine-visual {
  position:relative;
  height:540px;
  min-height:0;
  background:var(--label-blue);
  border-radius:46% 46% 8px 8px;
  isolation:isolate;
  overflow:hidden;
  gap:0;
}
.landing .wine-visual::before {
  content:"";
  position:absolute;
  width:55%;
  height:120%;
  background:var(--blue);
  border-radius:46%;
  transform:rotate(25deg);
  left:30%;
  top:-10%;
  z-index:-1;
}
.landing .wine-visual img { height:445px; transform:rotate(-11deg); margin-bottom:15px; }
.landing .wine-visual figcaption { position:absolute; bottom:20px; left:0; right:0; width:max-content; max-width:90%; margin:auto; background:var(--deep); padding:6px 12px; border-radius:20px; color:var(--cream); font-weight:700; font-size:.65rem; letter-spacing:.04em; }
.wine-annotation { position:absolute; top:100px; right:22px; font:800 clamp(1.1rem,1.7vw,1.6rem)/1 var(--font-display); color:var(--cream); transform:rotate(10deg); }
.landing .wine-copy { max-width:440px; padding:25px 0; }
.landing .wine-copy h3 { font-size:clamp(3rem,5.4vw,5.2rem); line-height:.96; }
.landing .wine-copy>p:not(.eyebrow) { margin:24px 0 32px; font-size:1.1rem; line-height:1.55; color:var(--deep); max-width:380px; }
.landing .wine-panel--tinto .wine-copy>p:not(.eyebrow) { color:var(--wine); }
.landing .wine-visual--neutral { background:var(--wine); border-radius:8px 46% 8px 46%; }
.landing .wine-visual--neutral::before { background:#a85565; transform:rotate(-25deg); }
.tinto-lettering { position:absolute; inset:55px 0 0; text-align:center; font:800 clamp(4rem,8vw,7.6rem)/.9 var(--font-display); color:#e8b1b2; letter-spacing:-.06em; transform:rotate(-12deg); }
.landing .neutral-format { position:absolute; bottom:65px; right:32px; width:145px; height:145px; border-radius:50%; display:flex; justify-content:center; align-items:center; background:var(--cream); color:var(--wine); font:800 4.6rem/1 var(--font-display); transform:rotate(10deg); }
.landing .neutral-format span { font-size:1.4rem; }
.landing .wine-panel--tinto { color:var(--wine); }
.landing .fits { background:var(--cream); }
.landing .fits .section-heading h2 span { color:var(--coral); }
.landing .section-heading--row { align-items:end; }
.landing .section-heading--row>p { max-width:300px; margin:0 0 5px; }
.landing .scene-controls { gap:20px; margin-bottom:30px; }
.landing .scene-controls button { border-top:1px solid var(--deep); padding:18px 0; min-height:64px; font-size:.67rem; color:var(--deep); gap:15px; }
.landing .scene-controls button span { font-size:.85rem; }
.landing .scene-controls button[aria-pressed="true"] { border-top:4px solid var(--coral); padding-top:15px; color:var(--coral); }
.landing .scene { grid-template-columns:1.15fr 1fr; background:transparent; color:var(--cream); }
.landing .scene figure { position:relative; }
.landing .scene img { height:560px; object-fit:cover; }
.landing #scene-hotel img { object-position:center center; }
.landing #scene-restaurante img { object-position:center bottom; }
.landing #scene-evento img { object-position:center center; }
.landing .scene-copy { padding:55px clamp(30px,4.5vw,70px); background:var(--coral); }
.landing .scene-copy h3 { font-size:clamp(2.8rem,4.6vw,4.6rem); line-height:.98; }
.landing .scene-copy>p:not(.eyebrow) { color:var(--cream); font-size:.95rem; margin:28px 0; }
.landing .scene-copy .text-link { font-size:.8rem; min-height:44px; }
.landing #scene-restaurante .scene-copy { background:var(--deep); }
.landing #scene-evento .scene-copy { background:var(--label-blue); }
.landing .custom { width:100%; padding-inline:max(56px,calc((100% - 1320px)/2)); gap:8%; background:var(--cream); }
.landing .custom-visual { min-height:610px; background:var(--label-blue); border-radius:8px 8px 45% 8px; isolation:isolate; }
.landing .custom-visual::before { content:""; position:absolute; width:65%; height:140%; border-radius:45%; background:var(--blue); left:15%; top:-15%; transform:rotate(30deg); z-index:-1; }
.landing .custom-visual>img { height:475px; transform:rotate(-12deg); filter:drop-shadow(12px 12px 6px rgb(0 0 0 / .14)); }
.landing .label-note { width:220px; left:48%; top:48%; border:0; border-radius:3px; padding:25px; background:var(--cream); transform:rotate(9deg); box-shadow:7px 10px 0 rgb(22 60 66 / .2); }
.landing .label-note>span:first-child { font-size:.58rem; letter-spacing:.04em; text-transform:uppercase; }
.landing .label-note strong { font:800 2.2rem/.95 var(--font-display); letter-spacing:-.05em; margin:18px 0 8px; }
.landing .label-note .label-wave { font:800 2.9rem/1 var(--font-display); letter-spacing:-.1em; color:var(--coral); }
.landing .label-note small { margin-top:15px; font-size:.58rem; }
.landing .custom.is-in-view .label-note { transform:translate(9px,-10px) rotate(-5deg); }
.custom-caption { position:absolute; bottom:28px; left:28px; font-size:.68rem; font-weight:700; color:var(--cream); background:var(--deep); padding:6px 12px; border-radius:20px; }
.landing .custom-copy h2 { font-size:clamp(3.5rem,6.7vw,6.5rem); }
.landing .custom-copy h2 span { color:var(--coral); }
.landing .custom-copy>p:not(.eyebrow) { margin:30px 0; font-size:1rem; max-width:390px; color:var(--deep); }
.landing .wine-copy>p.channel-note,.landing .custom-copy>p.channel-note { margin:12px 0 0; min-height:0; font-size:.7rem; }
.landing .custom-tags { gap:9px; margin-bottom:32px; }
.landing .custom-tags li { padding:6px 12px; border:1px solid var(--line); border-radius:30px; color:var(--deep); font-size:.67rem; }
.landing .contact { background:var(--blue); padding:85px max(56px,calc((100% - 1320px)/2)) 95px; position:relative; overflow:clip; }
.landing .contact-layout { grid-template-columns:1.7fr 1fr; gap:55px; align-items:end; }
.landing .contact h2 { font-size:clamp(4rem,9vw,8.5rem); line-height:1; letter-spacing:-.07em; white-space:nowrap; }
.landing .contact h2 span { color:var(--deep); display:inline-block; transform:rotate(12deg); }
.contact-intro { margin-top:25px; max-width:530px; font-size:.95rem; }
.landing .contact-links { gap:20px; padding-bottom:5px; }
.landing .contact-email { font-size:1.15rem; font-weight:700; border-bottom:1px solid var(--deep); padding:5px 0; display:flex; gap:24px; align-items:center; }
.contact-phone { font-size:.85rem; min-height:44px; display:flex; align-items:center; }
.landing .contact-email:hover,.contact-phone:hover { color:#702819; }
.landing .site-footer { width:100%; padding:45px max(56px,calc((100% - 1320px)/2)) 28px; grid-template-columns:150px 1fr auto; gap:25px 45px; color:var(--deep); background:var(--cream); }
.landing .site-footer>img { height:65px; width:145px; }
.landing .site-footer>p { max-width:370px; }
.landing .footer-legal { gap:12px 25px; }
.landing .footer-legal a,.landing .footer-legal button { min-height:32px; display:inline-flex; align-items:center; }
.landing .site-footer small { font-size:.65rem; }
.landing .cookie-banner { box-shadow:0 8px 40px rgb(22 60 66 / .15); border:1px solid var(--deep); background:var(--cream); }
.landing .cookie-banner .button { min-height:44px; padding:9px 16px; font-size:.7rem; }
.landing .cookie-modal__panel h2 { font-size:2rem; }
.landing .hero h1>.hero-small { font-size:1em; margin:0; white-space:normal; line-height:.88; }
.landing .hero__bottle { translate:0 calc(var(--claim-progress,0) * -24px); }
.landing .wine { position:relative; overflow:clip; }
.landing .wine>.section-heading,.landing .wine>.wine-selector,.landing .wine>.wine-panels { position:relative; z-index:1; }
.journey-ribbon { position:absolute; top:-65px; right:-50px; width:min(43vw,560px); height:500px; color:var(--cream); opacity:.52; pointer-events:none; transform:translate(calc(var(--wave-travel,0) * 24px),calc(var(--wave-travel,0) * -35px)) rotate(calc(var(--wave-travel,0) * -8deg)); }
.landing .wine-visual::before { translate:0 calc(var(--wave-travel,0) * -30px); }
.landing .scenes { overflow:clip; isolation:isolate; }
.landing .scene { position:relative; z-index:2; }
.scene-traveller { display:none; position:absolute; z-index:4; left:calc(53.5% - 77px); bottom:25px; width:145px; height:255px; pointer-events:none; }
.landing.js-ready .scene-traveller { display:block; }
.scene-traveller::before { content:""; position:absolute; width:145px; height:145px; bottom:0; left:0; border-radius:50%; background:var(--cream); }
.landing .scene-traveller img { position:relative; height:240px; width:auto; margin:auto; transform:rotate(10deg); filter:drop-shadow(7px 8px 4px rgb(0 0 0 / .2)); }
.landing .custom .label-note { left:50%; top:61%; width:145px; padding:16px 12px; min-height:150px; text-align:center; border-radius:4px 8px 8px 4px; transform:translate(-50%,-50%) rotate(-12deg); box-shadow:2px 4px 5px rgb(0 0 0 / .15); transition:background 220ms,color 220ms; }
.landing .custom:hover .custom-visual>img { transform:rotate(-12deg); }
.landing .custom .label-note>[data-label-category] { display:block; font-size:.55rem; letter-spacing:.11em; text-transform:uppercase; }
.landing .custom .label-note strong { font-size:1.8rem; margin:15px 0 8px; }
.landing .custom .label-note .label-wave { font-size:2.1rem; line-height:.65; margin:7px 0; }
.landing .custom .label-note small { font-size:.48rem; margin-top:13px; }
.landing .label-note[data-label-style="boda"] { background:#f0d8d1; color:var(--wine); }
.landing .label-note[data-label-style="boda"] .label-wave { color:var(--wine); }
.landing .label-note[data-label-style="empresa"] { background:var(--deep); color:var(--cream); }
.landing .label-note[data-label-style="empresa"] .label-wave { color:var(--blue); }
.label-selector { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 25px; }
.label-selector button { border:1px solid var(--deep); border-radius:25px; padding:10px 16px; min-height:44px; font-size:.75rem; font-weight:700; background:transparent; color:var(--deep); }
.label-selector button[aria-pressed="true"] { background:var(--deep); color:var(--cream); }
.toast-art { display:block; width:190px; height:137px; margin:0 0 22px -5px; overflow:visible; pointer-events:none; }
.toast-left { transform:rotate(20deg); transform-origin:0 0; }
.toast-right { transform:rotate(-20deg); transform-origin:0 0; }
.toast-spark { opacity:0; transform-origin:125px 20px; }
.landing .contact-links>.button { position:relative; }
.contact-underline { position:absolute; left:0; bottom:-15px; width:100%; height:20px; color:var(--deep); pointer-events:none; }
.landing .contact-links { gap:29px; }
@media (hover:hover) and (pointer:fine) {
  .landing .hero__product:hover .hero__bottle { rotate:-4deg; }
  .landing .hero__bottle { transition:rotate 650ms var(--ease); }
  .landing .custom:hover .label-note { transform:translate(12px,-15px) rotate(-8deg); }
}
@media (min-width:1700px) {
  .landing .hero__inner { min-height:900px; }
  .landing .hero__product { min-height:670px; }
  .landing .hero__bottle { height:600px; }
}
@media (max-width:1100px) {
  .landing { --container:calc(100% - 64px); }
  .landing .site-header { padding:20px 32px; }
  .landing .site-nav { gap:22px; }
  .landing .hero__inner { min-height:760px; padding-top:125px; }
  .landing .hero__product { min-height:530px; }
  .landing .hero__bottle { height:460px; }
  .landing .hero h1 { font-size:clamp(4.8rem,9.4vw,7rem); }
  .landing .hero h1>span { font-size:.59em; }
  .hero-actions { gap:15px; }
  .landing .hero__format { width:112px; height:112px; }
  .landing .hero__format strong { font-size:3.5rem; }
  .landing .hero__format>span { font-size:.55rem; }
  .hero-squiggle { width:90px; }
  .landing .hero__bottom { padding-inline:32px; font-size:.69rem; gap:18px; }
  .landing .hero__bottom>span::before { margin-right:10px; }
  .landing .wine-panel { gap:6%; }
  .landing .wine-visual { height:485px; }
  .landing .wine-visual img { height:390px; }
  .wine-annotation { top:90px; right:12px; }
  .landing .scene img { height:500px; }
  .landing .scene-copy { padding:35px; }
  .landing .custom { padding-inline:32px; gap:6%; }
  .landing .custom-visual { min-height:535px; }
  .landing .custom-visual>img { height:420px; }
  .landing .label-note { width:185px; left:39%; padding:22px; }
  .landing .label-note strong { font-size:1.8rem; }
  .landing .contact { padding-inline:32px; }
  .landing .contact-layout { grid-template-columns:1.4fr 1fr; gap:30px; }
  .landing .contact h2 { font-size:8.5vw; }
  .landing .contact-email { font-size:1rem; gap:10px; }
  .landing .site-footer { padding-inline:32px; gap:25px; }
}
@media (max-width:760px) {
  .landing { --container:calc(100% - 40px); }
  .landing .site-header { padding:15px 20px; }
  .landing .brand { width:104px; height:52px; }
  .landing .brand img { width:174px; height:87px; transform:translate(-35px,-17px); }
  .landing .site-nav { gap:6px 20px; font-size:.8rem; }
  .landing.js-ready .site-nav { background:var(--cream); border:1px solid var(--deep); padding:20px; }
  .landing.js-ready.nav-open .site-nav { box-shadow:0 15px 30px rgb(22 60 66 / .12); }
  .landing .site-nav .nav-contact { justify-content:space-between; }
  .landing .section { padding-block:70px; }
  .landing h2 { font-size:clamp(2.5rem,7.4vw,3.5rem); }
  .landing .hero__inner { min-height:690px; padding:120px 0 40px; grid-template-columns:1.2fr 1fr; gap:0; }
  .landing .hero h1 { font-size:clamp(3.6rem,9.6vw,4.8rem); }
  .landing .hero h1>span { font-size:.58em; margin-top:14px; }
  .landing .hero__copy>.eyebrow { font-size:.56rem; gap:10px; margin-bottom:24px; }
  .landing .hero__lede { max-width:300px; font-size:.9rem; margin-top:24px; }
  .hero-actions { gap:6px; margin-top:22px; }
  .landing .hero .button { font-size:.74rem; padding:13px 18px; gap:18px; min-height:52px; }
  .hero-discover { font-size:.7rem; }
  .landing .hero__product { min-height:440px; margin-left:0; margin-right:-8px; }
  .landing .hero__bottle { height:355px; }
  .landing .hero__format { width:90px; height:90px; top:15px; left:0; }
  .landing .hero__format strong { font-size:2.8rem; }
  .landing .hero__format>span { font-size:.48rem; }
  .hero-squiggle { width:75px; bottom:25px; }
  .landing .hero__product figcaption { font-size:.57rem; bottom:6px; }
  .landing .hero__bottom { padding:17px 20px; display:flex; flex-wrap:wrap; gap:12px 20px; font-size:.69rem; }
  .landing .hero__bottom a { gap:12px; }
  .landing .section-heading--row { align-items:start; gap:20px; }
  .landing .section-heading--row>p { font-size:.75rem; padding-top:35px; }
  .landing .wine-panel { min-height:440px; gap:6%; }
  .landing .wine-copy h3 { font-size:clamp(2.4rem,5.7vw,3.4rem); }
  .landing .wine-copy>p:not(.eyebrow) { font-size:.9rem; margin:22px 0; }
  .landing .wine-copy .button { padding:14px 17px; font-size:.72rem; gap:16px; }
  .landing .wine-visual { height:440px; }
  .landing .wine-visual img { height:330px; }
  .wine-annotation { top:65px; right:10px; font-size:1rem; }
  .product-facts { gap:6px; margin-bottom:23px; }
  .product-facts span { font-size:.6rem; padding:6px 9px; }
  .tinto-lettering { font-size:4.5rem; top:75px; }
  .landing .neutral-format { width:110px; height:110px; bottom:50px; right:20px; font-size:3.4rem; }
  .landing .scene-controls { gap:13px; margin-bottom:22px; }
  .landing .scene-controls button { gap:8px; font-size:.6rem; }
  .landing .scene-controls button span { font-size:.8rem; }
  .landing .scene { grid-template-columns:1fr; }
  .scene-traveller { left:auto; right:18px; bottom:auto; top:245px; width:110px; height:180px; }
  .scene-traveller::before { width:110px; height:110px; }
  .landing .scene-traveller img { height:175px; }
  .landing .scene img { height:430px; }
  .landing .scene-copy { padding:38px; min-height:320px; }
  .landing .scene-copy h3 { font-size:3.5rem; }
  .landing .scene-copy>p:not(.eyebrow) { max-width:400px; }
  .landing .custom { padding-inline:20px; gap:5%; }
  .landing .custom-copy h2 { font-size:clamp(3rem,7.8vw,4.5rem); }
  .landing .custom-copy>p:not(.eyebrow) { font-size:.9rem; margin:24px 0; }
  .landing .custom-visual { min-height:460px; }
  .landing .custom-visual>img { height:355px; }
  .landing .custom .label-note { width:112px; min-height:125px; padding:12px 8px; }
  .landing .custom .label-note strong { font-size:1.4rem; }
  .landing .custom .label-note>[data-label-category] { font-size:.45rem; }
  .landing .custom .label-note small { font-size:.43rem; }
  .label-selector { gap:5px; }
  .label-selector button { font-size:.68rem; padding:9px 12px; }
  .journey-ribbon { top:-30px; right:-120px; width:330px; height:330px; opacity:.32; }
  .landing .label-note { width:155px; padding:17px; left:34%; top:45%; }
  .landing .label-note strong { font-size:1.5rem; }
  .landing .label-note .label-wave { font-size:2.4rem; }
  .landing .label-note small { font-size:.5rem; margin-top:10px; }
  .landing .label-note>span:first-child { font-size:.47rem; }
  .custom-caption { font-size:.55rem; left:20px; bottom:25px; }
  .landing .custom-tags { gap:6px; }
  .landing .custom-tags li { font-size:.58rem; padding:5px 9px; }
  .landing .custom-copy .button { gap:18px; padding:14px 19px; font-size:.75rem; }
  .landing .contact { padding-inline:20px; }
  .landing .contact-layout { grid-template-columns:1fr; gap:30px; }
  .landing .contact h2 { font-size:clamp(3.5rem,12vw,5.7rem); }
  .landing .contact-intro { font-size:.9rem; }
  .landing .contact-links { gap:14px; }
  .landing .site-footer { padding:35px 20px 25px; grid-template-columns:120px 1fr; gap:25px; }
  .landing .site-footer>img { width:110px; height:50px; }
  .landing .footer-contact { grid-column:2; }
  .landing .footer-legal,.landing .site-footer small { grid-column:1/-1; }
  .landing:not(.js-ready) .hero__inner { padding-top:35px; }
}
@media (max-width:520px) {
  .landing .hero__inner { display:flex; flex-direction:column; align-items:stretch; min-height:0; padding:111px 0 25px; }
  .landing .hero h1 { font-size:clamp(3.9rem,17vw,5.6rem); }
  .landing .hero h1>span { font-size:.57em; margin-top:14px; }
  .landing .hero__copy>.eyebrow { font-size:.58rem; margin-bottom:21px; }
  .landing .hero__lede { max-width:340px; font-size:.9rem; margin-top:22px; }
  .hero-actions { gap:7px 20px; margin-top:20px; }
  .landing .hero .button { font-size:.75rem; }
  .landing .hero__product { width:100%; min-height:385px; margin:25px 0 0; }
  .landing .label-world { width:300px; left:calc(50% - 150px); }
  .landing .hero__bottle { height:330px; }
  .landing .hero__format { width:100px; height:100px; top:12px; left:4%; }
  .landing .hero__format strong { font-size:3.2rem; }
  .landing .hero__format>span { font-size:.5rem; }
  .hero-squiggle { right:5%; bottom:28px; width:80px; }
  .landing .hero__product figcaption { bottom:0; left:8%; font-size:.6rem; }
  .landing .hero__bottom { font-size:.65rem; gap:12px 14px; }
  .landing .hero__bottom>span::before { margin-right:9px; }
  .landing .section { padding-block:58px; }
  .landing h2 { font-size:clamp(2.1rem,8.2vw,2.8rem); }
  .landing .section-heading { margin-bottom:28px; }
  .landing .section-heading>p:last-child { font-size:.88rem; margin-top:20px; }
  .landing .wine-selector { margin-bottom:30px; }
  .landing .wine-selector button { padding:12px 29px; }
  .landing .wine-panel { grid-template-columns:1fr; gap:28px; }
  .landing .wine-visual { height:410px; width:100%; }
  .landing .wine-visual img { height:330px; }
  .wine-annotation { top:85px; right:22px; font-size:1.3rem; }
  .landing .wine-copy { padding:8px 0 0; max-width:none; min-height:230px; }
  .landing .wine-copy h3 { font-size:3.25rem; }
  .landing .wine-copy>p:not(.eyebrow) { min-height:52px; font-size:.95rem; margin:23px 0; }
  .landing .wine-copy .button { font-size:.8rem; min-height:54px; }
  .product-facts span { font-size:.65rem; }
  .tinto-lettering { font-size:5.8rem; top:50px; }
  .landing .neutral-format { width:120px; height:120px; font-size:3.7rem; }
  .landing .section-heading--row { display:block; }
  .landing .section-heading--row>p { padding:0; margin-top:22px; }
  .landing .scene-controls { gap:10px; }
  .landing .scene-controls button { display:block; padding:14px 0; min-height:70px; }
  .landing .scene-controls button[aria-pressed="true"] { padding-top:11px; }
  .landing .scene-controls button span { display:block; margin-top:5px; font-size:.8rem; }
  .landing .scene img { height:365px; }
  .scene-traveller { top:185px; }
  .landing .scene-traveller img { height:175px; }
  .landing .scene-copy { padding:32px 24px; }
  .landing .scene-copy h3 { font-size:clamp(2.6rem,10vw,3.3rem); }
  .landing .scene-copy>p:not(.eyebrow) { font-size:.9rem; }
  .landing .custom { grid-template-columns:1fr; gap:35px; }
  .landing .custom-visual { min-height:460px; }
  .landing .custom-visual>img { height:365px; }
  .landing .custom .label-note { width:118px; min-height:130px; }
  .landing .custom .label-note strong { font-size:1.5rem; }
  .label-selector { gap:8px; }
  .label-selector button { font-size:.75rem; padding:10px 16px; }
  .toast-art { width:160px; height:115px; margin-bottom:20px; }
  .landing .label-note { left:43%; top:43%; width:180px; padding:20px; }
  .landing .label-note strong { font-size:1.8rem; }
  .landing .label-note>span:first-child { font-size:.5rem; }
  .custom-caption { font-size:.6rem; }
  .landing .custom-copy h2 { font-size:clamp(2.8rem,11.3vw,3.7rem); }
  .landing .custom-copy>p:not(.eyebrow) { font-size:.95rem; }
  .landing .custom-tags li { font-size:.65rem; }
  .landing .custom-copy .button { font-size:.8rem; }
  .landing .contact h2 { font-size:clamp(3rem,12vw,4rem); }
  .landing .contact-intro br { display:none; }
  .landing .contact .button { font-size:.8rem; gap:25px; }
  .landing .contact-email { font-size:1.05rem; }
  .landing .site-footer { grid-template-columns:1fr; gap:22px; }
  .landing .footer-contact,.landing .footer-legal,.landing .site-footer small { grid-column:1; }
  .landing .cookie-banner { left:12px; right:12px; max-width:none; }
  .landing .cookie-modal__panel h2 { font-size:1.6rem; }
}
@media (max-width:360px) {
  .landing .hero h1 { font-size:16.5vw; }
  .landing .hero h1>span { font-size:.59em; }
  .landing .hero__bottom { font-size:.58rem; }
  .landing .label-note { left:38%; width:165px; }
  .landing .contact-email { font-size:.95rem; }
  .landing .wine-copy h3 { font-size:2.9rem; }
}
@media (prefers-reduced-motion:reduce) {
  .landing *, .landing *::before, .landing *::after { animation:none!important; transition:none!important; }
  .landing .hero__product:hover .hero__bottle { rotate:none; }
  .landing .custom .label-note { transform:translate(-50%,-50%) rotate(-12deg); }
  .landing .hero__bottle,.label-world,.journey-ribbon,.landing .wine-visual::before { translate:0 0; }
  .journey-ribbon { transform:none; }
}

/* A fitted label: image and artwork share one coordinate system. */
.landing .custom-visual { --bottle-height:520px; min-height:650px; }
.landing .custom .custom-bottle {
  position:relative;
  width:calc(var(--bottle-height) * 460 / 1414);
  height:var(--bottle-height);
  transform:rotate(-8deg);
  filter:drop-shadow(12px 14px 7px rgb(0 0 0 / .18));
  container-type:inline-size;
}
.landing .custom .custom-bottle>img { width:100%; height:100%; object-fit:contain; }
.landing .custom .custom-bottle .label-note {
  position:absolute;
  left:12.2%;
  top:55.9%;
  width:75%;
  height:35.2%;
  min-height:0;
  padding:15px 8px 10px;
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  overflow:hidden;
  text-align:center;
  background:var(--cream);
  color:var(--deep);
  border:0;
  border-radius:0;
  clip-path:polygon(0 0,12% 2%,28% 4%,50% 5%,72% 4%,88% 2%,100% 0,100% 95%,88% 97%,72% 99%,50% 100%,28% 99%,12% 97%,0 95%);
  box-shadow:none;
  transform:perspective(400px) rotateY(0deg);
  transform-origin:center;
  transition:background 220ms,color 220ms;
}
.landing .custom .custom-bottle .label-note::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(90deg,rgb(0 0 0 / .22),transparent 20%,rgb(255 255 255 / .1) 45%,transparent 70%,rgb(0 0 0 / .2)); }
.landing .custom .label-note .label-emblem { font:800 clamp(22px,17cqw,28px)/1 var(--font-display); letter-spacing:-.06em; color:var(--label-blue); }
.landing .custom .custom-bottle .label-note>[data-label-category] { font-size:10px; line-height:1.1; letter-spacing:.12em; text-transform:uppercase; }
.landing .custom .custom-bottle .label-note strong { font:800 clamp(24px,21cqw,36px)/.95 var(--font-display); letter-spacing:-.05em; margin:2px 0; max-width:100%; }
.label-pattern { flex-shrink:0; width:130%; height:24px; margin:4px -15% 0; color:var(--label-blue); }
.landing .custom .label-note .label-signature { display:block; font-size:9px; line-height:1.2; letter-spacing:.03em; margin-top:4px; }
.landing .custom .custom-bottle .label-note[data-label-style="boda"] { background:#f4e4da; color:var(--wine); }
.landing .custom .label-note[data-label-style="boda"] .label-emblem { color:var(--wine); font-size:18px; letter-spacing:.03em; }
.landing .custom .custom-bottle .label-note[data-label-style="boda"] strong { font-family:Georgia,serif; font-style:italic; font-weight:400; font-size:clamp(24px,20cqw,34px); line-height:.94; }
.landing .custom .label-note[data-label-style="boda"] .label-pattern { color:var(--wine); height:15px; opacity:.6; }
.landing .custom .custom-bottle .label-note[data-label-style="empresa"] { background:var(--deep); color:var(--cream); }
.landing .custom .label-note[data-label-style="empresa"] .label-emblem { color:var(--blue); font-size:29px; }
.landing .custom .custom-bottle .label-note[data-label-style="empresa"] strong { text-transform:uppercase; font-size:clamp(24px,19cqw,32px); }
.landing .custom .label-note[data-label-style="empresa"] .label-pattern { color:var(--blue); transform:rotate(-15deg); }
.label-example-caption { position:absolute; bottom:25px; left:25px; color:var(--cream); background:var(--deep); border-radius:20px; font-size:.68rem; padding:6px 12px; }
@media(max-width:1100px) { .landing .custom-visual { --bottle-height:460px; min-height:580px; } }
@media(max-width:760px) { .landing .custom-visual { --bottle-height:420px; min-height:520px; } }
@media(max-width:520px) { .landing .custom-visual { --bottle-height:450px; min-height:550px; } }
@media(prefers-reduced-motion:reduce) { .landing .custom .custom-bottle .label-note { transition:none; } }
.scene-toolbar { width:var(--container); margin:0 auto 30px; display:flex; align-items:center; gap:24px; }
.landing .scene-toolbar .scene-controls { width:auto; flex:1; margin:0; gap:clamp(10px,1.5vw,20px); }
.scene-playback { flex-shrink:0; width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--deep); border-radius:50%; background:transparent; color:var(--deep); }
.scene-playback span { font-size:20px; line-height:1; }
.scene-playback:hover:not(:disabled) { color:var(--cream); background:var(--deep); }
.scene-playback:disabled { opacity:.45; cursor:default; }
.landing:not(.js-ready) .scene-toolbar { display:none; }
@media(max-width:760px) { .scene-toolbar { gap:12px; margin-bottom:22px; } }

/* Personalisation studio: product application beside its readable artwork. */
.landing .custom { grid-template-columns:.85fr 1.15fr; gap:clamp(30px,5vw,60px); align-items:center; background:var(--deep); color:var(--cream); border-radius:12px; }
.landing .custom-copy { grid-column:1; grid-row:1; }
.landing .custom-copy h2 { font-size:clamp(3rem,4.7vw,4.7rem); }
.landing .custom-copy h2 span { color:var(--blue); }
.landing .custom-copy>p:not(.eyebrow) { color:var(--cream); max-width:400px; font-size:1.0625rem; line-height:1.55; }
.custom-perks { list-style:none; padding:0; margin:22px 0 30px; display:grid; gap:11px; }
.custom-perks li { display:flex; align-items:center; gap:12px; font-size:.92rem; color:var(--cream); opacity:.95; line-height:1.35; }
.custom-perks li span { display:inline-grid; place-items:center; width:20px; height:20px; border-radius:50%; background:rgb(79 186 183 / .22); color:var(--blue); font-size:.72rem; font-weight:800; flex-shrink:0; }
.landing .custom-copy .button--primary { background:var(--cream); border-color:var(--cream); color:var(--deep); }
.landing .custom-copy .button--primary:hover { background:var(--blue); border-color:var(--blue); color:var(--deep); }
.landing .custom .button-copy { display:block; font-size:.82rem; line-height:1.25; text-align:left; }
.landing .custom .button-copy small { display:block; font-size:.65rem; margin-top:4px; font-weight:400; }
.landing .custom .button:hover .button-copy { transform:none; }

.landing .custom-visual {
  grid-column:2;
  grid-row:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:36px 32px 34px;
  min-height:590px;
  border-radius:16px;
  background:radial-gradient(circle at 50% 32%, #fffdfa 0%, #f4eee2 100%);
  border:1px solid rgb(255 255 255 / .12);
  box-shadow:0 18px 40px rgb(0 0 0 / .28);
  position:relative;
  overflow:clip;
}
.landing .custom-visual::before {
  content:"";
  position:absolute;
  width:80%;
  height:80%;
  left:10%;
  top:10%;
  border-radius:50%;
  background:radial-gradient(circle, rgb(79 186 183 / .2), transparent 70%);
  filter:blur(40px);
  pointer-events:none;
  z-index:0;
}
.landing .custom-visual .label-selector {
  position:relative;
  z-index:3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin:0 auto 10px;
  background:rgb(22 60 66 / .08);
  padding:5px;
  border-radius:30px;
}
.landing .custom-visual .label-selector button {
  display:flex;
  align-items:center;
  gap:8px;
  border:none;
  border-radius:24px;
  padding:9px 18px;
  min-height:42px;
  font-size:.82rem;
  font-weight:700;
  background:transparent;
  color:var(--deep);
  cursor:pointer;
  transition:all 200ms ease;
}
.landing .custom-visual .label-selector button::before {
  content:"";
  display:block;
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
  border:1px solid currentColor;
}
.landing .custom-visual .label-selector [data-label="hotel"]::before {
  background:#1e4d3b;
  border-color:#2a9e9b;
}
.landing .custom-visual .label-selector [data-label="boda"]::before {
  background:#d8cfc4;
  border-color:var(--wine);
}
.landing .custom-visual .label-selector [data-label="empresa"]::before {
  background:#104085;
  border-color:#2c74d6;
}
.landing .custom-visual .label-selector button[aria-pressed="true"] {
  background:var(--deep);
  color:var(--cream);
  box-shadow:0 4px 14px rgb(22 60 66 / .22);
}

.landing .custom .custom-bottle {
  position:relative;
  z-index:2;
  width:calc(var(--bottle-height) * 725 / 2169);
  height:var(--bottle-height);
  transform:rotate(-2deg);
  filter:drop-shadow(0 20px 28px rgb(0 0 0 / .22));
  container-type:inline-size;
  margin:0 auto;
}

.label-detail {
  display:none !important;
}
.label-example-caption {
  position:relative;
  margin-top:6px;
  color:#5b7378;
  background:rgb(22 60 66 / .07);
  border-radius:20px;
  font-size:.7rem;
  font-weight:600;
  padding:5px 14px;
}

/* Keep capacity together, with a legible unit on the same baseline. */
.volume { white-space:nowrap; }
.landing .hero__format { display:grid; place-items:center; }
.landing .hero__format .capacity-value { display:inline-flex; align-items:baseline; white-space:nowrap; font:800 3.6rem/1 var(--font-display); letter-spacing:-.06em; }
.landing .hero__format .capacity-value strong { font:inherit; letter-spacing:inherit; margin:0; }
.landing .hero__format .capacity-unit { font:700 .48em/1 var(--font-body); letter-spacing:-.02em; }
.landing .neutral-format .capacity-value { display:inline-flex; align-items:baseline; white-space:nowrap; font:800 4rem/1 var(--font-display); letter-spacing:-.06em; }
.landing .neutral-format .capacity-unit { font:700 .48em/1 var(--font-body); margin:0; letter-spacing:-.02em; }
@media(max-width:1100px) {
  .landing .hero__format .capacity-value { font-size:3.1rem; }
  .label-detail { width:165px; }
  .landing .custom .label-detail .label-note { height:235px; padding:20px 12px; }
  .landing .custom .label-detail .label-note strong { font-size:38px; }
}
@media(max-width:900px) {
  .landing .custom { grid-template-columns:1fr; gap:35px; }
  .landing .custom-copy { grid-column:1; grid-row:1; }
  .landing .custom-copy h2 { font-size:clamp(2.8rem,6.5vw,4.2rem); }
  .landing .custom-visual { grid-column:1; grid-row:2; }
}
@media(max-width:760px) {
  .landing .hero__format .capacity-value { font-size:2.5rem; }
  .landing .custom { grid-template-columns:1fr; gap:28px; padding-inline:18px; }
  .landing .custom-visual {
    grid-column:1;
    grid-row:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:0;
    padding:24px 14px 26px;
    min-height:auto;
    border-radius:14px;
  }
  .landing .custom-visual .label-selector {
    width:100%;
    max-width:320px;
    margin-bottom:20px;
    justify-content:space-between;
  }
  .landing .custom-visual .label-selector button {
    flex:1;
    justify-content:center;
    padding:8px 10px;
    min-height:42px;
    font-size:.8rem;
  }
  .landing .custom .custom-bottle {
    --bottle-height:385px;
    transform:rotate(-1.5deg);
    margin:0 auto;
    filter:drop-shadow(0 14px 20px rgb(0 0 0 / .18));
  }
  .label-detail {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
    pointer-events:none;
  }
  .label-example-caption {
    margin-top:16px;
    font-size:.72rem;
  }
  .landing .neutral-format .capacity-value { font-size:3rem; }
}
@media(max-width:520px) {
  .landing .hero__format .capacity-value { font-size:2.8rem; }
  .landing .custom-visual { padding:20px 12px 22px; }
  .landing .custom .custom-bottle { --bottle-height:375px; transform:rotate(-1deg); }
  .landing .custom-copy>p:not(.eyebrow) { font-size:.95rem; }
}
@media(max-width:360px) {
  .landing .custom-visual { padding:18px 10px 20px; }
  .landing .custom .custom-bottle { --bottle-height:335px; transform:none; }
}
@media(prefers-reduced-motion:reduce) { .landing .custom .label-detail .label-note { transition:none; } }

/* 100% personalizable badge */
.landing .custom-tag {
  display: inline-flex;
  align-items: center;
  gap: .35em;
  padding: .35em .85em;
  border-radius: 99px;
  background: rgba(79,186,183,.12);
  border: 1.5px solid rgba(79,186,183,.45);
  color: #2a9e9b;
  font-family: Manrope, sans-serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: .9rem;
}
.landing .custom-tag::before {
  content: "✦";
  font-size: .65em;
}

/* Hide the scene-traveller bottle (caused the hop glitch) */
.landing .scene-traveller { display: none !important; }
