:root {
    --ink: #17221c;
    --cream: #f4f1e9;
    --sage: #a9b59e;
    --line: rgba(23, 34, 28, .18);
    --pad: clamp(4.5rem, 9vw, 8.5rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; max-width: 100%; overflow-x: hidden; overscroll-behavior-x: none; }
body { max-width: 100%; margin: 0; overflow-x: hidden; background: var(--cream); color: var(--ink); font-family: "DM Sans", Arial, Helvetica, sans-serif; line-height: 1.65; overscroll-behavior-x: none; }
.hero { color: var(--text-hero, white); }
.facts { color: var(--text-facts, var(--ink)); }
.about { color: var(--text-about, var(--ink)); }
.amenities { color: var(--text-amenities, var(--ink)); }
.gallery { color: var(--text-gallery, var(--ink)); }
.reviews { color: var(--text-reviews, var(--ink)); }
.pricing { color: var(--text-pricing, white); }
.location { color: var(--text-location, white); }
.contact { color: var(--text-contact, var(--ink)); }
.site-footer { color: var(--text-footer, white); }
img { display: block; width: 100%; object-fit: cover; }
a { color: inherit; }

.site-header { height: 84px; padding: 0 clamp(1.25rem, 4vw, 4.5rem); display: flex; align-items: center; justify-content: space-between; position: absolute; z-index: 10; width: 100%; color: white; border-bottom: 1px solid rgba(255,255,255,.22); transition: .3s; }
.site-header.scrolled { position: fixed; top: 0; background: rgba(23,34,28,.96); height: 70px; backdrop-filter: blur(12px); }
.brand { text-decoration: none; letter-spacing: .22em; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.brand span { font-weight: 400; }
.main-nav { display: flex; gap: clamp(1rem, 2.3vw, 2.5rem); }
.main-nav a, .language a { font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; text-decoration: none; opacity: .75; }
.main-nav a:hover, .language a:hover, .language a.active { opacity: 1; }
.header-actions, .language { display: flex; align-items: center; }
.language { gap: .65rem; margin-right: 1.7rem; }
.language a { display: inline-flex; align-items: center; }
.header-cta { font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; text-decoration: none; border: 1px solid rgba(255,255,255,.5); padding: .65rem 1rem; }
.header-cta span { margin-left: .5rem; }
.menu-button { display: none; background: none; border: 0; padding: .6rem; }
.menu-button span { display: block; background: white; width: 24px; height: 1px; margin: 6px; }

.hero { min-height: 100svh; position: relative; color: white; background-image: var(--hero-image); background-position: var(--hero-x,50%) var(--hero-y,50%); background-size: cover; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,24,18,.8), rgba(12,24,18,.13) 78%), linear-gradient(0deg, rgba(12,24,18,.4), transparent 55%); }
.hero-content { position: relative; z-index: 1; padding: clamp(10rem,20vh,14rem) clamp(1.5rem,8vw,9rem) 7rem; max-width: 920px; }
.kicker { margin: 0 0 1.5rem; text-transform: uppercase; letter-spacing: .22em; font-size: .67rem; font-weight: 600; color: #68766c; }
.kicker::before { content: ""; display: inline-block; width: 35px; height: 1px; background: currentColor; vertical-align: middle; margin-right: 1rem; }
.kicker.light { color: rgba(255,255,255,.75); }
h1, h2 { font-family: Manrope, "DM Sans", Arial, sans-serif; font-weight: 400; letter-spacing: -.055em; line-height: 1.08; margin: 0; }
h1 { font-size: clamp(3.2rem, 7vw, 7rem); max-width: 850px; }
.hero-copy { font-size: clamp(1rem,1.5vw,1.22rem); max-width: 570px; margin: 2rem 0 2.5rem; color: rgba(255,255,255,.82); }
.hero-copy,.about-copy>p:not(.kicker),.reviews-intro p:not(.kicker),.reviews-grid article>p,.pricing-intro>p:last-child,.calendar-copy>p:not(.kicker),.location-copy>p:not(.kicker),.contact-intro>p:not(.kicker),.footer-brand-block p,.footer-column p { white-space:pre-line; }
.hero-buttons { display: flex; gap: 1rem; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-size: .67rem; font-weight: 600; padding: 1rem 1.25rem; border: 1px solid transparent; cursor: pointer; }
.button.primary { background: white; color: var(--ink); }
.button.ghost { border-color: rgba(255,255,255,.55); color: white; }
.button span, .text-link span, .price-card a span { transition: .25s; }
.button:hover span, .text-link:hover span, .price-card a:hover span { transform: translateX(5px); }
.scroll-cue { position: absolute; right: clamp(1.5rem,4vw,4.5rem); bottom: 2.2rem; z-index: 1; text-decoration: none; display: flex; gap: 1rem; align-items: center; }
.scroll-cue span { font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; }
.scroll-cue i { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; display: grid; place-items: center; font-style: normal; }

.facts { background: var(--ink); color: white; padding: 1.65rem clamp(1.25rem,5vw,5rem); display: flex; flex-wrap: nowrap; justify-content: center; align-items: center; gap: 0; overflow: hidden; }
.facts div { position: relative; display: flex; flex: 0 1 auto; justify-content: center; align-items: center; gap: .8rem; min-width: 0; min-height: 54px; padding: 0 clamp(.75rem,1.45vw,1.8rem); border-right: 1px solid rgba(255,255,255,.18); }
.facts div:last-child { border: 0; }
.facts i { flex: 0 0 28px; width: 28px; display: grid; place-items: center; font-size: 1.3rem; font-style: normal; color: var(--sage); }
.facts i svg { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.facts strong { min-width: 0; max-width: 13em; font-size: clamp(.64rem,.64vw,.78rem); letter-spacing: .08em; line-height: 1.35; text-transform: uppercase; font-weight: 600; text-align: left; text-wrap: balance; }
.section-pad { padding: var(--pad) clamp(1.5rem,8vw,9rem); }

.about { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(280px,.9fr); gap: clamp(3rem,8vw,9rem); align-items: center; }
.about-image-right .about-image { order: 2; }
.about-image-right .about-copy { order: 1; }
.about-image { position: relative; }
.about-image img { height: min(60vw,680px); }
.image-mark { position: absolute; right: -2.2rem; bottom: 2.2rem; background: var(--sage); width: 90px; height: 90px; border-radius: 50%; display: grid; place-items: center; font-family: Manrope; font-size: 1.25rem; letter-spacing: .1em; }
.about-copy h2, .section-heading h2, .contact h2, .pricing h2, .reviews h2 { font-size: clamp(2.5rem,5vw,5rem); }
.about-copy > p:not(.kicker) { max-width: 570px; color: #59625d; font-size: 1.05rem; }
.about-copy > p:not(.kicker) { margin-top:1.35rem; margin-bottom:0; }
.about-copy > .about-lead { margin-top:2rem; padding-bottom:1.5rem; border-bottom:1px solid var(--line); }
.text-link { display: inline-flex; gap: 4rem; margin-top: 1.5rem; padding-bottom: .4rem; border-bottom: 1px solid; text-decoration: none; text-transform: uppercase; letter-spacing: .13em; font-size: .67rem; }

.amenities { background: #e8e8dd; }
.section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 4rem; }
.section-number { font-size: .7rem; letter-spacing: .12em; border: 1px solid var(--line); width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; }
.amenities-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); }
.amenities-grid article { padding: 2.2rem 2rem 2.2rem 0; display: flex; gap: 1.5rem; border-bottom: 1px solid var(--line); }
.amenities-grid article:not(:nth-child(3n)) { border-right: 1px solid var(--line); margin-right: 2rem; }
.amenities-grid i { font-style: normal; font-size: 1.5rem; color: #788875; min-width: 32px; }
.amenities-grid h3 { font-size: 1rem; margin: 0 0 .5rem; }
.amenities-grid p { font-size: .86rem; color: #68706b; margin: 0; max-width: 250px; }

.gallery-grid { display: grid; grid-template-columns: 1.55fr 1fr 1fr; grid-template-rows: repeat(2,260px); gap: 1rem; }
.gallery-grid img { height: 100%; filter: saturate(.85); transition: filter .3s, transform .3s; }
.gallery-grid img:hover { filter: saturate(1); }
.gallery-main { grid-row: 1/3; }
.gallery-main-slider { position: relative; min-width: 0; overflow: hidden; background: #d8d1c5; }
.gallery-main-slider > img { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility .5s; }
.gallery-main-slider > img.active { opacity: 1; visibility: visible; }
.main-gallery-controls { position: absolute; z-index: 2; right: 16px; bottom: 16px; display: flex; align-items: center; gap: 5px; padding: 5px; background: rgba(245,241,231,.92); color: var(--ink); backdrop-filter: blur(8px); }
.main-gallery-controls button { width: 44px; height: 44px; border: 0; background: transparent; color: inherit; font-size: 1.15rem; cursor: pointer; }
.main-gallery-controls button:hover { background: var(--ink); color: white; }
.main-gallery-controls span { min-width: 48px; text-align: center; font-size: .65rem; letter-spacing: .08em; }
.main-gallery-controls b { font-weight: 600; }

.pricing { background: #6f806d; color: white; }
.pricing-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; margin-bottom: 4rem; }
.pricing-intro .kicker { grid-column: 1/-1; margin-bottom: 0; }
.pricing-intro > p:last-child { color: rgba(255,255,255,.7); max-width: 560px; margin: 0; }
.pricing-cards { display: grid; grid-template-columns: repeat(3,1fr); }
.price-card { position: relative; padding: 2.5rem; border: 1px solid rgba(255,255,255,.26); }
.price-card + .price-card { border-left: 0; }
.price-card.featured { background: var(--cream); color: var(--ink); transform: translateY(-1rem); border-color: var(--cream); }
.price-index { position: absolute; right: 1.5rem; top: 1.5rem; opacity: .5; font-size: .68rem; letter-spacing: .12em; }
.price-card > p:first-of-type { text-transform: uppercase; letter-spacing: .14em; font-size: .65rem; opacity: .65; }
.price-card h3 { font: 400 clamp(1.7rem,3vw,2.5rem)/1.15 Manrope; margin: 1.8rem 0 2.5rem; }
.price-card strong { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.price-card > p:last-of-type { opacity: .65; font-size: .86rem; min-height: 4.5rem; }
.price-card a { display: flex; justify-content: space-between; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid currentColor; text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-size: .66rem; }
.included { border-top: 1px solid rgba(255,255,255,.25); margin-top: 3rem; padding-top: 1.5rem; display: flex; gap: 2rem; justify-content: space-between; flex-wrap: wrap; }
.included strong, .included span { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.included span { color: rgba(255,255,255,.7); }
.pricing-offer { border-top: 1px solid rgba(255,255,255,.3); border-bottom: 1px solid rgba(255,255,255,.3); display: grid; grid-template-columns: 1fr 1.35fr; }
.rate { padding: 3.5rem 3rem 3.5rem 0; border-right: 1px solid rgba(255,255,255,.3); display: flex; flex-direction: column; justify-content: center; }
.rate span, .pricing-included > strong { text-transform: uppercase; letter-spacing: .14em; font-size: .67rem; color: rgba(255,255,255,.65); }
.rate strong { display: block; font: 400 clamp(3.6rem,7vw,7.8rem)/.95 "Italiana",Georgia,serif; margin-top: 1rem; }
.pricing-included { padding: 3.5rem 0 3.5rem clamp(2rem,5vw,5rem); display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 2rem; align-content: center; }
.pricing-included > strong { grid-column: 1/-1; margin-bottom: .8rem; }
.pricing-included span { font-size: .78rem; color: rgba(255,255,255,.8); }
.pricing-actions { grid-column: 1/-1; border-top: 1px solid rgba(255,255,255,.3); padding: 1.5rem 0; display: flex; justify-content: flex-end; gap: 1rem; }
.pricing-actions .button { width: auto; min-width: 210px; }
.pricing-actions .button.ghost { background:transparent; border-color:var(--reserve-button-color,white); color:var(--reserve-button-text-color,white); }
.button.whatsapp { background:var(--whatsapp-button-color,#26362c); color:var(--whatsapp-button-text-color,white); }
.airbnb-calendar-embed { margin-top: 3rem; display: grid; grid-template-columns: minmax(240px,.65fr) minmax(0,1.35fr); gap: clamp(1.5rem,3vw,3rem); background: rgba(255,255,255,.92); border: 1px solid rgba(255,255,255,.35); border-radius: 24px; padding: clamp(1.5rem,3vw,3rem); color: var(--ink); box-shadow: 0 26px 70px rgba(54,38,28,.13); }
.calendar-copy { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; }
.airbnb-calendar-embed h3 { margin: 0 0 1rem; font: 400 clamp(2.2rem,3.5vw,4rem)/1 "Italiana", Georgia, serif; color: var(--ink); }
.airbnb-calendar-embed p { margin: 0 0 1.5rem; color: var(--ink); opacity: .76; max-width: 420px; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: .8rem 1.3rem; margin-top: auto; padding-top: 1.5rem; border-top: 1px solid rgba(71,53,45,.14); }
.calendar-legend span { display: inline-flex; align-items: center; gap: .55rem; font-size: .67rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); opacity: .76; }
.calendar-legend i { width: 12px; height: 12px; border-radius: 50%; background: var(--calendar-available-color,#fffaf4); border: 1px solid rgba(71,53,45,.18); }
.calendar-legend span:nth-child(2) i { background: var(--calendar-booked-color,var(--sand)); border-color: var(--calendar-booked-color,var(--sand)); }
.villa-calendar { min-width: 0; }
.calendar-toolbar { display: grid; grid-template-columns: 42px minmax(0,1fr) 42px; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.calendar-toolbar span { min-width: 0; text-align: center; color: var(--ink); opacity: .76; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.calendar-toolbar button { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(71,53,45,.18); border-radius: 50%; background: #fffaf4; color: var(--ink); font: 600 1rem/1 "DM Sans",Arial,sans-serif; cursor: pointer; transition: background .2s,color .2s,opacity .2s; }
.calendar-toolbar button:hover:not(:disabled) { background: var(--ink); color: white; }
.calendar-toolbar button:disabled { opacity: .28; cursor: default; }
.calendar-months { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.calendar-month[hidden] { display: none; }
.calendar-month { min-width: 0; padding: clamp(1rem,2vw,1.35rem); background: #f9f4ed; border: 1px solid rgba(71,53,45,.12); border-radius: 18px; }
.calendar-month h4 { margin: 0 0 1rem; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .32rem; }
.calendar-weekdays { margin-bottom: .45rem; }
.calendar-weekdays span { min-width: 0; text-align: center; font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9a897c; }
.calendar-days span { aspect-ratio: 1; min-width: 0; display: grid; place-items: center; border-radius: 50%; font-size: .72rem; font-weight: 600; color:var(--calendar-day-text-color,var(--ink)); }
.calendar-days .available { background: var(--calendar-available-color,#fffaf4); border: 1px solid rgba(71,53,45,.08); }
.calendar-days .blocked { background: var(--calendar-booked-color,var(--sand)); border: 1px solid var(--calendar-booked-color,var(--sand)); color:var(--calendar-booked-text-color,white); }
.calendar-days .past { opacity: .28; }
.calendar-days .empty { background: transparent; border: 0; }
.calendar-empty { min-height: 100%; display: flex; flex-direction: column; justify-content: center; gap: .7rem; padding: clamp(1.5rem,3vw,2.4rem); background: #f9f4ed; border: 1px solid rgba(71,53,45,.12); border-radius: 18px; color: #493a31; }
.calendar-empty strong { font: 400 clamp(1.8rem,3vw,3rem)/1.05 "Italiana", Georgia, serif; }
.calendar-empty span { max-width: 420px; color: #74665c; }
.airbnb-calendar-embed .kicker,.airbnb-calendar-embed h3,.airbnb-calendar-embed p,.airbnb-calendar-embed .calendar-legend span,.airbnb-calendar-embed .calendar-toolbar span,.airbnb-calendar-embed .calendar-month h4,.airbnb-calendar-embed .calendar-weekdays span,.airbnb-calendar-embed .calendar-empty { color:var(--ink); }
.airbnb-calendar-embed p,.airbnb-calendar-embed .calendar-legend span,.airbnb-calendar-embed .calendar-toolbar span,.airbnb-calendar-embed .calendar-weekdays span,.airbnb-calendar-embed .calendar-empty span { opacity:.72; }
.calendar-actions { grid-column: 2; display: flex; justify-content: flex-end; align-items: center; margin-top: -.8rem; }
.calendar-actions .button { min-width: 210px; }
.button.whatsapp i { font-style: normal; color: #8fd8a6; }

.location { display: grid; grid-template-columns: 1fr 1fr; background: var(--ink); color: white; }
.location-image-left .location-image { order: 1; }
.location-image-left .location-copy { order: 2; }
.location-copy { padding-right: clamp(3rem,6vw,7rem); }
.location h2 { font-size: clamp(2.7rem,5vw,5rem); margin-bottom: 2rem; }
.location-copy > p:not(.kicker) { color: rgba(255,255,255,.65); max-width: 560px; }
.location-image { min-height: 650px; background-image: var(--location-image); background-position: var(--location-x,50%) var(--location-y,50%); background-size: cover; }
.distance-grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 4rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.2); }
.distance-grid strong, .distance-grid span { display: block; }
.distance-grid strong { font: 400 1.5rem Manrope; }
.distance-grid span { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.55); }

.contact { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,10vw,10rem); }
.contact-intro > p:not(.kicker) { color: #646d67; max-width: 430px; }
.contact-intro > a { display: block; text-decoration: none; margin-top: .6rem; }
.contact-intro > a:first-of-type { margin-top: 2rem; }
.contact-socials { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.5rem; }
.contact-socials .social-link { min-height: 52px; display: inline-flex; align-items: center; gap: .75rem; padding: .75rem 1rem; border: 1px solid var(--line); text-decoration: none; font-size: .75rem; font-weight: 600; }
.contact-socials .social-link:hover { background: var(--ink); color: white; }
.contact-socials svg { width: 23px; height: 23px; fill: currentColor; flex: 0 0 auto; }
.contact-socials .whatsapp-social svg { color: #25d366; }
.contact-form label { display: block; border-bottom: 1px solid var(--line); margin-bottom: 1.5rem; }
.contact-form label span { display: block; text-transform: uppercase; font-size: .62rem; letter-spacing: .13em; color: #6a746d; }
.contact-form input, .contact-form textarea { width: 100%; border: 0; background: transparent; padding: .6rem 0 1rem; font: inherit; color: var(--ink); outline: none; resize: vertical; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.button.dark { background: var(--ink); color: white; margin-top: .5rem; }
.contact-form small { display: block; margin-top: 1rem; color: #7c847f; font-size: .67rem; }

.site-footer { background: #101713; color: white; padding: clamp(3rem,6vw,5rem) clamp(1.5rem,8vw,9rem) 2rem; }
.footer-main { display: grid; grid-template-columns: minmax(220px,1.35fr) repeat(3,minmax(150px,.7fr)); gap: clamp(2rem,5vw,5rem); align-items: start; }
.footer-brand-block p, .footer-column p { color: rgba(255,255,255,.58); font-size: .86rem; margin: 1.3rem 0 0; max-width: 360px; }
.footer-logo { width: auto; max-width: min(220px,55vw); max-height: 110px; object-fit: contain; object-position: left center; margin: 0 0 2rem; }
.footer-brand { display: inline-flex; font-size: 1rem; margin-bottom: .6rem; }
.footer-column { display: flex; flex-direction: column; gap: .65rem; min-width: 0; }
.footer-column strong { margin-bottom: .55rem; text-transform: uppercase; letter-spacing: .14em; font-size: .68rem; color: rgba(255,255,255,.78); }
.footer-column a { width: fit-content; color: rgba(255,255,255,.55); text-decoration: none; font-size: .82rem; }
.footer-column a:hover { color: white; }
.footer-bottom { margin-top: clamp(2.5rem,5vw,4rem); border-top: 1px solid rgba(255,255,255,.16); padding-top: 1.3rem; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 1.5rem; align-items: center; color: rgba(255,255,255,.45); font-size: .65rem; }
.footer-credit { display: inline-flex; align-items: center; gap: .8rem; color: rgba(255,255,255,.58); text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-size: .58rem; }
.footer-credit img { width: auto; height: 38px; max-width: 210px; object-fit: contain; border-radius: 0; }
.footer-credit:hover { color: white; }
.footer-top { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; text-decoration: none; color: white; }

.legal-page { min-height: 100vh; background: var(--cream); }
.legal-wrap { width: min(920px, calc(100% - 40px)); margin: 0 auto; padding: clamp(2rem,6vw,5rem) 0; }
.legal-back { display: inline-flex; margin-bottom: 2rem; color: var(--ink); text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; font-weight: 600; }
.legal-card { background: #fffaf4; border: 1px solid var(--line); padding: clamp(2rem,5vw,4.5rem); box-shadow: 0 24px 70px rgba(54,38,28,.08); }
.legal-card h1 { margin-bottom: 2rem; font-family: "Italiana", Georgia, serif; font-size: clamp(3.2rem,8vw,6rem); letter-spacing: -.025em; color: var(--ink); }
.legal-card p:not(.kicker) { color: #5e554f; font-size: 1rem; line-height: 1.85; }

@media (max-width: 1000px) {
    .main-nav { display: none; position: absolute; top: 70px; left: 0; right: 0; background: var(--ink); padding: 2rem; flex-direction: column; }
    .main-nav.open { display: flex; }
    .menu-button { display: block; }
    .header-cta { display: none; }
    .site-header { height: 70px; }
    .about { grid-template-columns: 1fr; }
    .about-image-right .about-image, .about-image-right .about-copy { order: initial; }
    .about-image { max-width: 700px; }
    .image-mark { right: 1rem; }
    .amenities-grid { grid-template-columns: repeat(2,1fr); }
    .amenities-grid article:not(:nth-child(3n)) { border-right: 0; margin-right: 0; }
    .amenities-grid article:nth-child(odd) { border-right: 1px solid var(--line); margin-right: 2rem; }
    .pricing-intro { grid-template-columns: 1fr; }
    .pricing-intro .kicker { grid-column: auto; }
    .location { grid-template-columns: 1fr; }
    .location-image { min-height: 500px; grid-row: 1; }
    .location-image-left .location-image, .location-image-left .location-copy { order: initial; }
    .contact { grid-template-columns: 1fr; }
}

@media (max-width: 1280px) {
    .facts { flex-wrap: wrap; row-gap: 1rem; padding-top: 1.45rem; padding-bottom: 1.45rem; }
    .facts div { flex-basis: calc(25% - 1px); padding-left: 1rem; padding-right: 1rem; }
    .facts div:nth-child(4n) { border-right: 0; }
}

@media (max-width: 680px) {
    .language { margin-right: .2rem; gap: .45rem; }
    .hero-content { padding-top: 9rem; }
    .hero-buttons { align-items: stretch; flex-direction: column; }
    .button { width: 100%; }
    .scroll-cue { display: none; }
    .facts { display: grid; grid-template-columns: repeat(2,1fr); padding: 1rem; row-gap: 0; overflow: visible; }
    .facts div { flex-basis: auto; justify-content: flex-start; padding: 1rem; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.15); }
    .facts div:nth-child(2n) { border-right: 0; }
    .facts div:nth-last-child(-n+2) { border-bottom: 0; }
    .amenities-grid { grid-template-columns: 1fr; }
    .amenities-grid article, .amenities-grid article:nth-child(odd) { border-right: 0; margin-right: 0; }
    .gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 350px repeat(2,180px); }
    .gallery-main { grid-column: 1/3; grid-row: auto; }
    .main-gallery-controls { right: 10px; bottom: 10px; }
    .main-gallery-controls button { width: 46px; height: 46px; }
    .pricing-cards { grid-template-columns: 1fr; }
    .price-card + .price-card { border-left: 1px solid rgba(255,255,255,.26); border-top: 0; }
    .price-card.featured { transform: none; }
    .included { flex-direction: column; gap: .8rem; }
    .pricing-offer { grid-template-columns: 1fr; }
    .rate { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.3); padding-right: 0; }
    .pricing-included { padding: 2.5rem 0; grid-template-columns: 1fr; }
    .pricing-actions { flex-direction: column; }
    .pricing-actions .button { min-width: 0; width: 100%; }
    .location-image { min-height: 380px; }
    .distance-grid { gap: 1rem; }
    .distance-grid strong { font-size: 1.2rem; }
    .field-row { grid-template-columns: 1fr; gap: 0; }
    .footer-main { grid-template-columns: 1fr 1fr; }
}

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

/* Editorial art direction */
:root {
    --ink: #24332a;
    --cream: #f5f1e7;
    --sage: #9d907c;
    --sand: #a39682;
    --line: rgba(36, 51, 42, .16);
}

body { background: var(--cream); }
h1, h2, .pricing h2, .location h2, .about-copy h2, .section-heading h2, .contact h2 { font-family: "Italiana", "Times New Roman", Georgia, serif; letter-spacing: -.025em; }
.site-header { border-bottom-color: rgba(255,255,255,.32); }
.brand { font-family: "Italiana", Georgia, serif; font-size: 1rem; letter-spacing: .28em; }

.hero { min-height: 920px; height: 100svh; max-height: 1080px; background-position: 72% center; }
.hero::before { content: ""; position: absolute; z-index: 1; inset: 0 auto 0 0; width: 43%; background: var(--sand); }
.hero-shade { z-index: 1; background: linear-gradient(90deg, transparent 42%, rgba(15,22,17,.08) 70%, rgba(15,22,17,.25)); }
.hero-content { max-width: none; width: 43%; height: 100%; padding: clamp(10rem,18vh,13rem) clamp(2rem,5vw,6rem) 5rem; display: flex; flex-direction: column; justify-content: center; }
.hero-content h1 { font-size: clamp(3.2rem,5.7vw,6.6rem); line-height: .98; }
.hero-copy { font-size: .95rem; line-height: 1.85; max-width: 390px; text-align: justify; color: rgba(255,255,255,.88); }
.hero-buttons { margin-top: 1rem; }
.button { min-height: 52px; }
.button.primary { background: var(--cream); }
.scroll-cue { background: rgba(245,241,231,.9); color: var(--ink); padding: .45rem .45rem .45rem 1.2rem; }
.scroll-cue i { border-color: var(--line); }

.facts { background: var(--cream); color: var(--ink); border-bottom: 1px solid var(--line); padding-top: 2.4rem; padding-bottom: 2.4rem; }
.facts div { border-right-color: var(--line); }
.facts i { color: var(--sand); }

.about { padding-top: calc(var(--pad) + 2rem); }
.about-image img { filter: saturate(.75); }
.image-mark { background: var(--sand); color: white; font-family: "Italiana", Georgia, serif; }
.about-copy h2 { font-size: clamp(3.2rem,6vw,6.8rem); line-height: .98; }
.about-copy > p:not(.kicker) { font-size: .95rem; line-height: 1.85; }

.amenities { background: var(--surface, #e9e3d6); }
.section-heading h2 { font-size: clamp(3.5rem,7vw,7.5rem); }
.amenities-grid article { min-height: 170px; align-items: flex-start; }
.amenities-grid h3 { font-family: "Italiana", Georgia, serif; font-weight: 400; font-size: 1.4rem; }

.gallery { background: #faf8f2; }
.gallery-grid { grid-template-columns: 1.35fr .8fr .8fr; grid-template-rows: repeat(2,310px); gap: .65rem; }
.gallery-grid img { filter: saturate(.68) contrast(.96); }
.gallery-slider { margin-top: 2rem; min-width: 0; overflow: hidden; }
.gallery-slider-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.gallery-slider-head > span { font-size: .67rem; text-transform: uppercase; letter-spacing: .14em; color: #69736c; }
.gallery-arrows { display: flex; gap: 7px; }
.gallery-arrows button { width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.15rem; cursor: pointer; transition: .2s; }
.gallery-arrows button:hover { background: var(--ink); color: white; }
.gallery-arrows button:active { transform: scale(.95); }
.gallery-more { display: flex; gap: .65rem; width: 100%; margin-top: .65rem; padding: 0 0 8px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gallery-more figure { flex: 0 0 clamp(280px,34vw,520px); height: clamp(220px,28vw,390px); margin: 0; scroll-snap-align: start; overflow: hidden; }
.gallery-more img { height: 100%; filter: saturate(.68) contrast(.96); transition: transform .45s ease, filter .3s; }
.gallery-more figure:hover img { transform: scale(1.02); filter: saturate(.9); }
.gallery-more::-webkit-scrollbar { display: none; }
.gallery-arrows { display: flex; gap: 8px; align-self: end; }
.gallery-arrows button { width: 50px; height: 50px; border: 1px solid rgba(71,53,45,.2); border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.1rem; cursor: pointer; transition: background .25s,color .25s,transform .25s; }
.gallery-arrows button:hover { background: var(--ink); color: white; transform: translateY(-2px); }
.gallery-rail { display: flex; gap: clamp(14px,2vw,26px); margin: -14px calc(-1 * clamp(22px,5vw,78px)); padding: 28px clamp(22px,5vw,78px) 34px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: clamp(22px,5vw,78px); scrollbar-width: none; overscroll-behavior-inline: contain; }
.gallery-rail::-webkit-scrollbar { display: none; }
.gallery-card { position: relative; flex: 0 0 clamp(300px,58vw,820px); aspect-ratio: 16 / 10; margin: 0; overflow: hidden; border: 1px solid rgba(71,53,45,.12); border-radius: 20px; background: #eee8df; box-shadow: 0 10px 28px rgba(54,38,28,.09); scroll-snap-align: start; transform: translateY(0) scale(1); transition: transform .42s cubic-bezier(.2,.75,.25,1),box-shadow .42s ease; }
.gallery-card img { position: absolute; inset: 0; width: 100%; height: 100%; transition: transform .65s cubic-bezier(.2,.75,.25,1),filter .4s ease; }
.gallery-card-photo { z-index: 1; object-fit: contain; padding: clamp(8px,1.2vw,16px); filter: saturate(.82) contrast(.98); }
.gallery-card::after { content: ""; position: absolute; z-index: 2; inset: clamp(8px,1.2vw,16px); border: 1px solid rgba(255,255,255,.28); pointer-events: none; }
.gallery-card span { position: absolute; z-index: 3; left: 18px; bottom: 16px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(245,241,231,.9); color: var(--ink); font-size: .65rem; font-weight: 600; letter-spacing: .08em; backdrop-filter: blur(8px); }
.gallery-card:hover { z-index: 2; transform: translateY(-10px) scale(1.018); box-shadow: 0 26px 58px rgba(54,38,28,.2); }
.gallery-card:hover .gallery-card-photo { transform: scale(1.018); filter: saturate(.96) contrast(1); }

.reviews { background: #f2eadf; color: var(--ink); }
.reviews-intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(180px,260px); gap: clamp(2rem,6vw,6rem); align-items: end; margin-bottom: clamp(2rem,5vw,4rem); }
.reviews-intro h2 { max-width: 760px; font-size: clamp(3.4rem,6vw,6.6rem); }
.reviews-intro p:not(.kicker) { max-width: 620px; color: #66584f; margin: 1.4rem 0 0; }
.reviews-score { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem,3vw,2.3rem); border-left: 1px solid rgba(71,53,45,.2); border-bottom: 1px solid rgba(71,53,45,.2); }
.reviews-score strong { font: 400 clamp(3.6rem,6vw,6rem)/.9 "Italiana", Georgia, serif; color: var(--sand); }
.reviews-score span { margin-top: 1rem; text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; font-weight: 600; color: #6f6258; }
.reviews-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid rgba(71,53,45,.18); border-bottom: 1px solid rgba(71,53,45,.18); }
.reviews-grid article { min-height: 320px; padding: clamp(1.5rem,3vw,2.4rem); display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; }
.reviews-grid article + article { border-left: 1px solid rgba(71,53,45,.18); }
.review-stars { color: var(--sand); letter-spacing: .18em; font-size: .78rem; }
.reviews-grid article > p { margin: 0; font: 400 clamp(1.2rem,1.7vw,1.65rem)/1.45 "Italiana", Georgia, serif; color: #493b33; }
.reviews-grid footer { display: grid; gap: .25rem; background: transparent; color: inherit; padding: 0; }
.reviews-grid footer strong { font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; }
.reviews-grid footer span { font-size: .78rem; color: #786b61; }
.reviews-link { margin-top: 2rem; }

.pricing { background: var(--sand); }
.pricing-intro h2 { font-size: clamp(3.8rem,7vw,7.6rem); }
.price-card { min-height: 410px; padding: 2.8rem; }
.price-card.featured { background: var(--cream); }
.price-card h3 { font-family: "Italiana", Georgia, serif; font-size: clamp(2.2rem,3.4vw,3.7rem); }

.location-copy { background: var(--dark, #26362c); }
.location h2 { font-size: clamp(3.4rem,6vw,6.8rem); }
.location-image { filter: saturate(.72); }

.contact { background: var(--cream); }
.contact h2 { font-size: clamp(3.6rem,6vw,6.8rem); }
.contact-form { background: #eee8dc; padding: clamp(1.8rem,4vw,3.8rem); }
.contact-form label { margin-bottom: 2rem; }
.button.dark { background: var(--dark, #26362c); }
.site-footer { background: #1c2821; }

@media (max-width: 1000px) {
    .hero { min-height: 820px; }
    .hero::before, .hero-content { width: 53%; }
    .hero-content { padding-left: clamp(2rem,6vw,4rem); padding-right: clamp(2rem,6vw,4rem); }
}

@media (max-width: 680px) {
    .hero { height: auto; min-height: 100svh; padding-top: 58vh; background-position: 57% top; background-size: auto 58vh; background-repeat: no-repeat; background-color: var(--sand); }
    .hero::before { inset: 58vh 0 0; width: 100%; }
    .hero-shade { background: linear-gradient(0deg, transparent 42%, rgba(15,22,17,.15)); }
    .hero-content { width: 100%; height: auto; min-height: 54vh; padding: 3.5rem 1.5rem 4rem; justify-content: flex-start; }
    .hero-content h1 { font-size: clamp(3rem,14vw,4.7rem); }
    .hero-copy { text-align: left; }
    .facts { background: var(--cream); }
    .about-copy h2, .section-heading h2, .pricing-intro h2, .location h2, .contact h2, .reviews h2 { font-size: clamp(3.2rem,14vw,5rem); }
    .gallery-grid { grid-template-rows: 370px repeat(2,190px); }
    .price-card { min-height: 350px; }
}

/* Mobile polish */
section[id] { scroll-margin-top: 72px; }
@media (max-width: 680px) {
    html, body { max-width: 100%; overflow-x: hidden; }
    .site-header { position: absolute; height: 66px; padding: 0 16px; }
    .site-header.scrolled { height: 66px; }
    .brand { font-size: .88rem; letter-spacing: .2em; }
    .header-actions { gap: 6px; }
    .language { margin-right: 0; gap: 2px; }
    .language a { display: grid; place-items: center; min-width: 34px; min-height: 44px; font-size: .62rem; }
    .menu-button { width: 44px; height: 44px; margin-right: -8px; cursor: pointer; }
    .main-nav { position: fixed; top: 66px; padding: 28px 22px 34px; gap: 0; border-top: 1px solid rgba(255,255,255,.16); box-shadow: 0 20px 40px rgba(0,0,0,.2); }
    .main-nav a { display: block; padding: 14px 0; min-height: 48px; border-bottom: 1px solid rgba(255,255,255,.12); font-size: .75rem; opacity: 1; }
    .hero { min-height: 0; padding-top: 52svh; background-position: var(--hero-x,56%) var(--hero-y,0%); background-size: auto 52svh; }
    .hero::before { inset: 52svh 0 0; }
    .hero-content { min-height: 0; padding: 42px 20px 48px; }
    .hero-content .kicker { margin-bottom: 18px; }
    .hero-content h1 { font-size: clamp(2.85rem, 13.5vw, 4.25rem); line-height: .98; }
    .hero-copy { margin: 22px 0 26px; font-size: .92rem; line-height: 1.7; }
    .hero-buttons { gap: 10px; margin-top: 0; }
    .button { min-height: 54px; padding: 14px 16px; }
    .facts { padding: 0 16px; }
    .facts div { justify-content: flex-start; min-height: 72px; padding: 12px 8px; border-bottom-color: var(--line); }
    .facts strong { font-size: .68rem; letter-spacing: .05em; }
    .facts i { min-width: 22px; }
    .section-pad { padding-left: 20px; padding-right: 20px; }
    .about { gap: 42px; }
    .about-image img { height: 115vw; max-height: 540px; }
    .image-mark { width: 68px; height: 68px; right: 14px; bottom: 14px; font-size: 1rem; }
    .kicker { margin-bottom: 18px; line-height: 1.5; }
    .about-copy h2, .section-heading h2, .pricing-intro h2, .location h2, .contact h2, .reviews h2 { font-size: clamp(3rem, 13vw, 4.4rem); overflow-wrap: anywhere; }
    .about-copy > p:not(.kicker) { line-height: 1.75; }
    .section-heading { margin-bottom: 34px; }
    .section-number { flex: 0 0 42px; width: 42px; height: 42px; margin-left: 12px; }
    .amenities-grid article, .amenities-grid article:nth-child(odd) { min-height: 0; padding: 24px 0; gap: 14px; }
    .amenities-grid h3 { font-size: 1.35rem; }
    .gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 105vw 48vw 48vw; gap: 6px; }
    .gallery-grid img { min-width: 0; }
    .gallery-slider { margin-top: 22px; }
    .gallery-slider-head { padding-bottom: 10px; }
    .gallery-arrows button { width: 44px; height: 44px; }
    .gallery-more { gap: 6px; scroll-padding-left: 0; }
    .gallery-more figure { flex-basis: calc(100vw - 52px); height: 64vw; max-height: 330px; }
    .gallery-arrows button { width: 44px; height: 44px; }
    .gallery-rail { margin-inline: -22px; padding-inline: 22px; scroll-padding-inline: 22px; }
    .gallery-card { flex-basis: min(82vw,620px); border-radius: 14px; }
    .reviews-intro { grid-template-columns: 1fr; gap: 22px; margin-bottom: 30px; }
    .reviews-intro p:not(.kicker) { line-height: 1.75; }
    .reviews-score { border-left: 0; border-top: 1px solid rgba(71,53,45,.2); padding: 20px 0; }
    .reviews-grid { grid-template-columns: 1fr; }
    .reviews-grid article { min-height: 0; padding: 26px 0; }
    .reviews-grid article + article { border-left: 0; border-top: 1px solid rgba(71,53,45,.18); }
    .reviews-grid article > p { font-size: clamp(1.35rem,7vw,1.75rem); }
    .reviews-link { margin-top: 26px; }
    .pricing-intro { gap: 22px; margin-bottom: 34px; }
    .pricing-intro > p:last-child { line-height: 1.75; }
    .rate { padding: 32px 0; }
    .rate strong { font-size: clamp(3.5rem, 17vw, 5.4rem); }
    .pricing-included { gap: 13px; }
    .pricing-included span { line-height: 1.5; }
    .pricing-actions { padding: 18px 0; gap: 10px; }
    .airbnb-calendar-embed { grid-template-columns: 1fr; gap: 24px; margin-top: 34px; border-radius: 16px; padding: 22px; }
    .calendar-months { grid-template-columns: 1fr; }
    .calendar-month { border-radius: 14px; padding: 16px; }
    .calendar-days span { font-size: .68rem; }
    .calendar-actions { grid-column: auto; margin-top: 0; justify-content: stretch; }
    .calendar-actions .button { width: 100%; min-width: 0; }
    .location-image { min-height: 78vw; max-height: 460px; }
    .location-copy { padding-top: 62px; padding-bottom: 62px; }
    .distance-grid { margin-top: 32px; padding-top: 22px; }
    .distance-grid strong { font-size: 1.08rem; }
    .distance-grid span { font-size: .58rem; line-height: 1.4; }
    .contact { gap: 36px; }
    .contact-socials { display: grid; grid-template-columns: 1fr; gap: 8px; }
    .contact-socials .social-link { min-height: 56px; width: 100%; font-size: .8rem; }
    .contact-form { margin-left: -20px; margin-right: -20px; padding: 32px 20px; }
    .contact-form input, .contact-form textarea { font-size: 16px; }
    .site-footer { padding: 44px 20px 28px; }
    .footer-main { grid-template-columns: 1fr; gap: 28px; }
    .footer-logo { max-width: 180px; max-height: 90px; margin-bottom: 24px; }
    .footer-bottom { grid-template-columns: 1fr; gap: 16px; align-items: start; }
    .footer-credit { align-items: flex-start; }
    .footer-credit img { height: 32px; max-width: 180px; }
    .footer-top { width: 42px; height: 42px; }
}

@media (max-width: 370px) {
    .brand { font-size: .78rem; }
    .language a { min-width: 30px; }
    .hero-content h1 { font-size: 2.75rem; }
    .facts strong { font-size: .62rem; }
    .section-pad { padding-left: 16px; padding-right: 16px; }
    .contact-form { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; }
}

@media (max-width: 900px) and (orientation: landscape) {
    .hero { min-height: 700px; height: auto; }
}

/* Design templates */
.design-boutique .hero::before { width: 0; }
.design-boutique .hero-shade { background: linear-gradient(90deg,rgba(16,28,21,.72),rgba(16,28,21,.12) 75%); }
.design-boutique .hero-content { width: min(760px,72%); }
.design-boutique .about-image img,.design-boutique .gallery-grid img,.design-boutique .gallery-main-slider,.design-boutique .gallery-stage,.design-boutique .gallery-thumbs button,.design-boutique .location-image { border-radius: 22px; }
.design-boutique .image-mark { right: 20px; bottom: 20px; }
.design-boutique .amenities { margin: 0 clamp(16px,3vw,48px); border-radius: 28px; }
.design-boutique .amenities-grid article { padding-left: 18px; }
.design-boutique .contact-form { border-radius: 22px; }
.design-boutique .button { border-radius: 999px; }
.design-boutique .pricing-offer { border: 1px solid rgba(255,255,255,.3); padding: 0 clamp(18px,3vw,40px); }

.design-minimal { --pad: clamp(4rem,7vw,7rem); }
.design-minimal .hero { min-height: 760px; max-height: 880px; }
.design-minimal .hero::before { width: 36%; background: var(--cream); }
.design-minimal .hero-content { width: 36%; color: var(--ink); padding-left: clamp(2rem,4vw,5rem); padding-right: clamp(2rem,4vw,5rem); }
.design-minimal .hero-content .kicker,.design-minimal .hero-copy { color: color-mix(in srgb,var(--ink) 70%,transparent); }
.design-minimal .hero-content h1 { font-family:"DM Sans",sans-serif; font-size:clamp(2.8rem,4.6vw,5.2rem); letter-spacing:-.07em; }
.design-minimal .button.primary { background:var(--ink); color:white; }
.design-minimal .button.ghost { color:var(--ink); border-color:var(--ink); }
.design-minimal .kicker::before,.design-minimal .image-mark,.design-minimal .section-number { display:none; }
.design-minimal .section-heading h2,.design-minimal .about-copy h2,.design-minimal .pricing-intro h2,.design-minimal .location h2,.design-minimal .contact h2 { font-family:"DM Sans",sans-serif; letter-spacing:-.065em; }
.design-minimal .section-heading { border-bottom:1px solid var(--line); padding-bottom:24px; }
.design-minimal .amenities { background:var(--cream); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.design-minimal .gallery-grid { gap:3px; }
.design-minimal .contact-form { background:transparent; border:1px solid var(--line); }

/* Editor-controlled text color for every public block. */
.hero,.hero .kicker,.hero .hero-copy { color:var(--text-hero,white); }
.facts,.facts strong,.facts i { color:var(--text-facts,var(--ink)); }
.about,.about .kicker,.about h2,.about .text-link { color:var(--text-about,var(--ink)); }
.about-copy>p:not(.kicker) { color:color-mix(in srgb,var(--text-about,var(--ink)) 76%,transparent); }
.amenities,.amenities .kicker,.amenities h2,.amenities h3,.amenities-grid i { color:var(--text-amenities,var(--ink)); }
.amenities-grid p { color:color-mix(in srgb,var(--text-amenities,var(--ink)) 72%,transparent); }
.gallery,.gallery .kicker,.gallery h2,.gallery-arrows button { color:var(--text-gallery,var(--ink)); }
.reviews,.reviews .kicker,.reviews h2,.reviews strong,.reviews footer { color:var(--text-reviews,var(--ink)); }
.reviews-intro p:not(.kicker),.reviews article>p,.reviews footer span { color:color-mix(in srgb,var(--text-reviews,var(--ink)) 74%,transparent); }
.pricing,.pricing .pricing-intro,.pricing .pricing-intro .kicker,.pricing .pricing-intro h2,.pricing .rate strong { color:var(--text-pricing,white); }
.pricing-intro>p:last-child,.rate span,.pricing-included>strong,.pricing-included span { color:color-mix(in srgb,var(--text-pricing,white) 76%,transparent); }
.location,.location .kicker,.location h2,.distance-grid strong { color:var(--text-location,white); }
.location-copy>p:not(.kicker),.distance-grid span { color:color-mix(in srgb,var(--text-location,white) 70%,transparent); }
.contact,.contact .kicker,.contact h2,.contact-intro>a,.contact-form input,.contact-form textarea { color:var(--text-contact,var(--ink)); }
.contact-intro>p:not(.kicker),.contact-form label span,.contact-form small { color:color-mix(in srgb,var(--text-contact,var(--ink)) 70%,transparent); }
.site-footer,.site-footer .brand,.site-footer strong,.site-footer a { color:var(--text-footer,white); }
.footer-brand-block p,.footer-column p,.footer-column a,.footer-bottom,.footer-credit { color:color-mix(in srgb,var(--text-footer,white) 62%,transparent); }
.hero .scroll-cue i { color:var(--icon-hero,white); }
.facts i { color:var(--icon-facts,var(--sand)); }
.about .image-mark { color:var(--icon-about,var(--sand)); }
.amenities-grid i { color:var(--icon-amenities,var(--sand)); }
.gallery-arrows button,.gallery-card span { color:var(--icon-gallery,var(--ink)); }
.reviews .review-stars { color:var(--icon-reviews,var(--sand)); }
.pricing .calendar-legend i,.pricing .calendar-toolbar button { color:var(--icon-pricing,var(--sand)); }
.location .distance-grid strong { color:var(--icon-location,white); }
.contact-socials svg { color:var(--icon-contact,var(--ink)); }
.site-footer .footer-top { color:var(--icon-footer,white); }
.pricing .pricing-actions .button.ghost { background:transparent; border-color:var(--reserve-button-color,white); color:var(--reserve-button-text-color,white); }
.pricing .pricing-actions .button.whatsapp { background:var(--whatsapp-button-color,#26362c); color:var(--whatsapp-button-text-color,white); }

/* Klidnejsi uvodni kompozice: nadpis nahore a subtilni pruhledna tlacitka. */
.design-boutique .hero-content {
    justify-content:flex-start;
    padding-top:clamp(8.5rem,14vh,11rem);
}
.design-boutique .hero-buttons { margin-top:auto; gap:.75rem; }
.design-boutique .hero-buttons .button.ghost {
    min-width:clamp(150px,12vw,190px);
    min-height:48px;
    padding:.85rem 1.15rem;
    border-color:rgba(255,255,255,.34);
    border-radius:999px;
    background:rgba(255,255,255,.055);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
    -webkit-backdrop-filter:blur(5px);
    backdrop-filter:blur(5px);
    transition:background-color .25s ease,border-color .25s ease,transform .25s ease;
}
.design-boutique .hero-buttons .button.ghost:hover {
    background:rgba(255,255,255,.13);
    border-color:rgba(255,255,255,.58);
    transform:translateY(-1px);
}

@media(max-width:680px){
    body { font-size:16px; line-height:1.65; -webkit-text-size-adjust:100%; text-rendering:optimizeLegibility; }
    h1,h2,.pricing h2,.location h2,.about-copy h2,.section-heading h2,.contact h2,.reviews h2,.airbnb-calendar-embed h3,.rate strong,.reviews-score strong,.reviews-grid article>p,.amenities-grid h3 { font-family:"Manrope","DM Sans",Arial,Helvetica,sans-serif; font-weight:500; letter-spacing:-.035em; }
    .brand { font-family:"DM Sans",Arial,Helvetica,sans-serif; font-weight:600; letter-spacing:.16em; }
    .kicker { font-size:.72rem; font-weight:600; letter-spacing:.14em; }
    p,.about-copy>p:not(.kicker),.reviews-intro p:not(.kicker),.pricing-intro>p:last-child,.calendar-copy>p:not(.kicker),.location-copy>p:not(.kicker),.contact-intro>p:not(.kicker) { font-size:1rem; line-height:1.7; letter-spacing:0; }
    .design-boutique .hero { display:flex; align-items:flex-start; min-height:100svh; padding-top:0; background-size:cover; background-position:var(--hero-x,56%) var(--hero-y,50%); background-repeat:no-repeat; }
    .design-boutique .hero::before { display:none; }
    .design-boutique .hero-shade { background:linear-gradient(0deg,rgba(12,23,17,.88) 0%,rgba(12,23,17,.48) 52%,rgba(12,23,17,.18) 100%); }
    .design-boutique .hero-content { width:100%; min-height:100svh; padding:clamp(100px,15svh,132px) 20px max(34px,env(safe-area-inset-bottom)); justify-content:flex-start; }
    .design-boutique .hero-content .kicker { margin-bottom:12px; }
    .design-boutique .hero-content h1 { font-size:clamp(2.65rem,12vw,3.8rem); line-height:1.02; font-weight:500; letter-spacing:-.055em; }
    .design-boutique .hero-buttons { margin-top:auto; gap:8px; }
    .design-boutique .hero-buttons .button.ghost { flex:0 1 auto; width:auto; min-width:0; min-height:46px; padding:12px 15px; gap:1.5rem; }
    .design-boutique .hero-copy { max-width:36rem; margin:18px 0 22px; font-size:1rem; line-height:1.65; font-weight:400; }
    .design-boutique .amenities { margin:0 8px; border-radius:18px; }
    .design-boutique .about-image img,.design-boutique .gallery-grid img,.design-boutique .gallery-main-slider,.design-boutique .gallery-stage,.design-boutique .gallery-thumbs button,.design-boutique .location-image { border-radius:14px; }
    .design-minimal .hero { min-height:0; max-height:none; }
    .design-minimal .hero::before { width:100%; }
    .design-minimal .hero-content { width:100%; }
    .design-minimal .hero-content h1 { font-size:clamp(2.7rem,12vw,4rem); }
}
