/* Ragares - Baltic coast palette: sea, pine, sand, dune grass */
:root{
  --sea:#123a4d; --sea-deep:#0b2634; --pine:#2f5d50;
  --sand:#f4ede2; --sand-warm:#e8dbc7; --paper:#fbf8f3;
  --ink:#1b2327; --ink-soft:#5b686e; --line:#ded3c2;
  --amber:#b8763a; --white:#fff;
  --shadow:0 2px 8px rgba(18,58,77,.07), 0 14px 40px rgba(18,58,77,.09);
  --radius:14px; --wrap:1120px;
  --font-head:"Cormorant Garamond",Georgia,serif;
  --font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);
  font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--sea);text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--font-head);font-weight:600;line-height:1.15;margin:0 0 .4em}
h1{font-size:clamp(2.4rem,6vw,4.2rem)}
h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
h3{font-size:1.5rem}
.eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:600;margin-bottom:.7rem}

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:60;background:rgba(251,248,243,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:22px;height:66px}
.brand{font-family:var(--font-head);font-size:1.5rem;font-weight:600;
  letter-spacing:.04em;color:var(--sea-deep);margin-right:auto}
.brand small{display:block;font-family:var(--font-body);font-size:.6rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-top:-4px}
nav.links{display:flex;gap:22px}
nav.links a{color:var(--ink-soft);font-size:.9rem;font-weight:500}
nav.links a:hover{color:var(--sea)}
.langs{display:flex;gap:2px;background:var(--sand);border-radius:99px;padding:3px}
.langs button{border:0;background:none;cursor:pointer;font:inherit;font-size:.72rem;
  font-weight:600;letter-spacing:.06em;padding:5px 9px;border-radius:99px;
  color:var(--ink-soft);text-transform:uppercase}
