:root {
  --vinno-forest: #1d2b21;
  --vinno-deep: #101a14;
  --vinno-wine: #651d2c;
  --vinno-sand: #e9dfc5;
  --vinno-paper: #f8f6f0;
  --vinno-gold: #c8a86a;
  --vinno-ink: #332b24;
  --vinno-muted: #716a61;
  --vinno-serif: 'Playfair Display', Georgia, serif;
  --vinno-sans: 'DM Sans', Arial, sans-serif;
}

.vinno-page { background: var(--vinno-paper); color: var(--vinno-ink); font-family: var(--vinno-sans); overflow-x: hidden; }
.vinno-page main { overflow: hidden; }
.vinno-page .wrap { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.vinno-page h1, .vinno-page h2, .vinno-page h3 { color: var(--vinno-ink); font-family: var(--vinno-serif); font-weight: 500; letter-spacing: -.035em; line-height: 1.08; }
.vinno-page .eyebrow { color: var(--vinno-wine); font-size: .72rem; font-weight: 600; letter-spacing: .22em; margin: 0 0 18px; text-transform: uppercase; }
.vinno-page .eyebrow--light { color: var(--vinno-sand); }
.vinno-page .eyebrow--gold { color: var(--vinno-gold); }

/* Hero */
.vinno-page .hero { align-items: center; color: #fff; display: flex; min-height: 760px; overflow: hidden; position: relative; }
.vinno-page .hero > img, .vinno-page .closing > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.vinno-page .hero > img { animation: vinno-kenburns 18s ease-out both; }
.vinno-page .hero__shade, .vinno-page .closing__shade { background: linear-gradient(90deg, rgba(10, 20, 13, .82), rgba(10, 20, 13, .17) 72%), linear-gradient(0deg, rgba(10, 20, 13, .45), transparent 55%); inset: 0; position: absolute; }
.vinno-page .hero__content, .vinno-page .closing__content { margin-left: clamp(24px, 11vw, 180px); max-width: 700px; position: relative; z-index: 1; }
.vinno-page .hero__content { animation: vinno-up .9s .15s both cubic-bezier(.22, 1, .36, 1); padding-top: 90px; }
.vinno-page .hero h1 { color: #fff; font-size: clamp(3.4rem, 2.4vw, 6.5rem); margin: 0 0 25px; }
.vinno-page .hero__text { color: rgba(255, 255, 255, .9); font-size: 1.08rem; margin-bottom: 34px; max-width: 520px; }
.vinno-page .button { align-items: center; border: 1px solid; display: inline-flex; font-size: .72rem; font-weight: 600; gap: 18px; letter-spacing: .16em; overflow: hidden; padding: 15px 20px; position: relative; text-decoration: none; text-transform: uppercase; transition: color .3s ease, border-color .3s ease, transform .3s ease; }
.vinno-page .button::before { background: rgba(255,255,255,.16); content: ''; height: 160%; left: -125%; position: absolute; top: -30%; transform: skewX(-22deg); transition: left .55s ease; width: 55%; }
.vinno-page .button:hover { color: #fff; transform: translateY(-3px); }.vinno-page .button:hover::before { left: 145%; }
.vinno-page .button--light { border-color: rgba(255,255,255,.75); color: #fff; }
.vinno-page .hero__signature { bottom: 32px; color: #fff; font-size: 1rem; font-weight: 600; letter-spacing: .2em; position: absolute; right: 5vw; z-index: 1; }.vinno-page .hero__signature span { font-family: var(--vinno-serif); font-size: .85rem; font-style: italic; letter-spacing: 0; }

/* Narrative */
.vinno-page .intro { background: var(--vinno-sand); padding: 135px 0; position: relative; }.vinno-page .intro::after { background: var(--vinno-wine); content: ''; height: 84px; opacity: .75; position: absolute; right: 8vw; top: 0; width: 1px; }
.vinno-page .intro__grid { align-items: start; display: grid; gap: 10vw; grid-template-columns: 1fr 1fr; }.vinno-page .intro h2, .vinno-page .section-heading h2, .vinno-page .destination h2 { font-size: clamp(2.5rem, 4vw, 4.45rem); margin: 0; }.vinno-page .intro__copy { color: #4a433a; font-size: 1.1rem; padding-top: 18px; }.vinno-page .intro__copy p + p { margin-top: 24px; }
.vinno-page .destination { background: var(--vinno-forest); color: #fff; display: grid; grid-template-columns: 1.07fr .93fr; }.vinno-page .destination__image { min-height: 620px; overflow: hidden; }.vinno-page .destination__image img { height: 100%; object-fit: cover; transition: transform 1.1s cubic-bezier(.2,.8,.2,1); width: 100%; }.vinno-page .destination:hover img { transform: scale(1.05); }.vinno-page .destination__content { padding: clamp(58px, 8vw, 145px) clamp(32px, 8vw, 130px); }.vinno-page .destination h2 { color: #fff; margin-bottom: 28px; }.vinno-page .destination__content > p:not(.eyebrow) { color: rgba(255,255,255,.76); }.vinno-page .destination__facts { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 38px; }.vinno-page .destination__facts span, .vinno-page .amenity-list span { border: 1px solid rgba(255,255,255,.25); font-size: .7rem; letter-spacing: .11em; padding: 8px 12px; text-transform: uppercase; }
.vinno-page .numbers { background: var(--vinno-wine); color: #fff; overflow: hidden; padding: 68px 0; position: relative; }.vinno-page .numbers::before { border: 1px solid rgba(255,255,255,.08); border-radius: 50%; content: ''; height: 350px; position: absolute; right: -80px; top: -190px; width: 350px; }.vinno-page .numbers__grid { display: grid; gap: 24px; grid-template-columns: repeat(4, 1fr); }.vinno-page .numbers strong { color: var(--vinno-sand); display: block; font: 500 clamp(2.3rem, 3.4vw, 3.8rem)/1 var(--vinno-serif); }.vinno-page .numbers span { color: rgba(255,255,255,.72); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; }

/* Experiences */
.vinno-page .experiences { background: var(--vinno-paper); padding: 130px 0 85px; }.vinno-page .section-heading { margin-bottom: 65px; margin-left: clamp(24px, 11vw, 180px); max-width: 810px; }.vinno-page .section-heading h2 { margin-bottom: 22px; }.vinno-page .section-heading > p:last-child { color: var(--vinno-muted); max-width: 570px; }.vinno-page .experience-grid { display: grid; gap: 22px; grid-template-columns: 1.2fr .8fr; margin: auto; width: min(1400px, calc(100% - 48px)); }.vinno-page .experience { color: #fff; min-height: 420px; overflow: hidden; position: relative; }.vinno-page .experience--large { grid-row: span 2; min-height: 862px; }.vinno-page .experience img { height: 100%; inset: 0; object-fit: cover; position: absolute; transition: transform .85s cubic-bezier(.2,.8,.2,1); width: 100%; }.vinno-page .experience::after { background: linear-gradient(0deg, rgba(4,10,6,.82), transparent 64%); content: ''; inset: 0; position: absolute; transition: opacity .45s ease; }.vinno-page .experience:hover img { transform: scale(1.055); }.vinno-page .experience:hover::after { opacity: .78; }.vinno-page .experience div { bottom: 31px; left: 32px; position: absolute; right: 22px; z-index: 1; }.vinno-page .experience p { color: var(--vinno-sand); font-size: .7rem; letter-spacing: .16em; margin-bottom: 7px; text-transform: uppercase; }.vinno-page .experience h3 { color: #fff; font-size: clamp(1.65rem, 2.5vw, 2.6rem); margin: 0; }.vinno-page .amenity-list { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; padding-top: 60px; }.vinno-page .amenity-list span { border-color: #d5cec0; color: var(--vinno-muted); transition: background .25s ease, color .25s ease, transform .25s ease; }.vinno-page .amenity-list span:hover { background: var(--vinno-forest); color: #fff; transform: translateY(-3px); }

/* Units */
.vinno-page .units { background: #fff; padding: 130px 0; }.vinno-page .section-heading--center { margin-left: auto; text-align: center; }.vinno-page .tabs__controls { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 42px; }.vinno-page .tabs__controls button { background: transparent; border: 1px solid #d8d4c9; color: var(--vinno-ink); cursor: pointer; font: 600 .72rem var(--vinno-sans); letter-spacing: .1em; padding: 12px 20px; text-transform: uppercase; transition: background .25s ease, color .25s ease, transform .25s ease; }.vinno-page .tabs__controls button:hover, .vinno-page .tabs__controls button.active { background: var(--vinno-forest); border-color: var(--vinno-forest); color: #fff; transform: translateY(-2px); }.vinno-page .unit-panel { align-items: center; animation: vinno-up .45s both ease-out; background: var(--vinno-paper); display: grid; gap: 7vw; grid-template-columns: 1.05fr .95fr; padding: clamp(26px, 5vw, 72px); }.vinno-page .unit-panel img { max-height: 460px; object-fit: contain; width: 100%; }.vinno-page .unit-panel h3 { font-size: clamp(2.1rem, 3.2vw, 3.5rem); margin-bottom: 23px; }.vinno-page .unit-panel > div > p:not(.eyebrow) { color: var(--vinno-muted); font-size: 1.04rem; }.vinno-page .text-link { color: var(--vinno-wine); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }.vinno-page .text-link span { display: inline-block; font-size: 1.2rem; margin-left: 9px; transition: transform .25s ease; }.vinno-page .text-link:hover span { transform: translateX(7px); }

.vinno-page .closing { align-items: center; color: #fff; display: flex; min-height: 620px; overflow: hidden; position: relative; }.vinno-page .closing > img { transition: transform 1.2s ease; }.vinno-page .closing:hover > img { transform: scale(1.04); }.vinno-page .closing__content { z-index: 1; }.vinno-page .closing h2 { color: #fff; font-size: clamp(3.2rem, 5vw, 5.5rem); margin-bottom: 28px; }

@keyframes vinno-kenburns { from { transform: scale(1.04); } to { transform: scale(1.13); } }
@keyframes vinno-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 991px) { .vinno-page .hero { min-height: 680px; }.vinno-page .intro__grid, .vinno-page .destination, .vinno-page .unit-panel { gap: 30px; grid-template-columns: 1fr; }.vinno-page .destination__image { min-height: 420px; }.vinno-page .numbers__grid { grid-template-columns: repeat(2, 1fr); }.vinno-page .experience-grid { grid-template-columns: 1fr; }.vinno-page .experience, .vinno-page .experience--large { grid-row: auto; min-height: 450px; } }
@media (max-width: 767px) { .vinno-page .wrap { width: calc(100% - 32px); }.vinno-page .hero { min-height: 650px; }.vinno-page .hero__content, .vinno-page .closing__content { margin-left: 24px; margin-right: 24px; }.vinno-page .hero__signature { display: none; }.vinno-page .intro, .vinno-page .experiences, .vinno-page .units { padding: 82px 0; }.vinno-page .intro::after { display: none; }.vinno-page .destination__image { min-height: 330px; }.vinno-page .destination__content { padding: 70px 24px; }.vinno-page .section-heading { margin-left: 24px; margin-right: 24px; }.vinno-page .experience-grid { width: calc(100% - 32px); }.vinno-page .experience, .vinno-page .experience--large { min-height: 390px; }.vinno-page .amenity-list { padding-top: 38px; }.vinno-page .unit-panel { padding: 28px; }.vinno-page .numbers { padding: 55px 0; } }
@media (prefers-reduced-motion: reduce) { .vinno-page *, .vinno-page *::before, .vinno-page *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
