:root{--chalk:#f7f3ec;--paper:#efe8dc;--ink:#1f2a24;--muted:#5b6660;--brick:#9c4a2c;--line:#d9d0c1;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Karla",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--chalk);color:var(--ink);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,6vw,4.8rem)}
h2{font-size:clamp(2rem,4vw,3.1rem)}
h3{font-size:1.7rem}
p{margin:0 0 1em}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
.eyebrow{font:700 .75rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--brick);margin-bottom:1.1em;display:block}
.lead{font-size:1.2rem;color:var(--muted)}
.btn{display:inline-block;background:var(--ink);color:var(--chalk);padding:.95em 1.7em;border-radius:999px;text-decoration:none;font-weight:700;font-size:.92rem;letter-spacing:.03em;transition:background .2s}
.btn:hover{background:var(--brick)}
.btn-line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--chalk)}
.btn-light{background:var(--chalk);color:var(--ink)}
.btn-small{padding:.7em 1.3em}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:1.6em}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(247,243,236,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:600 1.45rem var(--serif)}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:10px}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0}
.menu nav{display:flex;align-items:center;gap:30px}
.menu nav a:not(.btn){text-decoration:none;font-weight:500;font-size:.95rem}
.menu nav a[aria-current]{color:var(--brick)}
.menu nav a:not(.btn):hover{color:var(--brick)}
@media (max-width:900px){
  .menu-toggle{display:block}
  .menu nav{display:none;position:absolute;left:0;right:0;top:74px;background:var(--chalk);flex-direction:column;align-items:flex-start;gap:18px;padding:24px;border-bottom:1px solid var(--line)}
  .menu.open nav{display:flex}
}

