@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--bg:#f7f7f5;--paper:#fff;--ink:#161616;--muted:#6f6f6b;--line:#e4e4df;--dark:#151515;--soft:#efefeb;--green:#52604c}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;line-height:1.5}a{text-decoration:none;color:inherit}.shell{width:min(1180px,calc(100% - 48px));margin:auto}.nav-wrap{position:sticky;top:0;z-index:20;background:rgba(247,247,245,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(0,0,0,.06)}.nav{height:76px;display:flex;align-items:center;gap:34px}.brand{width:160px}.brand img{width:100%;height:60px;object-fit:contain;filter:grayscale(1);mix-blend-mode:multiply}.nav-links{display:flex;gap:25px;margin-left:auto;font-size:13px;color:#555}.nav-links a:hover{color:#000}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 22px;border:1px solid transparent;font-weight:600;font-size:13px;transition:.2s}.btn-dark{background:var(--dark);color:#fff}.btn-dark:hover{transform:translateY(-1px);background:#292929}.btn-light{background:#fff;border-color:var(--line)}.nav-cta{margin-left:5px}.hero{min-height:650px;display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center;padding:70px 0}.eyebrow,.section-label{font-size:11px;letter-spacing:.16em;color:#777;font-weight:600}.hero h1{font-size:clamp(48px,6vw,78px);line-height:1.03;letter-spacing:-.055em;margin:18px 0}.hero h1 em,h2 em{font-family:"Playfair Display",serif;font-weight:500}.hero p{font-size:18px;max-width:520px;color:var(--muted);margin:0 0 28px}.hero-actions{display:flex;align-items:center;gap:22px}.text-link{font-size:13px;font-weight:600}.hero-card{height:540px;border-radius:34px;overflow:hidden;background:linear-gradient(145deg,#ddd,#9d9d94);box-shadow:0 25px 60px rgba(0,0,0,.12)}.hero-image{height:100%;position:relative;background:radial-gradient(circle at 65% 20%,#e7e6df 0 10%,transparent 28%),linear-gradient(145deg,#cfcfc7 0%,#9a9a90 55%,#66675f 100%)}.hero-image:before{content:"";position:absolute;inset:28% -10% -5% 0;background:linear-gradient(160deg,transparent 15%,#777b6f 16% 38%,#4f554b 39% 64%,#3d433c 65%);clip-path:polygon(0 25%,30% 8%,55% 35%,76% 13%,100% 35%,100% 100%,0 100%)}.image-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.5))}.hero-badge{position:absolute;bottom:28px;left:28px;color:#fff;font-size:12px}.hero-badge strong{font-size:16px}.section{padding:120px 0}.intro{display:grid;grid-template-columns:230px 1fr;gap:40px}.intro h2,.booking-intro h2{font-size:clamp(40px,5vw,65px);line-height:1.05;letter-spacing:-.045em;max-width:750px;margin:0 0 22px}.lead{font-size:20px;color:var(--muted);max-width:780px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:70px}.feature-grid article{border-top:1px solid var(--line);padding-top:20px}.feature-grid span{font-size:11px;color:#999}.feature-grid h3{margin:16px 0 7px;font-size:17px}.feature-grid p{margin:0;color:var(--muted);font-size:14px}.dark-section{background:#171816;color:#fff}.experience{display:grid;grid-template-columns:230px 1fr;gap:40px}.experience .section-label{color:#8f918a}.experience h2{font-size:clamp(42px,5vw,70px);line-height:1.02;letter-spacing:-.045em;margin:0 0 25px}.experience p{color:#b7b9b2;max-width:650px;font-size:18px}.light-link{display:inline-block;margin-top:18px;font-size:13px}.gallery-grid{margin-top:40px;display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:260px 260px;gap:14px}.gallery-placeholder{background:linear-gradient(135deg,#deded8,#9b9d92);border-radius:20px;display:flex;align-items:flex-end;padding:20px;color:#fff;font-size:13px;overflow:hidden}.gallery-placeholder.tall{grid-row:span 2;background:linear-gradient(150deg,#bfc1b8,#61675c)}.gallery-placeholder.wide{background:linear-gradient(135deg,#d2d0c4,#77796e)}.small-note{color:#999;font-size:12px}.booking-section{background:#f1f1ed;max-width:none;padding-left:max(24px,calc((100% - 1180px)/2));padding-right:max(24px,calc((100% - 1180px)/2))}.booking-intro{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:25px}.booking-intro p{color:var(--muted);font-size:17px}.availability-demo{margin-top:50px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;max-width:720px}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.icon-btn{border:0;background:#f3f3ef;border-radius:50%;width:38px;height:38px;font-size:22px;cursor:pointer}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar div{min-height:44px;display:grid;place-items:center;border-radius:12px;font-size:12px}.calendar .dow{color:#999;font-weight:600}.calendar .day{cursor:pointer}.calendar .day:hover{background:#efefeb}.calendar .blocked{background:#222;color:#fff}.legend{display:flex;gap:20px;margin-top:20px;color:#777;font-size:11px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#c9c9c3;margin-right:6px}.dot.blocked{background:#222}.reservation{display:grid;grid-template-columns:1fr 1fr;gap:80px}.reservation h2{font-size:clamp(42px,5vw,68px);line-height:1.02;letter-spacing:-.045em;margin:20px 0}.reservation-copy>p{color:var(--muted);font-size:17px;max-width:520px}.privacy-note{margin-top:45px;padding:20px;border-left:2px solid #bbb;color:#777;font-size:12px}.booking-form{background:#fff;border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:0 18px 50px rgba(0,0,0,.05)}label{display:block;font-size:12px;font-weight:600;margin-bottom:17px}input,select,textarea{width:100%;margin-top:7px;border:1px solid var(--line);background:#fafaf8;border-radius:13px;padding:13px 14px;font:inherit;font-size:14px;outline:none}input:focus,select:focus,textarea:focus{border-color:#999}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.price-card{background:#f2f2ee;border-radius:16px;padding:15px;display:flex;justify-content:space-between;margin:4px 0 18px}.price-card div{display:flex;flex-direction:column}.price-card span{font-size:10px;color:#888}.price-card strong{font-size:18px}.full{width:100%}.form-note{font-size:10px;color:#999;text-align:center;margin:12px 0 0}.cta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line)}.cta h2{font-size:45px;letter-spacing:-.04em;margin:10px 0}.cta-actions{display:flex;gap:10px}.footer-contact{background:#151615;color:#fff;padding:70px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer-logo{width:170px;filter:invert(1) grayscale(1);margin-bottom:12px}.footer-grid p,.footer-grid a{display:block;color:#a8aaa3;font-size:13px;margin:6px 0}.footer-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#777}.copyright{border-top:1px solid #2e302d;margin-top:55px;padding-top:18px;color:#666;font-size:10px}.chat-toggle{position:fixed;right:25px;bottom:25px;z-index:40;border:0;width:54px;height:54px;border-radius:50%;background:#151515;color:#fff;font-size:20px;box-shadow:0 10px 25px rgba(0,0,0,.2);cursor:pointer}.chat{position:fixed;right:25px;bottom:90px;width:340px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 25px 60px rgba(0,0,0,.18);z-index:40;display:none;overflow:hidden}.chat.open{display:block}.chat-head{padding:17px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.chat-head button{border:0;background:none;font-size:20px;cursor:pointer}.chat-body{padding:18px}.bot-msg{background:#f2f2ee;border-radius:14px;padding:12px;font-size:13px;margin-bottom:12px}.quick-actions{display:flex;flex-wrap:wrap;gap:7px}.quick-actions button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 10px;font-size:11px;cursor:pointer}.user-msg{background:#151515;color:#fff;border-radius:14px;padding:10px;margin:8px 0 8px 40px;font-size:12px}.bot-answer{font-size:12px;padding:8px 0;color:#555}.bot-answer a{text-decoration:underline}
@media(max-width:800px){.nav-links{display:none}.hero{grid-template-columns:1fr;padding:50px 0}.hero-card{height:380px}.intro,.experience,.reservation,.booking-intro{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr;grid-template-rows:260px 180px 180px 180px}.gallery-placeholder.tall{grid-row:auto}.footer-grid{grid-template-columns:1fr 1fr}.cta{display:block}.cta-actions{margin-top:20px}.form-row{grid-template-columns:1fr}.chat{right:15px;left:15px;width:auto}.nav-cta{display:none}.section{padding:85px 0}}

