:root{--ink:#17241f;--muted:#69736f;--cream:#f5f1e9;--paper:#fffdf9;--gold:#b48c4d;--gold-soft:#e6d6b9;--green:#173d32;--green-2:#285c49;--line:#e2dbcf;--danger:#a93d3d;--ok:#24704d;--shadow:0 20px 55px rgba(25,39,32,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.header{height:84px;padding:0 clamp(20px,6vw,80px);display:flex;align-items:center;justify-content:space-between;background:var(--green);color:#fff}.brand{display:flex;align-items:center;gap:12px;font:400 20px Georgia,serif}.brand span{width:42px;height:42px;border:1px solid #d6b978;border-radius:50%;display:grid;place-items:center;color:#e4c98e}.header-nav{display:flex;align-items:center;gap:18px}.header-nav a{font-size:13px;color:rgba(255,255,255,.78)}.header-nav .guest{color:#e2c788}.hero{padding:70px clamp(20px,7vw,100px) 44px;background:radial-gradient(circle at 78% 20%,rgba(182,142,78,.19),transparent 34%),linear-gradient(135deg,#f7f3eb,#efe7d8)}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:#8a6734;font-size:11px;font-weight:800}.hero h1{max-width:850px;margin:15px 0 20px;font:400 clamp(44px,6vw,78px)/1.03 Georgia,serif}.hero p:not(.eyebrow){max-width:650px;color:var(--muted);font-size:17px;line-height:1.65}.steps{display:flex;gap:10px;margin-top:30px}.step{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.step i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e2dacd;font-style:normal;font-weight:800}.step.active{color:var(--green);font-weight:800}.step.active i{background:var(--green);color:#fff}.layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:24px;padding:30px clamp(20px,7vw,100px) 70px;align-items:start}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 30px rgba(30,42,36,.05)}.calendar-card{padding:26px}.card-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.card-title h2{font:400 29px Georgia,serif;margin:6px 0 0}.month-nav{display:flex;align-items:center;gap:10px}.month-nav button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--green);font-size:22px}.month-title{min-width:160px;text-align:center;font-weight:800;text-transform:capitalize}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays span{text-align:center;padding:8px 0 12px;color:var(--muted);font-size:11px;text-transform:uppercase;font-weight:800}.day{position:relative;min-height:68px;border:1px solid transparent;border-radius:10px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ink)}.day:hover:not(:disabled){border-color:var(--gold);background:#fbf7ef}.day.outside{visibility:hidden}.day:disabled{color:#b6b6b2;cursor:not-allowed;text-decoration:line-through}.day .number{font-weight:800}.day .price{font-size:9px;color:var(--muted)}.day.available:after{content:"";width:5px;height:5px;border-radius:50%;background:#67a080}.day.selected{background:var(--green)!important;color:white;border-color:var(--green)}.day.selected .price{color:rgba(255,255,255,.76)}.day.in-range{background:#e5eee9;border-radius:0}.day.unavailable{background:#f6f3ef}.legend{display:flex;flex-wrap:wrap;gap:17px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:10px;height:10px;border-radius:50%;background:#67a080}.legend .busy{background:#c9c6c0}.legend .choice{background:var(--green)}.summary{position:sticky;top:20px;padding:26px}.summary h2{font:400 29px Georgia,serif;margin:6px 0 20px}.date-boxes{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden}.date-box{padding:13px}.date-box+ .date-box{border-left:1px solid var(--line)}.date-box span,.summary-row span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.date-box strong{display:block;margin-top:6px;font-size:14px}.field{display:grid;gap:8px;margin-top:16px}.field span{font-size:12px;font-weight:800}.field input,.field select,.field textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(180,140,77,.12)}.price-summary{margin:19px 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.summary-row{display:flex;align-items:center;justify-content:space-between;margin:9px 0}.summary-row span{letter-spacing:0;text-transform:none;font-size:13px}.summary-row.total{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.summary-row.total strong{font:400 25px Georgia,serif}.primary,.secondary{width:100%;border:0;border-radius:11px;padding:14px;font-weight:800}.primary{background:var(--green);color:white}.primary:hover{background:#0e3127}.primary:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#efe4d2;color:#76572a}.hint{font-size:11px;color:var(--muted);line-height:1.5;text-align:center;margin:12px 0 0}.booking-form{display:none;grid-column:1/-1;padding:30px}.booking-form.visible{display:block}.booking-form h2{font:400 32px Georgia,serif;margin:7px 0 8px}.booking-form>p{color:var(--muted);margin-bottom:24px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.form-grid .field{margin:0}.form-grid .wide{grid-column:1/-1}.actions{display:flex;align-items:center;gap:12px;margin-top:22px}.actions .primary{width:auto;min-width:220px}.actions .secondary{width:auto}.message{display:none;margin-top:16px;padding:13px 15px;border-radius:10px;font-size:13px}.message.show{display:block}.message.error{background:#f8e7e5;color:#8d3131}.confirmation{display:none;grid-column:1/-1;padding:42px;text-align:center}.confirmation.visible{display:block}.confirmation-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 18px;border-radius:50%;background:#e1efe7;color:var(--ok);font-size:28px;font-weight:800}.confirmation h2{font:400 38px Georgia,serif;margin:0 0 10px}.confirmation p{color:var(--muted);line-height:1.6}.booking-code{display:inline-block;margin:10px 0 20px;padding:10px 16px;border:1px dashed var(--gold);border-radius:9px;font-size:21px;font-weight:900;letter-spacing:.08em}.confirmation-links{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.confirmation-links a{padding:12px 17px;border-radius:10px;background:var(--green);color:white;font-weight:800}.confirmation-links a:last-child{background:#eee4d3;color:#76572a}.loading{min-height:360px;display:grid;place-items:center;color:var(--muted)}.footer{background:#102a22;color:rgba(255,255,255,.72);padding:28px clamp(20px,7vw,100px);display:flex;justify-content:space-between;gap:20px;font-size:12px}.footer a{color:#dec58d}@media(max-width:930px){.layout{grid-template-columns:1fr}.summary{position:static}.booking-form,.confirmation{grid-column:auto}}@media(max-width:620px){.header{height:auto;padding-top:16px;padding-bottom:16px}.header-nav a:not(.guest){display:none}.hero{padding-top:46px}.steps{overflow:auto}.step{white-space:nowrap}.layout{padding-top:18px}.calendar-card,.summary,.booking-form{padding:18px}.day{min-height:58px}.day .price{display:none}.card-title{flex-direction:column}.month-nav{width:100%;justify-content:space-between}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.actions{align-items:stretch;flex-direction:column}.actions .primary,.actions .secondary{width:100%}.footer{flex-direction:column}}