/* hero */
.hero{position:relative;min-height:min(88vh,820px);display:flex;align-items:flex-end;color:#fff;background:#2a332d center/cover no-repeat}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,26,22,.15) 30%,rgba(20,26,22,.72))}
.hero .wrap{position:relative;padding-bottom:80px;width:100%}
.hero h1{max-width:13ch}
.hero p{max-width:560px;font-size:1.15rem;opacity:.92}
.hero .eyebrow{color:#f0d7b8}
.hero .btn-line{color:#fff;box-shadow:inset 0 0 0 1.5px #fff}
.hero .btn-line:hover{background:#fff;color:var(--ink)}
.page-hero{min-height:min(62vh,560px)}

/* sections */
.section{padding:110px 0}
.section-tight{padding:70px 0}
.paper{background:var(--paper)}
.dark{background:var(--ink);color:var(--chalk)}
.dark .eyebrow{color:#e0b48f}
.dark .lead{color:#c5cbc6}
.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.split.flip > :first-child{order:2}
.split img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
.split img.wide{aspect-ratio:4/3}
.pair{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}
.pair img{aspect-ratio:3/4}
.pair img:first-child{aspect-ratio:3/4}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:4px;margin-bottom:22px}
.card h3{margin-bottom:.3em}
.card a.more{font-weight:700;font-size:.92rem;color:var(--brick);text-decoration:none}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px}
.gallery img:nth-child(1){grid-column:span 2;grid-row:span 2}
.letter{font-family:var(--serif);font-size:1.4rem;line-height:1.55}
.signature{font:italic 500 1.8rem var(--serif);color:var(--brick)}
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:56px}
blockquote{margin:0;font:500 1.55rem/1.45 var(--serif)}
blockquote cite{display:block;margin-top:1em;font:700 .8rem var(--sans);letter-spacing:.14em;text-transform:uppercase;font-style:normal;opacity:.75}
.ticks{list-style:none;padding:0;margin:0 0 1.4em}
.ticks li{padding:.6em 0 .6em 30px;border-bottom:1px solid var(--line);position:relative}
.ticks li::before{content:"";position:absolute;left:4px;top:1.15em;width:10px;height:10px;border-radius:50%;background:var(--brick)}
.dark .ticks li{border-color:rgba(255,255,255,.15)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:34px 0}
.facts strong{display:block;font:500 2.4rem/1 var(--serif);margin-bottom:6px}
.facts span{color:var(--muted);font-size:.92rem}
.cta{text-align:center}
.cta p{margin-left:auto;margin-right:auto;max-width:560px}

/* menu & prices */
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 64px}
.menu-block{border-top:1px solid var(--line);padding-top:26px}
.menu-block h3{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.price{font:700 .95rem var(--sans);color:var(--brick);white-space:nowrap}
.menu-block ul{list-style:none;padding:0;margin:0 0 1em}
.menu-block li{padding:.25em 0}
.menu-block li .sub{display:block;font-size:.9em;opacity:.75}
.menu-block h4{font:700 .75rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brick);margin:1.2em 0 .4em}
.note{color:var(--muted);font-style:italic;font-size:.95rem}
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.room{background:var(--chalk);padding:40px;border-radius:4px}
.price-list{list-style:none;padding:0;margin:0}
.price-list li{display:flex;justify-content:space-between;gap:16px;padding:1em 0;border-bottom:1px solid var(--line)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.contact-grid > div{background:var(--paper);padding:36px;border-radius:4px}
.contact-grid a{font-weight:700;text-decoration:none;color:var(--brick)}
.map{width:100%;height:440px;border:0;border-radius:4px;filter:grayscale(.3)}

/* footer */
.site-footer{background:var(--ink);color:#d7dcd8;padding:80px 0 30px;font-size:.95rem}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
.site-footer h4{font:700 .75rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#e0b48f;margin:0 0 1.2em}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:#fff}
.footer-note{margin-top:20px;max-width:240px}
.footer-base{margin-top:60px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem;opacity:.6}

@media (max-width:900px){
  .section{padding:72px 0}
  .split,.quotes,.menu-grid,.rooms{grid-template-columns:1fr;gap:40px}
  .split.flip > :first-child{order:0}
  .cards,.contact-grid{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .hero .wrap{padding-bottom:56px}
  .room{padding:28px}
}

.hosts{display:flex;align-items:center;gap:14px;margin-top:28px;flex-wrap:wrap}
.hosts img{width:120px;height:150px;object-fit:cover;border-radius:4px}
.hosts .signature{margin:0 0 0 10px}
.hero[data-section="hero"]{min-height:clamp(520px,44vw,680px);background-position:60% 55%}
@media (min-width:1000px){
  .hero[data-section="hero"]{min-height:auto;aspect-ratio:1800/577;background-position:center}
  .hero[data-section="hero"] .wrap{padding-bottom:44px;padding-top:40px}
  .hero[data-section="hero"] h1{max-width:none;font-size:clamp(2.6rem,4.4vw,4.2rem)}
}
.intro-photos{display:grid;gap:12px}
.intro-photos img{width:100%;border-radius:4px;object-fit:cover}
.intro-photos .house-front{aspect-ratio:4/3}
.intro-pair{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.intro-pair img{aspect-ratio:1}
[data-section="gallery"] .gallery img:nth-child(1){grid-column:auto;grid-row:auto}
.booking-embed{margin-top:56px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:28px}
.booking-embed h3{margin-bottom:18px}
.booking-embed iframe{display:block;width:100%;height:1800px;border:0}
.booking-fallback{margin:14px 0 0;font-size:.95rem;opacity:.8}
@media (max-width:700px){.booking-embed{padding:14px}.booking-embed iframe{height:2200px}}
.booking-embed-table{margin-top:0;max-width:820px;margin-left:auto;margin-right:auto}
.booking-embed-table iframe{height:1100px}
@media (max-width:700px){.booking-embed-table iframe{height:1300px}}
.spots{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:28px 0}.spots span{font-weight:600;color:var(--brick,#a5523a)}
.hero.stay-hero{background-position:center 45%}

@media (min-width:701px){[data-section="gallery"] .gallery{grid-template-columns:repeat(3,1fr)}}
.stay-gallery img:nth-child(1){grid-column:span 2;grid-row:auto;aspect-ratio:auto;height:100%}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.photo-pair img{aspect-ratio:3/4}
.photo-pair img.photo-wide{grid-column:1/-1;aspect-ratio:16/10;object-fit:cover;object-position:center 30%}
@media (min-width:701px){.hero-dining{min-height:min(75vw,94vh);background-position:center 50% !important}}
@media (max-width:700px){.hero-dining{background-size:auto 115% !important;background-position:68% 90% !important}}
.split.split-top{align-items:start}

.contact-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.contact-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
@media (max-width:700px){.contact-photos{grid-template-columns:1fr!important}}

.gallery-even img:nth-child(1){grid-column:auto;grid-row:auto}

.then-now{display:grid;gap:20px}
.then-now figure{margin:0}
.then-now figcaption{font-style:italic;font-size:.9rem;opacity:.75;margin-top:6px}

.langs{display:flex;gap:2px;font-size:.8rem;font-weight:600;letter-spacing:.04em}
.langs a{text-decoration:none;padding:4px 6px;border-radius:3px;opacity:.6}
.langs a:hover{opacity:1}
html[lang="en"] .langs a[lang="en"],html[lang="da"] .langs a[lang="da"],html[lang="de"] .langs a[lang="de"],html[lang="fr"] .langs a[lang="fr"]{opacity:1;color:var(--brick)}
/* Phones and tablets: portrait header photo (the wide panorama only shows a thin slice there) */
@media (max-width:999px){.home-hero{background:#2a332d url('/images/house-trees.jpg') center top/100% auto no-repeat !important;min-height:0 !important;padding-top:calc(53.4vw - 8px)}.home-hero::before{background:linear-gradient(180deg,rgba(42,51,45,0) calc(53.4vw - 50px),#2a332d 53.4vw)}.home-hero .wrap{padding-bottom:48px}}
.split img.crop-wide{aspect-ratio:16/10;height:auto;object-fit:cover;object-position:center 55%}
[data-section="pets"] .split{gap:32px}
@media (max-width:900px){[data-section="pets"] .split{gap:16px}}
[data-section="gallery"]+[data-section="book"]{padding-top:24px}
[data-section="gallery"]:has(+[data-section="book"]){padding-bottom:40px}
/* Homepage gallery: staggered columns, every photo shown whole */
.gallery.home-gallery{display:block;columns:3;column-gap:14px}
.gallery.home-gallery img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;margin:0 0 14px;break-inside:avoid;border-radius:4px}
@media (max-width:700px){.gallery.home-gallery{columns:2;column-gap:10px}.gallery.home-gallery img{margin-bottom:10px}}
@media (min-width:1000px){.home-hero{background-image:url('/images/house-trees.jpg') !important;aspect-ratio:auto !important;min-height:min(53.4vw,86vh) !important;background-position:center 40% !important}}
