:root {
  --ink: #171311;
  --paper: #f4efe6;
  --paper-2: #ebe2d4;
  --cream: #fffaf0;
  --wine: #681e30;
  --wine-dark: #3e101d;
  --gold: #c99b52;
  --sage: #8c9b82;
  --line: rgba(23, 19, 17, .15);
  --shadow: 0 24px 70px rgba(31, 16, 14, .14);
  --radius: 28px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Segoe UI", Arial, sans-serif; line-height: 1.55; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, label, select, input[type="range"] { cursor: pointer; }

.site-header { position: fixed; z-index: 50; top: 16px; left: 50%; transform: translateX(-50%); width: min(1180px, calc(100% - 32px)); min-height: 70px; padding: 10px 12px 10px 18px; display: flex; align-items: center; justify-content: space-between; gap: 26px; border: 1px solid rgba(255,255,255,.5); border-radius: 22px; background: rgba(244,239,230,.88); box-shadow: 0 12px 35px rgba(37,20,16,.08); backdrop-filter: blur(16px); }
.brand { display: flex; align-items: center; gap: 10px; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: var(--cream); background: var(--wine); font-family: Georgia, serif; font-size: 18px; }
.brand strong, .brand small { display: block; line-height: 1.05; }
.brand strong { font-family: Georgia, serif; font-size: 20px; }
.brand small { margin-top: 5px; color: #705f58; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
nav { display: flex; gap: 30px; font-size: 14px; }
nav a:hover { color: var(--wine); }

.button { display: inline-flex; min-height: 52px; padding: 0 22px; align-items: center; justify-content: center; gap: 20px; border: 0; border-radius: 14px; color: white; background: var(--wine); font-weight: 700; box-shadow: 0 10px 24px rgba(104,30,48,.22); transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); background: var(--wine-dark); }
.button-small { min-height: 46px; padding: 0 18px; font-size: 13px; }
.button-full { width: 100%; }
.text-link { display: inline-flex; gap: 8px; align-items: center; padding-bottom: 3px; border-bottom: 1px solid currentColor; font-weight: 700; }
.eyebrow { margin: 0 0 18px; color: var(--wine); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Georgia, serif; line-height: .98; font-weight: 600; }
h1 { margin-bottom: 28px; font-size: clamp(60px, 8vw, 118px); letter-spacing: -.055em; }
h1 em { color: var(--wine); font-weight: 600; }
h2 { margin-bottom: 24px; font-size: clamp(44px, 5.4vw, 76px); letter-spacing: -.04em; }
h3 { line-height: 1.12; }

.hero { min-height: 860px; padding: 150px max(32px, calc((100vw - 1180px)/2)) 80px; display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: 60px; overflow: hidden; }
.hero-copy { max-width: 690px; }
.hero-lead { max-width: 600px; margin-bottom: 32px; color: #5e504a; font-size: 19px; }
.hero-actions { display: flex; align-items: center; gap: 26px; }
.hero-facts { margin-top: 56px; display: flex; gap: 38px; color: #6c5f59; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.hero-facts strong { display: block; color: var(--ink); font-family: "Playfair Display"; font-size: 25px; letter-spacing: 0; text-transform: none; }

.hero-art { position: relative; min-height: 600px; border-radius: 48% 48% 28px 28px; overflow: hidden; background: radial-gradient(circle at 35% 18%, #d8b878 0 4%, transparent 5%), linear-gradient(145deg, #35121d, #7a263b 58%, #c1835b); box-shadow: var(--shadow); }
.hero-photo { background:#d8cec0; }
.hero-photo-image { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; object-position:center 48%; }
.hero-photo::before { z-index:1; background:linear-gradient(to top, rgba(23,19,17,.34), rgba(23,19,17,.02) 55%); }
.hero-photo .orb, .hero-photo .glass { display:none; }
.visual-status { position:absolute; z-index:3; top:24px; right:24px; padding:7px 10px; border:1px solid rgba(255,255,255,.35); border-radius:100px; color:rgba(255,255,255,.9); background:rgba(23,19,17,.5); backdrop-filter:blur(8px); font-size:9px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.hero-art::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 35%, rgba(255,255,255,.15) 36%, transparent 48%); }
.hero-art::after { content: "LE BU"; position: absolute; left: 7%; top: 6%; color: rgba(255,255,255,.07); font-family: Georgia, serif; font-size: 120px; }
.orb { position: absolute; border-radius: 50%; filter: blur(2px); }
.orb-one { width: 260px; height: 260px; right: -60px; top: 40px; background: rgba(247,195,113,.22); }
.orb-two { width: 180px; height: 180px; left: -50px; bottom: 90px; background: rgba(255,235,203,.1); }
.glass { position: absolute; bottom: 90px; width: 145px; height: 235px; border: 3px solid rgba(255,255,255,.8); border-radius: 10px 10px 60px 60px; transform: rotate(9deg); background: linear-gradient(to top, rgba(238,161,75,.82) 0 58%, transparent 59%); box-shadow: inset 0 0 30px rgba(255,255,255,.18), 0 28px 50px rgba(20,5,8,.3); }
.glass::before { content:""; position:absolute; width:3px; height:125px; background:rgba(255,255,255,.75); bottom:-124px; left:69px; }
.glass::after { content:""; position:absolute; width:95px; height:3px; background:rgba(255,255,255,.75); bottom:-125px; left:22px; }
.glass i { position:absolute; width:90px; height:18px; left:25px; top:80px; border-radius:50%; background:#d47445; transform:rotate(-7deg); }
.glass b { position:absolute; width:38px; height:38px; right:10px; top:15px; border:8px solid #d8d069; border-radius:50%; }
.glass-one { left: 26%; }
.glass-two { right: 17%; bottom: 140px; height: 205px; transform: rotate(-7deg) scale(.82); background: linear-gradient(to top, rgba(220,100,95,.78) 0 62%, transparent 63%); }
.art-card { position: absolute; z-index: 3; left: 26px; right: 26px; bottom: 24px; padding: 20px 22px; border: 1px solid rgba(255,255,255,.22); border-radius: 18px; color: white; background: rgba(35,9,16,.52); backdrop-filter: blur(14px); }
.art-card span, .art-card small, .art-card strong { display: block; }
.art-card span { color: #edc88b; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.art-card strong { margin: 3px 0; font-family: Georgia, serif; font-size: 24px; }
.art-card small { color: rgba(255,255,255,.72); }

.marquee { padding: 18px 0; overflow: hidden; color: var(--paper); background: var(--ink); white-space: nowrap; font-size: 13px; font-weight: 700; letter-spacing: .17em; }
.marquee div { min-width: max-content; animation: slide 24s linear infinite; }
.marquee i { padding: 0 34px; color: var(--gold); }
@keyframes slide { to { transform: translateX(-35%); } }

.section { max-width: 1244px; margin: 0 auto; padding: 120px 32px; }
.split-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; }
.format-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.format-card { min-height: 400px; padding: 32px; display: flex; flex-direction: column; border-radius: var(--radius); }
.format-card h3 { margin: 60px 0 14px; font-family: "Playfair Display"; font-size: 38px; }
.format-card p { color: #655751; }
.light-card { background: var(--paper-2); }
.burgundy-card { color: white; background: var(--wine); transform: translateY(35px); }
.burgundy-card p { color: rgba(255,255,255,.72); }
.day-pill { align-self: flex-start; padding: 7px 11px; border: 1px solid currentColor; border-radius: 100px; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.price-line { margin-top: auto; display: flex; align-items: baseline; gap: 7px; }
.price-line small { display: block; max-width: 42px; line-height: 1.05; }
.price-line strong { font-family: Georgia, serif; font-size: 40px; }
.price-line span { font-size: 11px; }

.offers-section { max-width: none; background: #1d1816; color: var(--cream); }
.offers-section > * { max-width: 1180px; margin-left: auto; margin-right: auto; }
.section-heading { max-width: 760px; text-align: center; }
.section-heading .eyebrow { color: #dbb675; }
.section-heading > p:last-child { color: #a89c95; }
.offer-grid { margin-top: 60px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: stretch; }
.offer-card { position: relative; padding: 30px; border: 1px solid rgba(255,255,255,.12); border-radius: 24px; background: #27211e; }
.offer-card.featured { color: var(--ink); background: var(--cream); transform: translateY(-14px); }
.popular { position: absolute; top: -14px; right: 20px; padding: 8px 12px; border-radius: 100px; color: white; background: var(--wine); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.offer-index { color: #a78c67; font-size: 11px; letter-spacing: .14em; }
.offer-card h3 { margin: 30px 0 4px; font-family: Georgia, serif; font-size: 42px; }
.offer-subtitle { min-height: 50px; color: #a99c96; }
.featured .offer-subtitle { color: #655751; }
.offer-price { margin: 30px 0 22px; padding-bottom: 20px; display: flex; align-items: baseline; gap: 8px; border-bottom: 1px solid rgba(128,110,100,.25); }
.offer-price small { color: #a99c96; }
.offer-price strong { font-family: Georgia, serif; font-size: 40px; }
.offer-price span { font-size: 10px; }
.offer-card ul { min-height: 150px; margin: 0 0 24px; padding: 0; list-style: none; color: #c3b9b4; font-size: 14px; }
.featured ul { color: #564a45; }
.offer-card li { padding: 8px 0; }
.offer-card li::before { content: "✓"; margin-right: 10px; color: var(--gold); }

.place-section { display: grid; grid-template-columns: 1.05fr .95fr; gap: 70px; align-items: center; }
.place-visual { position: relative; min-height: 540px; border-radius: 30px; background: #d9c8af; overflow: hidden; box-shadow: var(--shadow); }
.place-visual::before, .place-visual::after { content:""; position:absolute; border:2px solid rgba(82,49,39,.28); }
.place-visual::before { inset:40px 210px 220px 40px; }
.place-visual::after { inset:260px 40px 40px 170px; }
.room { position:absolute; z-index:2; padding:16px 18px; border-radius:14px; color:white; background:rgba(75,29,39,.88); box-shadow:0 12px 25px rgba(50,20,20,.2); font-family:Georgia, serif; font-size:18px; }
.room small { display:block; margin-top:3px; color:rgba(255,255,255,.7); font-family:"Segoe UI", Arial, sans-serif; font-size:10px; }
.room-main { left:70px; top:90px; }
.room-private { right:70px; bottom:90px; }
.room-terrace { right:40px; top:110px; background:#5b6b55; }
.place-copy > p:not(.eyebrow) { max-width:520px; color:#61544f; font-size:18px; }
.amenity-grid { margin-top:34px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.amenity-grid span { padding:13px 14px; border:1px solid var(--line); border-radius:12px; font-size:13px; }

.photo-section { padding-top:30px; }
.photo-heading { margin-bottom:42px; display:grid; grid-template-columns:1fr .7fr; gap:70px; align-items:end; }
.photo-heading h2 { margin-bottom:0; }
.photo-heading > p { max-width:470px; margin-bottom:6px; color:#695b55; font-size:15px; }
.photo-grid { display:grid; grid-template-columns:1.2fr .8fr; grid-template-rows:repeat(2, 265px); gap:18px; }
.photo-card { position:relative; margin:0; overflow:hidden; border-radius:24px; background:#d8cec0; box-shadow:0 16px 42px rgba(31,16,14,.1); }
.photo-card-wide { grid-row:1 / 3; }
.photo-card img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .5s ease; }
.photo-card .photo-cocktails { object-position:center 64%; }
.photo-card .photo-room { object-position:center 58%; }
.photo-card .photo-karaoke { object-position:center 46%; }
.photo-card:hover img { transform:scale(1.025); }
.photo-card::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent, rgba(23,19,17,.78)); pointer-events:none; }
.photo-card figcaption { position:absolute; z-index:2; left:22px; right:22px; bottom:20px; display:flex; align-items:end; justify-content:space-between; gap:16px; color:white; }
.photo-card figcaption strong { font-family:Georgia, serif; font-size:22px; }
.photo-card figcaption span { padding:5px 8px; border:1px solid rgba(255,255,255,.35); border-radius:100px; color:rgba(255,255,255,.76); font-size:8px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap; }

.config-section { padding: 120px max(24px, calc((100vw - 1180px)/2)); background: #e8ddcc; }
.config-intro { max-width: 700px; }
.config-shell { margin-top: 52px; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(310px,.65fr); gap: 26px; align-items: start; }
.config-form { padding: 12px 34px; border-radius: var(--radius); background: var(--cream); box-shadow: var(--shadow); }
fieldset { margin: 0; padding: 30px 0; border: 0; border-bottom: 1px solid var(--line); }
fieldset:last-child { border-bottom: 0; }
legend { width: 100%; margin-bottom: 22px; font-family: Georgia, serif; font-size: 24px; font-weight: 600; }
legend span { width: 30px; height: 30px; margin-right: 10px; display: inline-grid; place-items: center; border-radius: 50%; color: white; background: var(--wine); font-family: "Segoe UI", Arial, sans-serif; font-size: 11px; }
.choice-grid { display: grid; gap: 10px; }
.choice-grid.compact { grid-template-columns: repeat(4, 1fr); }
.choice-grid.three { grid-template-columns: repeat(3, 1fr); }
.choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice > span { min-height: 52px; padding: 12px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 12px; text-align: center; font-size: 13px; transition: .18s; }
.choice input:checked + span { border-color: var(--wine); color: var(--wine); background: #f4e8e9; box-shadow: inset 0 0 0 1px var(--wine); }
.choice-detail > span { min-height: 78px; flex-direction: column; }
.choice-detail strong, .choice-detail small { display: block; }
.choice-detail small { margin-top: 3px; color: #81736d; font-size: 10px; }
.two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.field { margin-bottom: 14px; display: block; color: #655751; font-size: 12px; font-weight: 600; }
.field input, .field select, .field textarea, select { width: 100%; margin-top: 7px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: white; outline: none; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--wine); box-shadow: 0 0 0 3px rgba(104,30,48,.08); }
.guest-field > div { margin-top: 7px; display: grid; grid-template-columns: 1fr 70px auto; gap: 10px; align-items: center; }
.guest-field input { margin-top: 0; }
.guest-field input[type="range"] { accent-color: var(--wine); }
.context-message { margin-top: 15px; padding: 13px 15px; border-radius: 11px; color: #4b413d; background: #eee4d5; font-size: 13px; }
.toggle-row { margin-top: 10px; padding: 12px; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; border: 1px solid var(--line); border-radius: 11px; }
.toggle-row small { grid-column: 2; color: #756862; }
.option-list { margin-bottom: 18px; display: grid; gap: 8px; }
.option-list label { padding: 13px; display: grid; grid-template-columns: auto 1fr auto; gap: 11px; align-items: center; border: 1px solid var(--line); border-radius: 11px; }
.option-list input { accent-color: var(--wine); }
.option-list span strong, .option-list span small { display: block; }
.option-list span strong { font-size: 13px; }
.option-list span small { color: #7a6d67; font-size: 10px; }
.option-list b { color: var(--wine); font-size: 12px; }

.estimate-card { position: sticky; top: 105px; padding: 28px; border-radius: var(--radius); color: white; background: var(--wine-dark); box-shadow: var(--shadow); }
.estimate-kicker { color: #d8b674; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.estimate-card h3 { margin-bottom: 6px; font-family: Georgia, serif; font-size: 32px; }
.estimate-space { color: rgba(255,255,255,.65); font-size: 13px; }
.estimate-price { margin: 30px 0 9px; display: flex; align-items: baseline; gap: 8px; }
.estimate-price strong { font-family: Georgia, serif; font-size: 56px; }
.estimate-price span { color: rgba(255,255,255,.6); font-size: 11px; }
.estimate-per-person { margin:-4px 0 12px; color:#e4c486; font-size:14px; font-weight:700; }
.status-badge { display:inline-block; padding:6px 9px; border-radius:100px; color:#dff2da; background:rgba(118,171,98,.18); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
.estimate-card ul { margin: 24px 0; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); list-style: none; font-size: 13px; }
.estimate-card li { padding: 5px 0; color: rgba(255,255,255,.8); }
.estimate-card li::before { content: "✓"; margin-right: 9px; color: #d8b674; }
.estimate-card .button { background: var(--cream); color: var(--wine-dark); box-shadow: none; }
.estimate-card > small { margin-top: 14px; display: block; color: rgba(255,255,255,.5); font-size: 10px; text-align: center; }
.estimate-alert { margin: 0 0 16px; padding: 12px; border-radius: 10px; color: #ffe7b7; background: rgba(212,151,55,.16); font-size: 12px; }
.mobile-live-estimate { display:none; }
.hidden { display: none !important; }

.process-section { text-align: center; }
.process-grid { margin-top: 42px; display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; text-align: left; }
.process-grid article { padding: 28px; border-top: 1px solid var(--ink); }
.process-grid span { color: var(--wine); font-size: 11px; }
.process-grid h3 { margin: 42px 0 10px; font-family: Georgia, serif; font-size: 27px; }
.process-grid p { color: #695b55; font-size: 14px; }

.contact-section { padding: 110px max(32px, calc((100vw - 1180px)/2)); display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; color:white; background:var(--wine); }
.contact-section .eyebrow { color:#e4c486; }
.contact-section > div p:last-child { color:rgba(255,255,255,.7); }
.contact-section form { padding:28px; border-radius:22px; color:var(--ink); background:var(--cream); }
.consent { margin:8px 0 20px; display:flex; gap:9px; color:#746761; font-size:11px; }
.consent input { accent-color:var(--wine); }
.form-feedback { margin:12px 0 0; color:var(--wine); font-size:12px; }

footer { padding: 48px max(32px, calc((100vw - 1180px)/2)); display: grid; grid-template-columns: 1fr auto; gap: 25px; align-items: center; color: #b9aca5; background: var(--ink); font-size: 12px; }
.footer-brand { color:var(--cream); }
footer p { margin:0; }
footer div { display:flex; gap:20px; }
footer > small { grid-column:1/-1; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); }

@media (max-width: 980px) {
  nav { display:none; }
  .hero { grid-template-columns:1fr; padding-top:140px; }
  .hero-copy { max-width:none; }
  .hero-art { min-height:500px; }
  .split-section, .place-section, .contact-section { grid-template-columns:1fr; }
  .photo-heading { grid-template-columns:1fr; gap:10px; }
  .format-grid { max-width:760px; }
  .offer-grid { grid-template-columns:1fr; }
  .offer-card.featured { transform:none; }
  .config-shell { grid-template-columns:1fr; }
  .estimate-card { position:static; }
  .config-form { order:1; }
  .estimate-card { order:2; }
  .config-form { padding-bottom:82px; }
  .mobile-live-estimate { position:fixed; z-index:45; left:14px; right:14px; bottom:12px; width:calc(100% - 28px); min-height:66px; padding:10px 12px 10px 18px; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid rgba(255,255,255,.18); border-radius:17px; color:white; background:rgba(62,16,29,.96); box-shadow:0 15px 38px rgba(32,10,17,.3); backdrop-filter:blur(14px); opacity:0; pointer-events:none; transform:translateY(22px); transition:opacity .2s, transform .2s; }
  .mobile-live-estimate.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }
  .mobile-live-estimate span { display:block; text-align:left; }
  .mobile-live-estimate small, .mobile-live-estimate strong, .mobile-live-estimate em { display:block; }
  .mobile-live-estimate small { margin-bottom:1px; color:rgba(255,255,255,.62); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
  .mobile-live-estimate strong { font-family:Georgia,serif; font-size:22px; line-height:1.1; }
  .mobile-live-estimate em { margin-top:2px; color:#e4c486; font-size:10px; font-style:normal; font-weight:700; }
  .mobile-live-estimate b { padding:10px 12px; border-radius:11px; color:var(--wine-dark); background:var(--cream); font-size:11px; white-space:nowrap; }
  .mobile-live-estimate i { margin-left:5px; font-style:normal; }
}

@media (max-width: 650px) {
  .site-header { top:8px; width:calc(100% - 16px); }
  .site-header .brand small { display:none; }
  .site-header .button { min-height:42px; padding:0 12px; font-size:11px; }
  .hero { min-height:auto; padding:125px 20px 60px; gap:40px; }
  .hero-lead { font-size:16px; }
  .hero-facts { gap:18px; justify-content:space-between; }
  .hero-facts strong { font-size:21px; }
  .hero-art { min-height:420px; }
  .glass { transform:scale(.72) rotate(9deg); }
  .glass-one { left:18%; }
  .glass-two { right:8%; transform:scale(.62) rotate(-7deg); }
  .section { padding:80px 20px; }
  .split-section { gap:30px; }
  .format-grid { grid-template-columns:1fr; }
  .burgundy-card { transform:none; }
  .format-card { min-height:330px; }
  .place-visual { min-height:420px; }
  .photo-grid { grid-template-columns:1fr; grid-template-rows:360px 280px 280px; }
  .photo-card-wide { grid-row:auto; }
  .photo-card figcaption { align-items:flex-start; flex-direction:column; gap:6px; }
  .room { font-size:14px; }
  .room-main { left:25px; }
  .room-private { right:25px; }
  .room-terrace { right:20px; top:155px; }
  .config-section { padding:80px 14px; }
  .config-form { padding:8px 18px; }
  .choice-grid.compact, .choice-grid.three { grid-template-columns:1fr 1fr; }
  .two-cols { grid-template-columns:1fr; }
  .process-grid { grid-template-columns:1fr; }
  .contact-section { padding:80px 20px; gap:30px; }
  footer { grid-template-columns:1fr; }
  footer div { flex-wrap:wrap; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .marquee div { animation:none; }
  * { transition:none !important; }
}
