/* Demo 1's palette and typography on Demo 3's existing composition. */
@font-face{font-family:'Bodoni Moda';src:url('fonts/bodoni-moda.woff') format('woff');font-weight:400 900;font-display:swap}
@font-face{font-family:'Bodoni Moda';src:url('fonts/bodoni-moda-italic.woff') format('woff');font-style:italic;font-weight:400 900;font-display:swap}
:root{--paper:#09131b;--white:#0e1c27;--ink:#e7eef2;--muted:#a3b3be;--sea:#7db2d8;--warm:#d2ae6e;--line:#1e3141;--sand:#0e1c27;--wash:#0f2230;--brass:#d2ae6e;color-scheme:dark}
h1,h2,h3,.brand,.suite-promise{font-family:'Bodoni Moda',Georgia,serif}
body{background:var(--paper);color:var(--ink)}
.site-header.is-scrolled{background:rgba(9,19,27,.97)}
.btn.primary{background:var(--warm);color:#09131b}.btn.primary:hover{background:#e4c48c}.btn.outline{color:var(--ink);border-color:var(--line)}.hero .btn.outline{color:white;border-color:#ffffff90}
.quick-shell,.quick-form,.enquiry-panel,.closing,.site-footer,.checkin-strip,.source-note{background:var(--paper);color:var(--ink)}
.quick-form{grid-template-columns:1.35fr 1.5fr .55fr auto;gap:22px}
.quick-form input,.field input,.field select,textarea{background:var(--white);color:var(--ink);border-color:var(--line)}
.apt-buttons{display:flex;gap:5px;min-height:48px}.apt-buttons button{flex:1;padding:10px 8px;border:1px solid var(--line);background:var(--white);color:var(--muted);font-size:.95rem}.apt-buttons button[aria-pressed=true]{border-color:var(--warm);color:var(--warm);background:#d2ae6e12}.apt-buttons button:hover{border-color:var(--muted)}
.date-trigger{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;width:100%;padding:10px 12px;background:var(--white);border:1px solid var(--line);color:var(--ink);text-align:left;font-size:.98rem}.date-trigger svg{flex-shrink:0}.date-trigger:hover{border-color:var(--warm)}
.date-feedback{font-size:.77rem;color:var(--warm)}.date-feedback:empty{display:none}
.suite-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:start}
.suite-grid .suite{display:flex;flex-direction:column;gap:20px;margin:0;min-width:0;align-items:stretch}
.suite-grid .suite>h3{font-size:clamp(1.9rem,3vw,3rem);order:0}
.suite-grid .suite .suite-media{order:1}.suite-grid .suite .suite-copy{order:2;padding:0;max-width:none}
.suite-grid .suite .cover>img{height:290px;aspect-ratio:4/3;object-fit:cover;object-position:center}
.suite-grid .suite .thumbnails{display:none}.suite-grid .suite .suite-photo{aspect-ratio:auto}
.suite-grid .suite .suite-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:18px}
.suite-grid .suite .suite-actions>.line-link{display:none}.suite-grid .suite .suite-promise{font-size:1.13rem;margin:20px 0 16px}
.suite-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.suite-details summary{cursor:pointer;padding:15px 28px 15px 0;list-style:none;position:relative;font-size:1rem}.suite-details summary::-webkit-details-marker{display:none}.suite-details summary::after{content:'+';position:absolute;right:2px;color:var(--warm);font-size:1.4rem;top:10px}.suite-details[open] summary::after{content:'−'}.details-body{padding-bottom:18px;color:var(--muted)}.specs{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.specs dd{color:var(--ink)}
.apartments-section>.source-note{margin-top:36px}.photo-count{background:#09131bed;color:var(--ink)}
.nerja-section,.nerja-copy{background:#0f2230;color:var(--ink)}.nerja-copy .lead,.airport p{color:var(--muted)}.airport-number{color:var(--warm)}
.beaches-section{border-bottom:1px solid var(--line)}.beaches-section .lead{margin-top:20px;font-size:1rem}.beach-links{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:34px}.beach-links a{display:grid;grid-template-columns:1fr auto;gap:12px;border-top:1px solid var(--line);padding-top:20px}.beach-links strong{font-family:'Bodoni Moda',Georgia,serif;font-size:1.6rem;font-weight:400;grid-column:1/-1}.beach-links span{font-size:.9rem;color:var(--warm)}
.enquiry-result{background:var(--wash);border-color:var(--line)}.enquiry-message,textarea{background:var(--white);color:var(--ink)}.booking-options a{color:var(--ink)}.gallery{background:var(--paper);color:var(--ink)}.gallery-header,.gallery-view,.gallery-help{color:var(--ink)}.gallery-header button,.gallery-view>button{color:var(--ink)}
.date-calendar{width:min(470px,calc(100% - 24px));max-height:calc(100dvh - 32px);margin:auto;padding:26px;background:var(--paper);color:var(--ink);border:1px solid #456070;overflow:auto;box-shadow:0 24px 100px #0009}.date-calendar::backdrop{background:#000b;backdrop-filter:blur(5px)}
.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.calendar-heading h2{font-size:1.8rem}.calendar-heading button{font-size:1.8rem;border:0;background:none;color:var(--ink);min-width:44px;min-height:44px}
#calendar-instruction{font-size:.94rem;color:var(--warm);min-height:28px;margin-top:12px}.month-controls{display:flex;align-items:center;justify-content:space-between;margin:12px 0;gap:12px}.month-controls button{border:1px solid var(--line);background:var(--white);color:var(--ink);width:44px;height:44px}.month-controls select{flex:1;min-width:0;background:var(--white);border:0;color:var(--ink);padding:10px;text-align:center;font-size:1rem;text-transform:capitalize}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-weekdays span{text-align:center;font-size:.75rem;color:var(--muted);padding:10px 0}.calendar-days button{height:44px;border:1px solid transparent;background:transparent;color:var(--ink);font-size:1rem;min-width:0;padding:0}.calendar-days button:hover:not(:disabled){border-color:var(--warm)}.calendar-days button:disabled{opacity:.25}.calendar-days button.in-range{background:#d2ae6e20}.calendar-days button.selected{background:var(--warm);color:var(--paper);font-weight:600}.calendar-days button.today{border-bottom-color:var(--warm)}.calendar-summary{font-size:.95rem;margin-top:18px;min-height:26px}.calendar-demo{color:var(--muted);font-size:.79rem;line-height:1.5;margin-top:12px}.calendar-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px}.calendar-actions .btn{padding:12px 16px;min-height:48px}.calendar-actions .line-link{font-size:.86rem}
@media(max-width:1000px){.quick-form{grid-template-columns:1fr 1fr}.suite-grid{gap:18px}.suite-grid .suite .cover>img{height:240px}.suite-grid .suite .btn{padding-inline:10px}.beach-links{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.suite-grid{grid-template-columns:1fr;gap:42px}.suite-grid .suite{gap:12px}.suite-grid .suite>h3{font-size:2.3rem}.suite-grid .suite .cover>img{height:auto;aspect-ratio:4/3}.suite-grid .suite .suite-actions{margin-top:12px}.suite-grid .suite .booking-link{margin-top:12px}.section-heading{margin-bottom:32px;gap:25px}.quick-form{gap:16px}.quick-form>.field:first-child,.quick-form>.date-field{grid-column:1/-1}.quick-form .btn{align-self:end}.enquiry-panel{padding:24px 0}.date-calendar{padding:18px}.calendar-days button{height:42px}.calendar-actions{gap:12px}.calendar-actions .btn{font-size:.9rem}.beaches-section{padding-block:60px}.mobile-cta{background:var(--paper)}.site-header nav.is-open{background:var(--paper)}}

/* Distances are source estimates, never invented walking times. */
.beach-links{grid-template-columns:repeat(5,minmax(0,1fr))}.beach-card{border-top:1px solid var(--line);padding-top:20px}.beach-card h3{font-size:1.65rem;margin-bottom:22px}.beach-card dl{margin:0}.beach-card dl>div{display:flex;justify-content:space-between;gap:15px;padding:5px 0;font-size:.94rem}.beach-card dt{color:var(--muted)}.beach-card dd{margin:0;color:var(--ink)}.beach-source{margin-top:26px;font-size:.76rem;color:var(--muted)}.beach-source a{text-decoration:underline;text-underline-offset:3px}.quick-form input{min-height:48px}.date-trigger[aria-invalid=true]{border-color:#efb1a3}
@media(max-width:800px){.beach-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.beach-card h3{font-size:1.55rem}}
@media(max-width:360px){.month-controls{gap:6px}.month-controls button{flex:0 0 34px;width:34px}.month-controls select{padding:10px 4px;font-size:.88rem}}

/* Approved review: explicit foreground colours on every dark surface. */
.hero-copy h1 em{color:var(--horizon-gold);text-shadow:0 2px 16px #0009}
.hero-copy .btn.primary{background:var(--horizon-bg);color:var(--horizon-text)}
.hero-copy .btn.primary:hover,.hero-copy .btn.primary:focus-visible{background:var(--horizon-text);color:var(--horizon-bg)}
.destination-word{color:var(--horizon-text);text-shadow:0 4px 35px #0008;font-family:'Bodoni Moda',Georgia,serif}
.airport .line-link,.checkin-links .line-link{color:var(--horizon-text)}
.enquiry-copy em{color:var(--horizon-gold)}
.enquiry-copy .lead,.enquiry-copy h2,.host-note{color:#fff}
.enquiry-copy::after{background:linear-gradient(90deg,rgba(9,19,27,.8),rgba(9,19,27,.16)),linear-gradient(0deg,rgba(9,19,27,.68),transparent 65%)}
.nerja-photo::after{background:linear-gradient(0deg,#0f2230,transparent 80%)}
.checkin-teaser{background:var(--horizon-panel);color:var(--horizon-text);border:1px solid var(--horizon-line)}
.checkin-teaser h2,.checkin-path,.checkin-path span{color:var(--horizon-text)}
.checkin-path b{color:var(--horizon-gold)}
.checkin-teaser p{color:var(--horizon-muted)}
.quick-form input[type=number],.enquiry-panel input[type=number],#children{text-align:center;padding-inline:12px}
.quick-form input[type=number],.enquiry-panel input[type=number]{appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}
.field input,.field select{border:1px solid var(--horizon-line)}
.quick-form .btn{white-space:normal}
.stay-rules{margin-top:24px;padding-top:22px;border-top:1px solid var(--horizon-line);font-size:.92rem;line-height:1.7}
.stay-rules h4{font-family:inherit;font-size:.92rem;color:var(--horizon-gold);font-weight:500;margin-bottom:12px}
.stay-rules p+p{margin-top:12px}
.site-header .language{display:block}.site-header .language select[hidden]{display:none}
.site-header .language-picker{font-size:.84rem;font-weight:400;letter-spacing:normal}
.field-error{color:#ffc0b3}
@media(max-width:700px){.destination-word{font-size:clamp(5rem,24vw,10rem)}.checkin-teaser{padding:28px 22px}.checkin-links{gap:20px}.enquiry-copy::after{background:linear-gradient(90deg,#09131bcc,#09131b55),linear-gradient(0deg,#09131baa,transparent)}.language-picker>button{padding:8px;min-width:58px}.hero-copy h1{font-size:clamp(3rem,12vw,5.5rem)}}

.enquiry-image{object-position:60% center}.enquiry-copy h2,.enquiry-copy .lead{text-shadow:0 2px 12px #0009}

/* Verified beach access routes */
.beach-access{color:var(--horizon-muted);font-size:.78rem;line-height:1.5;min-height:3em;margin:.6rem 0 1.2rem}.beach-card dd a{display:inline-flex;align-items:baseline;gap:6px;border:0;padding:0;white-space:nowrap;color:var(--horizon-text);text-underline-offset:4px;text-decoration-color:var(--horizon-line)}.beach-card dd a:hover{color:var(--horizon-gold);text-decoration-color:currentColor}.beach-card dd a span{font-size:.7em;color:var(--horizon-gold)}

/* Second approved review: stable rows, full lettering and comfortable insets. */
.quick-form>.date-field{position:relative}
.quick-form .date-feedback{position:absolute;top:100%;left:0;margin-top:8px;line-height:1.5}
.quick-form{padding-bottom:48px}
.quick-form>.btn{min-height:48px;padding-block:10px}
.destination-word{bottom:12%;font-family:Lora,Georgia,serif;font-style:normal;font-weight:500;font-size:clamp(5rem,21vw,18rem);line-height:1.25;letter-spacing:-.035em;white-space:nowrap}
.suite-details .specs{border-bottom:0}
.enquiry-result{padding:26px;border:1px solid var(--horizon-line)}
.enquiry-panel>form>.fine-note{padding-inline:12px}
@media(max-width:700px){.enquiry-panel{padding:24px 20px}.enquiry-result{padding:20px 16px}.enquiry-panel>form>.fine-note{padding-inline:0}.quick-form>.date-field{margin-bottom:26px}.quick-form{padding-bottom:24px}.destination-word{bottom:15%;font-size:25vw}}

/* Third approved review: discreet navigation and verified guest ratings. */
#guest-name{padding:10px 12px}
.site-header .language-picker>button{background:transparent;border-color:transparent}
.destination-word{bottom:1.5%;font-size:clamp(5rem,18vw,15rem)}
.suite-grid .suite>.suite-rating{order:0;margin:-8px 0 0;color:var(--horizon-muted);font-size:.88rem;line-height:1.6}
.suite-rating strong{color:var(--horizon-gold);font-size:1.08rem;font-weight:500}
.ratings-date{color:var(--horizon-muted);font-size:.75rem;margin-top:24px}
@media(max-width:700px){.destination-word{bottom:3%;font-size:22vw}.suite-grid .suite>.suite-rating{margin:0}}

/* Approved town panorama: preserve the coastline and mountains at every width. */
.nerja-photo.nerja-panorama{height:auto;aspect-ratio:1280/456}
.nerja-panorama img{display:block;object-fit:contain;object-position:center}
.nerja-panorama::after{background:linear-gradient(0deg,#0f2230,transparent 28%)}
@media(max-width:700px){.nerja-panorama .image-caption{position:relative;inset:auto;margin:0;max-width:none;background:#0f2230}.nerja-photo.nerja-panorama{aspect-ratio:auto}.nerja-panorama img{height:auto}.nerja-panorama::after{display:none}}