.langs button[aria-pressed="true"]{background:var(--sea);color:#fff}
.menu-btn{display:none;border:0;background:none;font-size:1.5rem;cursor:pointer;color:var(--sea)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:76vh;display:flex;align-items:flex-end;
  color:#fff;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,38,52,.42) 0%,rgba(11,38,52,.15) 40%,rgba(11,38,52,.82) 100%)}
.hero .wrap{position:relative;z-index:2;padding-bottom:56px;padding-top:100px}
.hero h1{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.3);max-width:24ch}
.hero p{font-size:1.12rem;max-width:52ch;color:rgba(255,255,255,.92);margin:0 0 26px}
.hero .eyebrow{color:rgba(255,255,255,.8)}

.btn{display:inline-block;border:0;cursor:pointer;font:inherit;font-weight:600;
  font-size:.94rem;padding:13px 28px;border-radius:99px;transition:.18s;
  background:var(--amber);color:#fff}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn.ghost{background:rgba(255,255,255,.14);color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.btn.dark{background:var(--sea)}
.btn.small{padding:9px 18px;font-size:.85rem}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-row{display:flex;gap:12px;flex-wrap:wrap}

section{padding:84px 0}
section.tint{background:var(--sand)}

/* ---------- houses ---------- */
.house{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;
  margin-bottom:96px}
.house:nth-child(even) .gallery{order:2}
.house:last-child{margin-bottom:0}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:96px;gap:8px}
.gallery img{width:100%;height:100%;object-fit:cover;border-radius:10px;cursor:zoom-in;
  transition:.25s}
.gallery img:hover{filter:brightness(1.06)}
.gallery img:first-child{grid-column:span 3;grid-row:span 2}
.rating{display:inline-flex;align-items:center;gap:9px;margin-bottom:14px}
.score{background:var(--sea);color:#fff;font-weight:700;font-size:.85rem;
  padding:4px 9px;border-radius:6px 6px 6px 0}
.rating span{font-size:.85rem;color:var(--ink-soft)}
.facts{display:flex;gap:20px;flex-wrap:wrap;margin:18px 0;padding:16px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fact b{display:block;font-family:var(--font-head);font-size:1.5rem;line-height:1}
.fact span{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.amenities{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 24px;padding:0;list-style:none}
.amenities li{font-size:.82rem;background:var(--sand);border:1px solid var(--line);
  padding:5px 12px;border-radius:99px;color:var(--ink-soft)}
section.tint .amenities li{background:var(--paper)}
.price{font-family:var(--font-head);font-size:1.7rem;margin-bottom:18px}
.price b{font-weight:600}
.price small{font-family:var(--font-body);font-size:.8rem;color:var(--ink-soft)}

/* ---------- calendar ---------- */
.cal-head{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:24px}
.house-tabs{display:flex;gap:4px;background:var(--paper);border:1px solid var(--line);
  border-radius:99px;padding:4px;margin-right:auto}
.house-tabs button{border:0;background:none;font:inherit;font-size:.88rem;font-weight:600;
  padding:9px 20px;border-radius:99px;cursor:pointer;color:var(--ink-soft)}
.house-tabs button[aria-pressed="true"]{background:var(--sea);color:#fff}
.cal-nav{display:flex;gap:6px}
.cal-nav button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);
  background:var(--paper);cursor:pointer;font-size:1rem;color:var(--sea)}
.cal-nav button:hover{background:var(--sea);color:#fff}
.months{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.month h4{font-family:var(--font-head);font-size:1.25rem;font-weight:600;text-align:center;
  margin:0 0 12px}
.dow,.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.dow div{text-align:center;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);padding-bottom:6px;font-weight:600}
.day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.85rem;
  border-radius:8px;border:1px solid transparent;background:var(--paper);cursor:pointer;
  position:relative;transition:.12s}
section.tint .day{background:var(--white)}
section.tint .day.empty,.day.empty{background:none;cursor:default}
.day.free:hover{border-color:var(--sea);color:var(--sea);font-weight:600}
section.tint .day.blocked,.day.blocked{background:repeating-linear-gradient(-45deg,
  #e6e1d8,#e6e1d8 3px,#cfc6b7 3px,#cfc6b7 7px);color:#7d7566;cursor:not-allowed;
  text-decoration:line-through;font-weight:500}
section.tint .day.past,.day.past{color:#c8cfd2;cursor:not-allowed;background:none;box-shadow:none}
section.tint .day.sel,.day.sel{background:var(--sea);color:#fff;font-weight:700;
  border-color:var(--sea);text-decoration:none}
section.tint .day.inrange,.day.inrange{background:rgba(18,58,77,.12);border-radius:0}
section.tint .day.hoverrange,.day.hoverrange{background:rgba(18,58,77,.06);border-radius:0}
.legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:22px;font-size:.8rem;
  color:var(--ink-soft)}
.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;
  vertical-align:-2px;margin-right:6px}
.legend .l-free{background:var(--white);border:1px solid var(--line)}
.legend .l-block{background:repeating-linear-gradient(-45deg,#e6e1d8,#e6e1d8 2px,
  #cfc6b7 2px,#cfc6b7 5px);border:1px solid var(--line)}
.legend .l-sel{background:var(--sea)}
.sync-note{font-size:.78rem;color:var(--ink-soft);margin-top:8px}

/* ---------- booking panel ---------- */
.book-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);position:sticky;top:86px}
.stay{display:flex;gap:14px;margin-bottom:18px}
.stay div{flex:1;background:var(--sand);border-radius:10px;padding:11px 14px;min-width:0}
.stay span{display:block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:600}
.stay b{font-size:.98rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.field{margin-bottom:12px}
.field label{display:block;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:600;margin-bottom:5px}
input,select,textarea{width:100%;font:inherit;font-size:.92rem;padding:11px 13px;
  border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--sea);outline-offset:-1px;
  border-color:var(--sea)}
textarea{resize:vertical;min-height:76px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.estimate{display:flex;justify-content:space-between;align-items:baseline;
  padding:13px 0;margin:6px 0 14px;border-top:1px solid var(--line)}
.estimate b{font-family:var(--font-head);font-size:1.4rem}
.msg{padding:12px 14px;border-radius:9px;font-size:.88rem;margin-bottom:12px;display:none}
.msg.err{display:block;background:#fdeceb;color:#8c2f26;border:1px solid #f3c9c4}
.msg.ok{display:block;background:#eaf5ee;color:#1f5b38;border:1px solid #bfe0cb}
.fineprint{font-size:.76rem;color:var(--ink-soft);text-align:center;margin:10px 0 0}

/* ---------- why direct ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px}
.card .ico{font-size:1.6rem;margin-bottom:10px}
.card h3{font-size:1.2rem}
.card p{margin:0;font-size:.92rem;color:var(--ink-soft)}

/* ---------- area / contact ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.split iframe{width:100%;height:340px;border:0;border-radius:var(--radius);
  box-shadow:var(--shadow)}
.contact-list{list-style:none;padding:0;margin:22px 0 0}
.contact-list li{padding:11px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.contact-list b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft)}
.socials{display:flex;gap:10px;margin-top:22px}
.socials a{width:44px;height:44px;border-radius:50%;background:var(--sea);color:#fff;
  display:grid;place-items:center;transition:.18s}
.socials a:hover{background:var(--amber);transform:translateY(-2px)}
.socials svg{width:20px;height:20px;fill:currentColor}

footer{background:var(--sea-deep);color:rgba(255,255,255,.68);padding:52px 0 34px;
  font-size:.88rem}
footer .brand{color:#fff}
footer a{color:rgba(255,255,255,.82)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;margin-bottom:30px}
.foot-grid h5{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;
  margin:0 0 12px}
.foot-grid ul{list-style:none;padding:0;margin:0}
.foot-grid li{margin-bottom:7px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.16);padding-top:20px;font-size:.8rem;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;background:rgba(11,38,52,.94);z-index:200;display:none;
  align-items:center;justify-content:center;padding:34px}
.lightbox.on{display:flex}
.lightbox img{max-height:88vh;max-width:92vw;border-radius:10px;object-fit:contain}
.lightbox button{position:absolute;background:rgba(255,255,255,.14);border:0;color:#fff;
  width:48px;height:48px;border-radius:50%;font-size:1.5rem;cursor:pointer}
.lb-close{top:24px;right:24px}
.lb-prev{left:24px}
.lb-next{right:24px}

@media (max-width:900px){
  section{padding:56px 0}
  .house,.split{grid-template-columns:1fr;gap:28px}
  .house:nth-child(even) .gallery{order:0}
  .months{grid-template-columns:1fr;gap:26px}
  .cards,.foot-grid{grid-template-columns:1fr}
  .book-panel{position:static}
  nav.links{display:none}
  nav.links.open{display:flex;position:absolute;top:66px;left:0;right:0;flex-direction:column;
    background:var(--paper);padding:18px 24px;border-bottom:1px solid var(--line);gap:14px}
  .menu-btn{display:block}
  .hero{min-height:64vh}
  .gallery{grid-auto-rows:76px}
}

/* ---------- offers ---------- */
.offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.offer{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;display:flex;flex-direction:column}
.offer .badge{align-self:flex-start;font-size:.66rem;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;background:var(--amber);color:#fff;padding:4px 11px;
  border-radius:99px;margin-bottom:14px}
.offer h3{font-size:1.35rem;margin-bottom:.35em}
.offer p{font-size:.93rem;color:var(--ink-soft);margin:0 0 18px}
.offer .btn{align-self:flex-start;margin-top:auto}
.offer .where{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:14px}

/* ---------- house description ---------- */
.house-desc{font-size:.93rem;color:var(--ink-soft);margin:0 0 4px}

/* ---------- quote breakdown ---------- */
#quote-lines{font-size:.86rem;color:var(--ink-soft)}
#quote-lines div{display:flex;justify-content:space-between;padding:3px 0}
#quote-lines .saved{color:var(--pine);font-weight:600}
.advance-note{font-size:.82rem;color:var(--ink-soft);margin:-6px 0 12px;
  padding:9px 12px;background:var(--sand);border-radius:8px}
.minstay{font-size:.82rem;color:#8c2f26;margin:0 0 12px}

/* ---------- reviews ---------- */
.rev-score{display:flex;align-items:center;gap:14px;margin-bottom:26px;flex-wrap:wrap}
.rev-score .big{background:var(--sea);color:#fff;font-weight:700;font-size:1.5rem;
  padding:10px 16px;border-radius:10px 10px 10px 0}
.rev-score span{font-size:.9rem;color:var(--ink-soft)}
.rev-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px}
.rev{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;display:flex;flex-direction:column}
.rev .who{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.rev .who b{font-size:.94rem}
.rev .who small{color:var(--ink-soft);font-size:.8rem}
.rev .sc{margin-left:auto;background:var(--sea);color:#fff;font-weight:700;
  font-size:.78rem;padding:3px 8px;border-radius:6px 6px 6px 0}
.rev q{font-style:normal;font-size:.93rem;line-height:1.6;quotes:none}
.rev .shots{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.rev .shots img{width:66px;height:66px;object-fit:cover;border-radius:8px;cursor:zoom-in}
.rev .src{margin-top:12px;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-soft)}
#rev-more{margin-top:22px}
.rev-form-wrap{margin-top:52px;padding-top:38px;border-top:1px solid var(--line);
  max-width:640px}
.hint{display:block;font-size:.78rem;color:var(--ink-soft);margin-top:6px;
  letter-spacing:0;text-transform:none}
.rv-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.rv-preview img{width:72px;height:72px;object-fit:cover;border-radius:8px}
input[type=file]{padding:9px;background:var(--sand);cursor:pointer}

/* ---------- proof + direct strip ---------- */
.cards.proof{grid-template-columns:repeat(4,1fr)}
.direct-strip{margin-top:44px;background:var(--sea);color:#fff;border-radius:var(--radius);
  padding:34px 38px;display:flex;align-items:center;gap:34px;flex-wrap:wrap}
.direct-strip h3{color:#fff;margin-bottom:.35em}
.direct-strip p{margin:0;color:rgba(255,255,255,.85);font-size:.94rem;max-width:64ch}
.direct-strip .btn{margin-left:auto;white-space:nowrap}
@media (max-width:900px){
  .cards.proof{grid-template-columns:1fr 1fr}
  .direct-strip{padding:26px}
  .direct-strip .btn{margin-left:0}
}
