/*
 * PUPA WINERY / OFFICIALMRPRO DESIGN SYSTEM — V2
 * Premium European winery editorial meets OfficialMrPro's polished digital craft.
 * One final cascade shared by every SQ / EN route, including all six wines.
 * Tokens → Header → Hero → Story → Wine → Interactions → Footer → Responsive.
 */
:root {
  --mrpro-pine: #15241d;
  --mrpro-pine-rich: #1d3429;
  --mrpro-ivory: #f7f5ef;
  --mrpro-white: #fffdf8;
  --mrpro-champagne: #dcc49a;
  --mrpro-garnet: #792e3b;
  --mrpro-graphite: #243129;
  --mrpro-copy: #66685f;
  --mrpro-border: #e4ddcf;
  --mrpro-card-shadow: 0 18px 60px rgba(30,40,29,.065);
  --mrpro-hover-shadow: 0 25px 65px rgba(30,40,29,.14);
  --mrpro-ease: cubic-bezier(.2,.8,.2,1);
  --mrpro-radius-xl: 34px;
  --mrpro-radius-lg: 26px;
  --mrpro-radius-md: 18px;
  --mrpro-spacing: clamp(64px,8vw,132px);
  --paper: var(--mrpro-ivory);
  --forest: var(--mrpro-pine);
  --forest-deep: #101b16;
  --line: var(--mrpro-border);
  --radius: var(--mrpro-radius-lg);
  --ink: var(--mrpro-graphite);
  --muted: var(--mrpro-copy);
  --gold: #b99b6b;
}
html { scroll-padding-top: 112px; }
body { background:var(--paper); font-family:var(--sans); font-feature-settings:'kern'; }
::selection { background:#b99b6b82; color:#10211a; }
main { overflow:clip; }
main h1,main h2,main h3 { font-family:var(--serif); font-weight:500; letter-spacing:-.046em; }
main h2 { line-height:1.04; }
main p:not(.eyebrow) { line-height:1.8; }
main .eyebrow { font-size:11px; color:#a08663; letter-spacing:.1em; }
.hero .eyebrow { color:#f3dfbd; }
.hero .eyebrow:before,.hero .eyebrow:after { background:currentColor; opacity:.7; }
main .display-accent { font-style:italic; font-weight:400; color:#f8e6c9; }
main section:not(.hero) .display-accent { color:var(--mrpro-garnet); }
a,button { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid var(--mrpro-champagne); outline-offset:4px; }
/* Permanent live content. Movement never determines whether content is visible. */
.hero-copy,.real-wine,.experience,.editorial-split,.wine-detail,.wine-art,.collection-band { backface-visibility:visible; }

/* OfficialMrPro floating-glass navigation */
.site-header {
  inset:18px 26px auto;
  height:84px;
  padding:13px clamp(18px,2.1vw,36px);
  border-radius:999px;
  border:1px solid rgba(255,255,255,.26);
  background:rgba(20,35,28,.68);
  color:var(--mrpro-white);
  box-shadow:0 10px 42px #0a130b20, inset 0 1px #ffffff20;
  -webkit-backdrop-filter:blur(24px) saturate(135%);
  backdrop-filter:blur(24px) saturate(135%);
  transition:background-color .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.site-header.is-scrolled { background:rgba(19,35,28,.95); box-shadow:0 14px 45px #0a130b38,inset 0 1px #ffffff13; border-color:#ffffff25; }
.site-header .logo img { filter:brightness(0) invert(1); }
.site-header .logo { transition:opacity .3s ease; }
.site-header .logo:hover { opacity:.8; }
.desktop-nav { gap:clamp(14px,1.8vw,31px); }
.desktop-nav a { font:500 11px/1.5 var(--sans); letter-spacing:.02em; transition:color .25s; }
.desktop-nav a:after { bottom:9px; height:1px; background:var(--mrpro-champagne); }
.desktop-nav a:hover,.desktop-nav a[aria-current] { color:#f5dfba; }
.header-actions { gap:14px; }
.header-actions .language-switch { padding:3px; background:#ffffff0c; }
.header-actions .language-switch a { font-size:11px; min-width:36px; min-height:36px; }
.site-header .button { min-height:45px; padding:11px 20px; border-color:#ffffff72; background:#ffffff09; letter-spacing:.085em; }
.site-header .button:hover { background:#ffffff22; color:white; border-color:#ffffffbb; }
.language-switch a[aria-current],.menu nav.language-switch a[aria-current] { background:var(--mrpro-champagne); color:var(--mrpro-pine); border-color:var(--mrpro-champagne); }

/* Hero: full-bleed cinema, graceful text hierarchy, subtle navigation cue. */
.hero { min-height:min(760px,94svh); min-height:clamp(650px,90svh,860px); border-radius:0 0 40px 40px; padding:160px var(--gutter) 100px; background-position:center; isolation:isolate; }
.hero:before { background:linear-gradient(180deg,#12201982 0%,#13211d42 35%,#10201673 79%,#101c19a6 100%); }
.hero:after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(ellipse 60% 65% at 50% 46%,#00000018,transparent 90%); }
.hero-copy { max-width:980px; margin:auto; }
.hero h1 { font-size:clamp(64px,6.5vw,112px); line-height:.96; letter-spacing:-.05em; margin:24px 0; }
.hero h1:after { display:none; }
.hero p:not(.eyebrow) { max-width:540px; margin:0 auto; font:400 clamp(14px,1.2vw,17px)/1.8 var(--sans); color:#fff9eeeb; }
.hero-actions { gap:14px; margin-top:36px; }
.hero .button { border-color:#f5eddd8c; background:#ffffff1c; box-shadow:inset 0 1px #ffffff1a; }
.hero .button:hover { background:#ffffff31; color:white; border-color:#fffaf0; }
.hero-wine-profile .hero-copy h1 { font-size:clamp(70px,9vw,132px); }
.hero-cue { position:absolute; left:50%; bottom:34px; transform:translateX(-50%); z-index:3; display:inline-flex; flex-direction:column; align-items:center; gap:12px; min-height:52px; padding:8px 18px; color:#fff8e5; font:500 9px/1.1 var(--sans); letter-spacing:.22em; text-transform:uppercase; white-space:nowrap; }
.hero-cue__line { display:block; width:1px; height:26px; background:linear-gradient(#eddbba,transparent); transform-origin:top center; transition:height .3s ease; }
.hero-cue:hover .hero-cue__line { height:35px; }
.hero-cue:hover { color:white; }

/* Shared pill and microinteraction language */
.button { min-height:54px; border-radius:999px; padding:14px 27px; font:600 10px/1.3 var(--sans); letter-spacing:.09em; text-transform:uppercase; box-shadow:none; transition:transform .35s var(--mrpro-ease),background .35s,border-color .35s,box-shadow .35s,color .35s; }
.button span { display:inline-flex; align-items:center; justify-content:center; font-size:20px; line-height:1; }
.button:hover { transform:translateY(-2px); box-shadow:0 14px 30px #1a2c1c1c; }
.button.secondary:hover { color:var(--mrpro-white); }
.text-link { font-size:10px; letter-spacing:.085em; text-transform:uppercase; font-weight:600; transition:color .25s; }
.text-link span { font-size:19px; }
.text-link:hover { color:var(--mrpro-garnet); }
.wine-filter { border-radius:999px; padding:14px 22px; background:var(--mrpro-white); border:1px solid var(--mrpro-border); box-shadow:0 4px 16px #24312908; }
.wine-filter:hover { background:#f1ede5; }
.wine-filter.is-active { background:var(--mrpro-pine); color:white; box-shadow:0 7px 24px #15241d24; }
.wine-filter:active,.button:active { transform:scale(.985); }

/* Editorial section rhythm and image treatments */
.editorial-experiences,.editorial-split,.editorial-wines,.visit-information { padding-top:var(--mrpro-spacing); padding-bottom:var(--mrpro-spacing); }
.section-heading { margin-bottom:52px; }
.section-heading h2,.editorial-split h2 { font-size:clamp(43px,4.3vw,76px); }
.section-heading>div { max-width:840px; }
.editorial-split { gap:clamp(32px,6vw,110px); }
.editorial-split>img,.editorial-split figure img,.collection-band>img,.visit-information>img,.pairing-editorial>img,.tasting-notes>img { border-radius:30px; }
.editorial-split figure img,.collection-band>img,.experience>img,.visit-information>img { box-shadow:0 24px 60px #121e161b; }
.editorial-split figure,.editorial-split>div { min-width:0; }
.experience-grid { gap:22px; }
.experience { padding:10px; border:1px solid var(--mrpro-border); border-radius:var(--mrpro-radius-xl); background:#fffcf7; box-shadow:var(--mrpro-card-shadow); overflow:hidden; transition:transform .45s var(--mrpro-ease),box-shadow .45s,border-color .45s; }
.experience>img { border-radius:25px; height:clamp(230px,20vw,310px); }
.experience>div { padding:26px 20px 20px; }
.experience h3 { font-size:clamp(28px,2.5vw,42px); letter-spacing:-.035em; text-transform:none; }
.experience p { font:400 14px/1.8 var(--sans); }
.experience .text-link { margin-top:auto; }
.visit-banner,.terroir-banner,.editorial-cta { overflow:hidden; }
.visit-banner,.terroir-banner { min-height:570px; }
.visit-banner:before,.terroir-banner:before { background:linear-gradient(90deg,#10251ac4,#0d1d15a1 50%,#101b1677); }
.visit-banner h2,.terroir-banner h2 { font-size:clamp(46px,5vw,78px); line-height:1.04; }
.collection-band { gap:clamp(35px,5vw,90px); padding-top:clamp(55px,7vw,115px); padding-bottom:clamp(55px,7vw,115px); background:linear-gradient(132deg,#1c3328,#101c17); }
.collection-band>img { border-radius:30px; }
.collection-band h2,.editorial-cta h2 { font-size:clamp(42px,5.1vw,76px); }
.editorial-cta { padding-top:clamp(70px,8vw,120px); padding-bottom:clamp(70px,8vw,120px); }
.harvest-quote { background:var(--mrpro-white); }
.editorial-journey li { border-radius:25px; border-color:var(--mrpro-border); background:#fffdf8; }
.editorial-journey li .step { width:47px; height:47px; background:#b99b6b1e; color:#876943; }

/* Wines: more tactile, more legible, without inventing bottle art. */
.editorial-wines:has(.wine-collection-grid) { padding-top:clamp(74px,8vw,124px); padding-bottom:clamp(90px,9vw,145px); }
.wine-collection-intro h2 { font-size:clamp(49px,5.3vw,78px); line-height:.98; margin:24px auto; }
.wine-collection-intro>p:not(.eyebrow) { font-size:15px; line-height:1.9; }
.wine-filters { margin-top:38px; margin-bottom:48px; }
.wine-collection-grid { gap:28px; }
.editorial-wines .wine.real-wine { padding:10px; border:1px solid #e5ded1; border-radius:var(--mrpro-radius-xl); box-shadow:var(--mrpro-card-shadow); background:var(--mrpro-white); }
.real-wine .wine-art { border-radius:25px; aspect-ratio:1.18; }
.real-wine .wine-art:after { background:linear-gradient(180deg,#00150975 0%,transparent 44%,#05100975 100%); }
.real-wine .wine-info { padding:30px 21px 24px!important; }
.real-wine .wine-info h2 { font-size:clamp(36px,3.1vw,49px); letter-spacing:-.048em; }
.real-wine .wine-info .wine-grapes { color:#836445; font-size:17px; }
.real-wine .wine-info p { font:400 13px/1.75 var(--sans); }
.real-wine .wine-info .text-link { margin-bottom:22px; }
.real-wine .wine-info .button { margin-top:auto; }
.real-wine .wine-info .button:hover { background:#243c2d; color:#fff; }
.wine-art__type,.wine-art__index { letter-spacing:.12em; }
.real-wine-detail .wine-detail-visual { border-radius:var(--mrpro-radius-xl); box-shadow:0 25px 60px #17241a18; }
.real-wine-detail .wine-detail-body h2 { font-size:clamp(58px,5.4vw,90px); }
.real-wine-detail .wine-detail-body>p:not(.eyebrow):not(.wine-subtitle) { font:400 15px/1.9 var(--sans); }
.wine-next { background:#eee9df; }
.wine-next h2 { font-size:clamp(46px,6vw,78px); }

/* Inputs and hospitality enquiry */
.request-form { padding:clamp(24px,3.5vw,48px); border:1px solid #e7dfd1; background:var(--mrpro-white); box-shadow:var(--mrpro-card-shadow); border-radius:var(--mrpro-radius-xl); }
.request-form h2 { font-size:clamp(34px,3vw,50px); }
input,select,textarea { border-radius:17px; padding:15px 17px; min-height:54px; background:#f5f1e9; border-color:var(--mrpro-border); }
input:focus,select:focus,textarea:focus { outline:2px solid #bb9c6780; outline-offset:1px; background:white; }
.contact-icon { background:#ede6d8; border-color:#e3d7be; color:#7d6545; }
.contact-row { gap:18px; }
.location { border-radius:var(--mrpro-radius-xl); overflow:hidden; }

/* Glass menu: subtle layered light, typographic navigation and restrained entry. */
.menu { border:1px solid #ffffff4d; border-radius:34px; background:linear-gradient(155deg,#ffffff1a,transparent 32%,#ad8f5915),#142820e3; box-shadow:0 34px 110px #0009,inset 0 1px #ffffff2b; -webkit-backdrop-filter:blur(28px) saturate(125%); backdrop-filter:blur(28px) saturate(125%); }
.menu:before { content:''; position:absolute; inset:1px; border-radius:inherit; background:radial-gradient(ellipse at 40% 0,#d2b58115,transparent 50%); pointer-events:none; }
.menu nav:not(.language-switch) a { font-weight:400; line-height:1.2; transition:background .3s,color .3s,border-color .3s; }
.menu nav:not(.language-switch) a:hover { background:#ffffff13; }
.menu .menu-close { font:300 30px/1 var(--sans); border-radius:50%; }
.menu .button { min-height:52px; }
.menu nav.language-switch a { min-height:42px; }
.menu-signature { color:#e4d3b4; font:500 10px/1.7 var(--typewriter); letter-spacing:.07em; opacity:.78; }

/* Footer: confident restrained brand finish, centered on all screen sizes. */
.site-footer { background:#f7f5ef; }
.footer-brand { padding-top:74px; }
.footer-logo { width:186px; }
.footer-main { gap:45px; }
.footer-main h2 { font-size:clamp(27px,2.6vw,39px); }
.footer-main h3 { font-size:clamp(25px,2vw,32px); }
.footer-main p { font:400 13px/1.9 var(--sans); }
.footer-email { border-radius:999px; }
.footer-bottom { border-radius:26px 26px 0 0; padding-top:32px; padding-bottom:32px; background:var(--mrpro-garnet); color:#f7dfdf; }
.footer-bottom a { color:#fff6ea; }
.site-footer .footer-mobile details { background:#fffdf8; }

/* Motion choices honor people and keep the GPU-safe surface still. */
@media(hover:hover) and (pointer:fine) {
  .experience:hover,.editorial-wines .wine.real-wine:hover { transform:translateY(-6px); border-color:#cdb792; box-shadow:var(--mrpro-hover-shadow); }
  .experience>img { transition:filter .6s,transform .8s var(--mrpro-ease); }
  .experience:hover>img { filter:saturate(1.06); }
}
@media(min-width:1101px) {
  .site-header { display:grid; grid-template-columns:minmax(0,1fr) 140px minmax(0,1fr); }
  .site-header .logo { justify-self:center; position:static; transform:none; width:140px; }
  .desktop-nav { justify-self:start; }
  .header-actions { justify-self:end; }
}
@media(max-width:1100px) {
  .site-header { inset:12px 16px auto; height:72px; padding:10px 18px; }
  .site-header .logo { margin-right:auto; width:116px; }
  .site-header .menu-toggle { display:flex; align-items:center; width:45px; height:45px; border:1px solid #ffffff4b; border-radius:50%; background:#ffffff0a; }
  .menu-toggle span { flex-shrink:0; }
  .hero { min-height:clamp(620px,86svh,760px); }
}
@media(max-width:768px) {
  :root { --mrpro-spacing:58px; --mrpro-radius-xl:26px; --mrpro-radius-lg:22px; --gutter:22px; }
  html { scroll-padding-top:88px; }
  .site-header { inset:12px 14px auto; height:70px; padding:9px 15px; }
  .site-header .logo { width:113px; }
  .hero,.hero-home,.hero-degustime,.hero-wine-profile { min-height:clamp(595px,85svh,740px); padding:125px 24px 96px; border-radius:0 0 30px 30px; }
  .hero h1 { font-size:clamp(48px,11.6vw,70px); line-height:1.02; margin:21px 0; }
  .hero-wine-profile .hero-copy h1 { font-size:clamp(54px,12vw,78px); }
  .hero p:not(.eyebrow) { font-size:14px; line-height:1.85; }
  .hero-actions { gap:12px; margin-top:30px; }
  .hero .button { min-height:50px; font-size:10px; padding:12px 20px; }
  .hero-cue { bottom:17px; font-size:8px; }
  .hero-cue__line { height:21px; }
  .section-heading { margin-bottom:32px; }
  .section-heading h2,.editorial-split h2 { font-size:clamp(40px,10vw,58px); }
  .editorial-experiences,.editorial-split,.editorial-wines,.visit-information { padding-block:58px; }
  .experience { padding:9px; border-radius:26px; }
  .experience>img { height:250px; border-radius:19px; }
  .experience>div { padding:23px 16px 18px; }
  .experience h3 { font-size:36px; }
  .visit-banner,.terroir-banner { min-height:480px; }
  .visit-banner h2,.terroir-banner h2 { font-size:47px; }
  .collection-band { gap:28px; padding-block:56px; }
  .collection-band>img { border-radius:22px; width:100%; max-width:100%; margin:0; height:auto; object-fit:cover; }
  .collection-band h2,.editorial-cta h2 { font-size:45px; }
  .wine-collection-intro h2 { font-size:clamp(44px,11vw,58px); }
  .editorial-wines:has(.wine-collection-grid) { padding:66px var(--gutter) 84px; }
  .wine-collection-grid { grid-template-columns:1fr; gap:23px; }
  .editorial-wines .wine.real-wine { padding:9px; border-radius:26px; }
  .real-wine .wine-art { border-radius:18px; }
  .real-wine .wine-info { padding:27px 16px 21px!important; }
  .real-wine .wine-info h2 { font-size:44px; }
  .real-wine-detail .wine-detail-visual { height:360px; border-radius:24px; }
  .real-wine-detail .wine-detail-body h2 { font-size:clamp(52px,11vw,68px); }
  .wine-filters { gap:7px; }
  .wine-filter { min-height:45px; padding:11px 14px; }
  .menu { inset:10px; width:calc(100% - 20px); height:calc(100dvh - 20px); border-radius:27px; padding:62px 19px 30px; }
  .menu[open] { gap:14px; }
  .menu-logo { width:128px; }
  .menu nav:not(.language-switch) { font-size:clamp(31px,9.2vw,38px); gap:2px; }
  .menu nav:not(.language-switch) a { padding:6px 19px; border-radius:14px; }
  .menu-close { top:15px; right:16px; width:46px; height:46px; }
  .footer-brand { padding-top:55px; }
  .footer-main { gap:27px; }
  .footer-bottom { border-radius:22px 22px 0 0; }
  .request-form { padding:24px 20px; }
}
@media(max-width:375px) {
  .menu[open] { gap:9px; }
  .menu nav:not(.language-switch) { font-size:30px; }
  .menu-logo { width:112px; }
  .hero h1 { font-size:46px; }
  .wine-filter { padding:10px 12px; }
}
@media(max-height:660px) and (max-width:1100px) {
  .menu[open] { justify-content:flex-start; gap:8px; }
  .menu-logo { width:100px; }
  .menu nav:not(.language-switch) { font-size:27px; }
  .menu nav:not(.language-switch) a { padding:3px 12px; }
  .menu-signature { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .site-header,.button,.wine-filter,.experience,.wine,.experience>img,.hero-cue__line { transition:none!important; }
}
@media(prefers-reduced-transparency:reduce) {
  .site-header,.menu { -webkit-backdrop-filter:none; backdrop-filter:none; background:#15241d; }
}
/* Responsive editorial line breaks remain intentional when legacy CSS hides <br>. */
.brand-loader { background:radial-gradient(ellipse at 50% 50%,#fffcf6 0%,#f3eee5 100%); }
.brand-loader p { color:#856d4e; font:400 11px/1.6 var(--typewriter); letter-spacing:.14em; }
.loader-rule { background:linear-gradient(90deg,transparent,#b99b6b,transparent); }
@media(max-width:768px) {
 .hero h1 .display-accent { display:block; }
}