/* Calendario de disponibilidad: distribución estable en ventanas estrechas y amplias */
.booking-section{display:block!important;width:100%;min-width:0;overflow:visible}
.booking-intro{grid-template-columns:minmax(0,1fr) minmax(220px,.55fr);align-items:start}
.availability-demo{width:100%;max-width:860px;min-width:0;margin:48px auto 0;padding:clamp(16px,3vw,30px);border-radius:28px;box-shadow:0 16px 44px rgba(22,24,20,.055)}
.calendar{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:clamp(3px,.7vw,8px);width:100%;min-width:0}
.calendar>div{min-width:0;min-height:clamp(38px,5vw,64px);border-radius:14px;font-size:clamp(11px,1vw,13px)}
.calendar .day{border:1px solid transparent;transition:background .16s,border-color .16s,transform .16s}
.calendar .day:hover{background:#e8e9e3;border-color:#d4d7ce;transform:translateY(-1px)}
.calendar .day.blocked{background:#252623;color:#fff;cursor:not-allowed;opacity:.78}
.calendar .day.past{opacity:.28;cursor:not-allowed}
.calendar .day.range-start,.calendar .day.range-end{background:#1b1c19;color:#fff;border-radius:14px;font-weight:700}
.calendar .day.in-range{background:#e6e8df;border-radius:8px}
.calendar-hint{margin:18px 0 0;color:#777;font-size:12px}
.calendar-head{gap:16px;justify-content:flex-start}
.calendar-head strong{flex:1;text-align:center}
.calendar-blank{pointer-events:none}
@media(max-width:760px){.booking-intro{grid-template-columns:1fr;gap:12px}.availability-demo{margin-top:28px}.calendar>div{min-height:38px}.reservation{grid-template-columns:1fr;gap:32px}.booking-form{padding:22px}}

/* ===== Rediseño v4 ===== */
.hero-full{position:relative;min-height:calc(100vh - 76px);display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:var(--hero-img,none),linear-gradient(180deg,#262626 0%,#171717 55%,#101010 100%)}
.hero-bg:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.28)}
.hero-inner{position:relative;z-index:1;padding:0 24px;max-width:760px}
.hero-logo{width:min(300px,62vw);height:auto;margin-bottom:18px}
.hero-full h1{font-size:clamp(40px,6vw,72px);line-height:1.05;letter-spacing:-.04em;margin:0 0 14px}
.hero-full p{font-size:18px;opacity:.9;margin:0 0 28px}
.hero-full .btn-light{background:#fff;color:#161616;padding:15px 34px}
.book-title{font-size:clamp(34px,4.5vw,54px);letter-spacing:-.04em;margin:8px 0 22px}
.steps{display:flex;gap:10px;list-style:none;padding:0;margin:0 0 28px;flex-wrap:wrap}
.steps li{padding:8px 16px;border-radius:999px;border:1px solid var(--line);font-size:13px;color:var(--muted)}
.steps li.on{background:var(--dark);color:#fff;border-color:var(--dark)}
.book-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:24px;margin-bottom:20px}
.panel h3{margin:0 0 14px;font-size:17px}
.summary{position:sticky;top:96px}
.summary dl{margin:0 0 14px}.summary dl div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.summary dt{color:var(--muted)}.summary dd{margin:0;font-weight:600}.summary .hl dd{color:var(--ink)}
.empty{color:var(--muted);font-size:14px;margin:0 0 14px}
.accept{display:flex;gap:8px;font-size:13px;margin:6px 0 14px;align-items:flex-start}.accept a{text-decoration:underline}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.policies details{border-top:1px solid var(--line);padding:16px 0}.policies summary{cursor:pointer;font-weight:600}
.policies p{color:var(--muted);margin:10px 0 0;max-width:760px}
.pending{background:#fff4d6;color:#7a5a00;border-radius:6px;padding:1px 6px;font-size:13px}
@media(max-width:900px){.book-layout{grid-template-columns:1fr}.summary{position:static}}

.brand img{filter:none;mix-blend-mode:normal;object-fit:contain}
.summary .accept{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;font-size:13px;line-height:1.45}
.summary .accept input{width:auto;min-width:16px;height:16px;margin:2px 0 0;padding:0;flex:none}
.summary .accept a{display:inline;font-weight:600}

/* ===== Políticas destacadas ===== */
.policy-callout{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--dark);border-radius:18px;padding:24px 26px;margin:0 0 20px;max-width:860px}
.policy-callout h3{margin:0 0 10px;font-size:19px;letter-spacing:-.01em}
.policy-callout p{color:var(--ink);margin:0;max-width:none}
.policy-callout ul{margin:12px 0 0;padding-left:20px;color:var(--ink);font-size:15px}
.policy-callout li{margin:6px 0}
.policy-callout.danger{background:var(--dark);color:#fff;border-left-color:#000}
.policy-callout.danger h3,.policy-callout.danger p{color:#fff}
.policy-callout.danger .pending{background:#fff4d6;color:#7a5a00}
.policy-callout.danger strong{text-decoration:underline;text-underline-offset:3px}
.policy-callout strong{font-weight:700}
