@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');

:root{--ink:#132b23;--green:#154d31;--lime:#b7f34a;--cream:#f7f5ed;--sand:#e8dfca;--muted:#66756e;--line:rgba(19,43,35,.14);--white:#fff;--shadow:0 18px 55px rgba(17,49,38,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;overflow-x:hidden}.site-noise{overflow:hidden;background:radial-gradient(circle at 12% 13%,rgba(183,243,74,.08),transparent 28rem)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.section{padding:7.5rem clamp(1.25rem,6vw,6rem)}.section-kicker,.eyebrow{margin:0 0 1.2rem;color:#c89537;font-size:.72rem;font-weight:800;letter-spacing:.21em;text-transform:uppercase}.section-kicker.light,.eyebrow.light{color:var(--lime)}h1,h2,h3{margin:0;line-height:.98;letter-spacing:-.055em}h1,h2{font-family:'Playfair Display',Georgia,serif}h2{font-size:clamp(2.6rem,5.4vw,5.6rem)}h1 em,h2 em{color:var(--lime);font-weight:600}.header{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.3rem clamp(1.25rem,4vw,4.5rem);color:#fff}.brand{display:flex;align-items:center;gap:.65rem;font-size:1.05rem;line-height:1}.brand-mark{display:grid;place-items:center;width:2.45rem;height:2.45rem;border-radius:50%;background:var(--lime);color:var(--ink);font-family:Georgia,serif;font-size:1.65rem;font-weight:800}.brand small{display:block;margin-top:.25rem;color:rgba(255,255,255,.64);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase}.nav{display:flex;gap:clamp(1rem,2.5vw,2.6rem);font-size:.88rem;font-weight:600}.nav a{opacity:.83;transition:.2s}.nav a:hover{opacity:1;color:var(--lime)}.header-cta{padding:.78rem 1.08rem;border:1px solid rgba(255,255,255,.4);border-radius:99px;font-size:.78rem;font-weight:700;transition:.25s}.header-cta span{color:var(--lime);padding-left:.45rem}.header-cta:hover{background:#fff;color:var(--ink)}
.hero{position:relative;min-height:min(52rem,100svh);display:flex;align-items:flex-end;padding:9rem clamp(1.25rem,7vw,7rem) 6.5rem;color:#fff;isolation:isolate;background:#173e2c}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-image{z-index:-2;object-position:center bottom}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(10,39,28,.86) 0%,rgba(10,39,28,.45) 45%,rgba(10,39,28,.13) 100%),linear-gradient(0deg,rgba(8,31,23,.57),transparent 52%)}.hero-copy{max-width:50rem}.hero h1{max-width:47rem;font-size:clamp(4rem,9vw,9.5rem);text-shadow:0 5px 30px rgba(0,0,0,.18)}.hero-lead{max-width:33rem;margin:1.7rem 0 2rem;color:rgba(255,255,255,.88);font-size:clamp(1rem,1.35vw,1.22rem);line-height:1.65}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;padding:1rem 1.3rem;border:1px solid transparent;border-radius:99px;font-size:.86rem;font-weight:800;transition:transform .22s,box-shadow .22s,background .22s}.button:hover{transform:translateY(-3px);box-shadow:0 12px 25px rgba(0,0,0,.2)}.button-primary{background:var(--lime);color:var(--ink)}.button-ghost{border-color:rgba(255,255,255,.6);color:#fff}.button-ghost:hover{background:#fff;color:var(--ink)}.button-sand{background:var(--sand);color:var(--ink)}.hero-side-note{position:absolute;right:clamp(1.3rem,4vw,4rem);bottom:4.5rem;display:grid;gap:.45rem;text-align:right}.hero-side-note span{font-size:.72rem;letter-spacing:.1em;color:var(--lime)}.hero-side-note strong{font-size:.92rem;line-height:1.25}.scroll-cue{position:absolute;bottom:1.7rem;left:clamp(1.25rem,7vw,7rem);display:flex;align-items:center;gap:.55rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.scroll-cue span{display:block;width:2.2rem;height:1px;background:var(--lime)}
.welcome{padding-bottom:4.3rem}.welcome-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:clamp(2.5rem,8vw,10rem)}.welcome-line{width:8rem;height:.42rem;margin-top:1.7rem;background:var(--lime)}.welcome-content>p{max-width:46rem;margin:0;font-size:clamp(1.28rem,2vw,1.75rem);line-height:1.58;color:var(--muted)}.amenity-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:3.2rem;background:var(--line);border:1px solid var(--line)}.amenity-strip article{min-height:10rem;padding:1.25rem;background:var(--cream);transition:background .25s,transform .25s}.amenity-strip article:hover{background:#fff;transform:translateY(-5px)}.amenity-strip span{display:block;margin-bottom:1.2rem;color:#9ccc35;font-size:1.75rem}.amenity-strip strong,.amenity-strip small{display:block}.amenity-strip strong{font-size:.9rem}.amenity-strip small{margin-top:.35rem;color:var(--muted);font-size:.77rem}.image-break{height:clamp(21rem,42vw,39rem);margin:0 clamp(1.25rem,6vw,6rem);overflow:hidden}.image-break img{width:100%;height:100%;object-fit:contain;background:var(--ink);transition:transform 1s ease}.image-break:hover img{transform:scale(1.035)}
.apartments{background:#fff}.section-head{display:flex;justify-content:space-between;gap:3rem;align-items:end;margin-bottom:4rem}.section-head>p{max-width:23rem;margin:0 0 .55rem;color:var(--muted);line-height:1.6}.apartment-list{display:grid;gap:4.8rem}.apartment-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(17rem,.75fr);align-items:center;gap:clamp(2rem,7vw,8rem)}.apartment-card:nth-child(even){grid-template-columns:minmax(17rem,.75fr) minmax(0,1.25fr)}.apartment-card:nth-child(even) .card-photo{order:2}.card-photo{position:relative;display:block;width:100%;aspect-ratio:1.25;overflow:hidden;border:0;background:#d9dfda;cursor:zoom-in}.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.card-photo:hover img{transform:scale(1.06)}.card-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,26,17,.55),transparent 45%);pointer-events:none}.photo-count{position:absolute;z-index:1;right:1.1rem;bottom:1rem;display:flex;gap:.75rem;align-items:center;color:#fff;font-size:.75rem;font-weight:700}.photo-count b{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--lime);color:var(--ink);font-size:1rem}.apartment-info{padding:1rem 0}.apartment-type{margin:0 0 .85rem;color:#c89537;font-size:.73rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.apartment-info h3{font-size:clamp(2.3rem,4vw,4.2rem)}.apartment-description{margin:1.35rem 0;color:var(--muted);line-height:1.65}.apartment-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;padding:0;margin:0 0 2rem;list-style:none;color:#58665f;font-size:.85rem}.apartment-meta li:before{content:'•';margin-right:.45rem;color:#a8dd37}.text-link{padding:0;border:0;background:none;color:var(--green);font-weight:800;cursor:pointer}.text-link span{display:inline-block;margin-left:.35rem;transition:transform .2s}.text-link:hover span{transform:translateX(5px)}
.experience{position:relative;display:grid;grid-template-columns:.84fr 1.16fr;gap:clamp(2rem,6vw,7rem);align-items:center;min-height:44rem;background:var(--green);color:#fff;overflow:hidden}.experience:before{content:'';position:absolute;width:36rem;height:36rem;border:1px solid rgba(183,243,74,.12);border-radius:50%;left:-20rem;bottom:-20rem}.experience-copy{position:relative;z-index:1}.experience-copy>p:not(.section-kicker){max-width:29rem;margin:1.4rem 0 2rem;color:rgba(255,255,255,.73);line-height:1.65}.experience-gallery{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:12rem 10rem 12rem;gap:.7rem}.mosaic{padding:0;border:0;overflow:hidden;background:#315745;cursor:zoom-in}.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.mosaic:hover img{transform:scale(1.07)}.mosaic-1{grid-row:span 2}.mosaic-4{grid-column:span 2}.mosaic-5{grid-row:span 2}.mosaic-6{grid-column:span 1}
.booking{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(2.5rem,7vw,8rem);background:#f0ecdf}.booking-intro>p:not(.section-kicker){max-width:25rem;color:var(--muted);line-height:1.65}.booking-badges{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-top:2rem;font-size:.77rem;font-weight:700}.booking-badges span{display:flex;align-items:center;gap:.4rem}.booking-badges i{width:.62rem;height:.62rem;border-radius:50%;background:#fff;border:1px solid #9bae9e}.booking-badges .blocked-dot{background:#d8b9ae;border-color:#d8b9ae}.booking-badges .selected-dot{background:var(--lime);border-color:var(--lime)}.booking-widget{padding:clamp(1.1rem,3vw,2rem);background:#fff;box-shadow:var(--shadow)}.booking-top{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.booking-top label{display:grid;gap:.45rem;color:#617068;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.booking-top select{min-width:13rem;padding:.7rem .2rem;border:0;border-bottom:1px solid var(--ink);outline:0;color:var(--ink);background:#fff;font-weight:700}.price-from{white-space:nowrap;color:var(--muted);font-size:.78rem}.price-from strong{margin-left:.2rem;color:var(--ink);font-size:1.6rem}.calendar{padding:1.7rem 0 1rem}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.calendar-nav h3{font-family:'DM Sans',sans-serif;font-size:1rem;letter-spacing:0}.calendar-nav button{display:grid;place-items:center;width:2.3rem;height:2.3rem;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;transition:.2s}.calendar-nav button:hover{background:var(--green);color:#fff}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.28rem;text-align:center}.weekdays{margin-bottom:.35rem;color:#8b9790;font-size:.65rem;font-weight:800;text-transform:uppercase}.calendar-days button{aspect-ratio:1;border:0;border-radius:.45rem;background:#fff;color:var(--ink);font-size:.77rem;cursor:pointer;transition:.18s}.calendar-days button:hover:not(:disabled){background:#e3f9ba}.calendar-days .empty{visibility:hidden}.calendar-days .blocked,.calendar-days button:disabled{background:#f0ddd7;color:#9a7167;text-decoration:line-through;cursor:not-allowed}.calendar-days .selected,.calendar-days .in-range{background:var(--lime);color:var(--ink);font-weight:800}.calendar-days .in-range{border-radius:0}.selection-panel{display:grid;grid-template-columns:1fr 1fr .8fr;gap:1px;margin-top:.5rem;background:var(--line);border:1px solid var(--line)}.selection-panel>div{padding:1rem;background:#faf9f5}.selection-panel span,.selection-panel strong{display:block}.selection-panel span{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.selection-panel strong{margin-top:.35rem;font-size:.86rem}.selection-total{background:var(--green)!important;color:#fff}.selection-total span{color:rgba(255,255,255,.65)}.booking-form{display:grid;grid-template-columns:1fr 1fr auto;gap:.7rem;margin-top:1.2rem}.booking-form label{display:grid;gap:.3rem;color:#68756e;font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.booking-form input{width:100%;min-width:0;padding:.74rem .65rem;border:1px solid var(--line);border-radius:.25rem;background:#fff;outline-color:var(--lime)}.booking-form button{align-self:end;padding:.8rem 1rem;border:0;border-radius:.25rem;background:var(--green);color:#fff;font-size:.78rem;font-weight:800;cursor:pointer;transition:.2s}.booking-form button:hover{background:#0f3c25}.booking-form p{grid-column:1/-1;margin:0;color:var(--green);font-size:.82rem;font-weight:600}
.contact{display:grid;grid-template-columns:1fr .95fr;min-height:38rem;padding:0;background:var(--ink);color:#fff}.contact-panel{padding:clamp(3rem,7vw,7rem)}.contact-panel h2{max-width:38rem}.contact-details{display:grid;gap:1rem;margin-top:3rem}.contact-details a,.contact-details div{display:flex;align-items:center;gap:.75rem;color:rgba(255,255,255,.78);font-size:.95rem}.contact-details span{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid rgba(255,255,255,.24);border-radius:50%;color:var(--lime)}.contact-details a:hover{color:var(--lime)}.contact-map{min-height:24rem;background:linear-gradient(135deg,rgba(25,79,48,.93),rgba(13,45,32,.82)),url('villa/04.jpg') center/cover}.footer{display:flex;justify-content:space-between;gap:1rem;padding:1.2rem clamp(1.25rem,6vw,6rem);background:#0b2118;color:rgba(255,255,255,.55);font-size:.72rem}.footer a{color:#cce990}.lightbox{position:fixed;z-index:100;inset:0;display:none;align-items:center;justify-content:center;padding:2rem;background:rgba(4,16,11,.94)}.lightbox.is-open{display:flex}.lightbox img{max-width:min(92vw,1100px);max-height:82vh;object-fit:contain;box-shadow:0 20px 80px #000}.lightbox button{position:absolute;z-index:1;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;width:3rem;height:3rem;font-size:1.35rem;cursor:pointer}.lightbox-close{top:1rem;right:1rem}.lightbox-prev{left:1rem;top:50%}.lightbox-next{right:1rem;top:50%}.lightbox p{position:absolute;bottom:.65rem;color:#fff;font-size:.85rem}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){.header{padding:1rem}.nav{display:none}.header-cta{font-size:.68rem;padding:.65rem .8rem}.hero{min-height:46rem;padding:8rem 1.35rem 5rem}.hero h1{font-size:clamp(3.6rem,15vw,5.6rem)}.hero-side-note{display:none}.section{padding:4.8rem 1.3rem}.welcome-grid,.booking,.contact{grid-template-columns:1fr}.amenity-strip{grid-template-columns:repeat(2,1fr)}.section-head{display:block;margin-bottom:2.6rem}.section-head>p{margin-top:1.25rem}.apartment-card,.apartment-card:nth-child(even){grid-template-columns:1fr;gap:1.5rem}.apartment-card:nth-child(even) .card-photo{order:0}.apartment-list{gap:3.7rem}.experience{grid-template-columns:1fr;padding:4.8rem 1.3rem}.experience-gallery{grid-template-rows:10rem 8rem 10rem}.booking-top{align-items:start;flex-direction:column}.booking-top select{width:100%}.booking-form{grid-template-columns:1fr}.selection-panel{grid-template-columns:1fr 1fr}.selection-total{grid-column:1/-1}.contact-map{min-height:17rem}.footer{display:block;line-height:1.9}.lightbox{padding:1rem}.lightbox-prev{left:.5rem}.lightbox-next{right:.5rem}}
@media(max-width:430px){.brand{font-size:.92rem}.brand-mark{width:2.05rem;height:2.05rem}.header-cta{display:none}.hero{min-height:43rem}.amenity-strip{grid-template-columns:1fr 1fr}.amenity-strip article{min-height:8.3rem;padding:1rem}.image-break{height:20rem;margin:0 1.3rem}.booking-widget{margin:0 -1.3rem;padding:1rem}.calendar-days{gap:.15rem}.calendar-days button{font-size:.7rem}.experience-gallery{grid-template-rows:8.5rem 7rem 8.5rem}}

/* HR / EN / DE language selector */
.header-tools{display:flex;align-items:center;gap:.75rem}.language-switch{display:flex;align-items:center;padding:.2rem;border:1px solid rgba(255,255,255,.38);border-radius:99px;background:rgba(10,39,28,.28);backdrop-filter:blur(8px)}.language-switch a{display:grid;place-items:center;min-width:2rem;height:1.85rem;border-radius:99px;color:rgba(255,255,255,.78);font-size:.65rem;font-weight:800;letter-spacing:.05em}.language-switch a:hover{color:#fff}.language-switch a.active{background:var(--lime);color:var(--ink)}
.calendar-days button.past,.calendar-days button.past:disabled{background:#f4f3ef;color:#b3b8b4;text-decoration:none;cursor:not-allowed}.calendar-days button.blocked,.calendar-days button.blocked:disabled{background:#f0ddd7;color:#9a7167;text-decoration:line-through}
@media(max-width:850px){.header{gap:.7rem}.header-tools{margin-left:auto}}
@media(max-width:430px){.brand small{display:none}.language-switch a{min-width:1.85rem;height:1.75rem}}
