:root { --cl-ink:#21362d; --cl-paper:#f5f1e8; --cl-sand:#d9c9aa; --cl-olive:#6e7f63; --cl-deep:#30483d; --cl-clay:#b8664b; --cl-line:rgba(33,54,45,.18); --cl-serif:"Bodoni Moda", Didot, Georgia, serif; --cl-sans:Manrope, Arial, sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; overflow-x:hidden; color:var(--cl-ink); background:var(--cl-paper); font:16px/1.5 var(--cl-sans); } a { color:inherit; text-decoration:none; } button,input,select { font:inherit; } button { cursor:pointer; } .cl-skip { position:fixed; z-index:20; top:-100px; left:16px; padding:12px 16px; color:white; background:var(--cl-deep); }.cl-skip:focus { top:16px; }
.cl-header { position:absolute; z-index:4; top:0; right:0; left:0; height:82px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 4.8vw; color:#fff; border-bottom:1px solid rgba(255,255,255,.24); }.cl-mark,.cl-book-link,.cl-nav { font-size:10px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }.cl-mark { justify-self:start; opacity:.9; }.cl-mark span { margin-left:6px; }.cl-logo { display:grid; color:#fff; font:600 1.2rem/.73 var(--cl-serif); letter-spacing:.03em; text-align:center; }.cl-logo i { font-size:.72em; font-style:italic; }.cl-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:32px; }.cl-nav { display:flex; gap:23px; font-weight:500; }.cl-nav a { position:relative; }.cl-nav a:after { content:""; position:absolute; right:0; bottom:-5px; left:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .22s ease; }.cl-nav a:hover:after { transform:scaleX(1); }.cl-book-link { display:flex; align-items:center; gap:8px; }.cl-book-link span { color:#f3ce89; font-size:15px; }
.cl-hero { position:relative; min-height:780px; display:flex; align-items:center; overflow:hidden; color:#fff; }.cl-hero-photo { position:absolute; inset:0; background:center/cover url("assets/casa-luminosa-hero.png"); transform:scale(1.01); }.cl-hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(16,24,19,.61),rgba(16,24,19,.18) 58%,rgba(16,24,19,.13)),linear-gradient(0deg,rgba(16,24,19,.38),transparent 44%); }.cl-hero-copy { position:relative; z-index:1; width:min(760px,64vw); margin:90px 0 120px; padding-left:9.7vw; }.cl-hero-copy > p,.cl-final > p { margin:0; color:#f5d59c; font-size:10px; font-weight:700; letter-spacing:.14em; }.cl-hero-copy > p span,.cl-final > p span { margin:0 10px; }.cl-hero h1 { margin:23px 0 38px; color:#fff; font:500 clamp(4.5rem,8.2vw,9.4rem)/.81 var(--cl-serif); letter-spacing:-.055em; }.cl-hero h1 em,.cl-final h2 em { color:#f3c584; font-style:italic; }.cl-round-link { display:inline-flex; align-items:center; gap:16px; min-height:44px; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.cl-round-link span { width:31px; height:31px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.65); border-radius:50%; font-size:14px; transition:background .2s ease,color .2s ease; }.cl-round-link:hover span { color:var(--cl-deep); background:#fff; }.cl-hero-index { position:absolute; z-index:1; right:5vw; bottom:116px; margin:0; font-size:10px; font-weight:700; letter-spacing:.12em; }
.cl-booking-panel { position:absolute; z-index:2; right:4.8vw; bottom:0; left:4.8vw; display:grid; grid-template-columns:1fr 1fr .75fr 1.15fr; align-items:end; padding:18px 20px; color:var(--cl-ink); background:#f8f5ee; box-shadow:0 13px 32px rgba(7,13,8,.21); }.cl-booking-panel > div { min-width:0; padding:5px 19px; border-right:1px solid #d6d0c5; }.cl-booking-panel label { display:block; margin-bottom:5px; color:#6a746d; font-size:9px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.cl-booking-panel input,.cl-booking-panel select { width:100%; min-width:0; border:0; color:var(--cl-ink); background:transparent; font-size:13px; outline:none; }.cl-booking-panel button,.cl-final-button { min-height:52px; border:0; color:#fff; background:var(--cl-deep); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; transition:transform .2s ease,background .2s ease; }.cl-booking-panel button:hover,.cl-final-button:hover { background:#496654; transform:translateY(-2px); }.cl-booking-panel button span,.cl-final-button span { color:#f3c584; margin-left:10px; font-size:15px; }.cl-booking-feedback { position:absolute; right:0; bottom:-31px; left:0; min-height:22px; margin:0; padding:7px 12px; color:#f8f5ee; background:rgba(33,54,45,.9); font-size:11px; }
.cl-section { max-width:1440px; margin:0 auto; padding:150px 4.8vw; }.cl-eyebrow { margin:0; color:#a06c4c; font-size:10px; font-weight:700; letter-spacing:.13em; }.cl-intro-grid { display:grid; grid-template-columns:.35fr 1.45fr .7fr; gap:30px; align-items:end; margin-top:53px; }.cl-number { margin:0; color:#8d806d; font-size:11px; font-weight:700; letter-spacing:.1em; }.cl-intro h2,.cl-section-heading h2,.cl-experience-copy h2 { margin:0; font:500 clamp(3.3rem,5.7vw,6.3rem)/.88 var(--cl-serif); letter-spacing:-.055em; }.cl-intro h2 em,.cl-experience-copy h2 em { color:#a55f45; font-style:italic; }.cl-intro-copy { max-width:280px; margin:0; color:#66706a; font-size:14px; }.cl-material-row { display:grid; grid-template-columns:1.1fr .8fr .9fr; min-height:285px; margin-top:105px; }.cl-stone-detail { position:relative; overflow:hidden; background:#cbc0ad; background-image:linear-gradient(120deg,transparent 0 23%,rgba(100,90,74,.27) 23.4% 24%,transparent 24.4% 47%,rgba(100,90,74,.28) 47.4% 48%,transparent 48.4%),linear-gradient(26deg,transparent 0 55%,rgba(100,90,74,.25) 55.4% 56%,transparent 56.4%); }.cl-stone-detail:after { content:""; position:absolute; inset:0; opacity:.4; background:repeating-linear-gradient(0deg,transparent 0 33px,rgba(111,98,79,.25) 34px 35px); }.cl-stone-detail span,.cl-olive-detail span { position:absolute; z-index:1; right:18px; bottom:16px; color:#fff; font-size:9px; font-weight:700; letter-spacing:.1em; }.cl-note { display:grid; place-items:center; padding:28px; color:#f3ece1; background:#39483e; font:500 clamp(1.5rem,2.4vw,2.6rem)/.95 var(--cl-serif); letter-spacing:-.035em; }.cl-olive-detail { position:relative; overflow:hidden; background:#9eab86; }.cl-olive-detail:before { content:""; position:absolute; width:145%; height:62%; right:-44%; bottom:-22%; border-radius:50%; background:#536850; transform:rotate(-17deg); box-shadow:-140px -28px 0 -38px #75816a; }.cl-olive-detail:after { content:""; position:absolute; top:26%; left:31%; width:84px; height:84px; border-radius:50%; background:#edca86; }.cl-olive-detail span { left:18px; right:auto; top:17px; bottom:auto; }
.cl-rooms { padding-top:0; }.cl-section-heading { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:65px; }.cl-section-heading h2 { margin-top:20px; }.cl-section-heading > p { max-width:230px; margin:0 0 5px; color:#6d746d; font-size:13px; }.cl-room-grid { display:grid; grid-template-columns:1.18fr .83fr .83fr; gap:18px; }.cl-room-card { min-width:0; }.cl-room-visual { position:relative; height:470px; overflow:hidden; transition:transform .34s cubic-bezier(.22,1,.36,1),box-shadow .34s ease; }.cl-room-card:hover .cl-room-visual,.cl-room-card.is-selected .cl-room-visual { transform:translateY(-7px); box-shadow:0 22px 35px rgba(38,46,34,.17); }.cl-room-visual > span { position:absolute; z-index:3; top:18px; left:18px; color:#fff; font-size:10px; font-weight:700; letter-spacing:.1em; }.cl-room-garden { background:#aebd9f; }.cl-room-garden:before { content:""; position:absolute; top:13%; left:21%; width:190px; height:190px; border-radius:50%; background:#eed08c; }.cl-room-garden:after { content:""; position:absolute; z-index:1; right:17%; bottom:14%; width:44%; height:42%; background:#f0e5cf; border-top:10px solid #a45e48; box-shadow:-105px 77px 0 21px #5b765a; }.cl-room-garden i { position:absolute; z-index:2; right:28%; bottom:22%; width:24%; height:19%; border:8px solid #f0e5cf; border-top:0; background:#3d5848; }.cl-room-olive { background:#d7d0c4; }.cl-room-olive:before { content:""; position:absolute; inset:-15%; background:repeating-linear-gradient(115deg,transparent 0 48px,rgba(92,80,69,.38) 49px 52px,transparent 53px 110px); }.cl-room-olive:after { content:""; position:absolute; right:14%; bottom:15%; width:49%; height:57%; border-radius:45% 45% 0 0; background:#6a7d5b; box-shadow:0 0 0 17px #eae2d3 inset; }.cl-room-dimora { background:#344a3e; }.cl-room-dimora:before { content:""; position:absolute; top:14%; left:15%; width:70%; height:70%; border:1px solid rgba(255,255,255,.5); border-radius:50%; transform:rotate(22deg); }.cl-room-dimora:after { content:""; position:absolute; top:31%; left:31%; width:39%; height:39%; border-radius:50%; background:#e9d9b4; box-shadow:0 0 0 20px rgba(233,217,180,.15); }.cl-room-meta { padding:17px 2px; }.cl-room-meta h3 { margin:0; font:500 2rem/.95 var(--cl-serif); letter-spacing:-.04em; }.cl-room-meta p { margin:7px 0 10px; color:#717871; font-size:12px; }.cl-room-meta button { min-height:42px; padding:0; border:0; color:var(--cl-ink); background:transparent; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.cl-room-meta button span { margin-left:8px; color:#a55f45; font-size:16px; }.cl-room-feedback { min-height:22px; margin:20px 0 0; color:#607067; font-size:12px; }
.cl-quote { padding:120px 4.8vw; color:#f4ead8; background:#32483d; text-align:center; }.cl-quote p { margin:0; font:500 clamp(3.3rem,6.5vw,7.5rem)/.84 var(--cl-serif); letter-spacing:-.055em; }.cl-quote span { display:block; margin-top:31px; color:#d7b378; font-size:10px; font-weight:700; letter-spacing:.13em; }
.cl-experiences { display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(35px,8vw,130px); align-items:center; }.cl-experience-scene { position:relative; height:560px; overflow:hidden; background:linear-gradient(#c6d0be 0 57%,#8c9a76 57%); }.cl-sun { position:absolute; top:18%; left:23%; width:164px; height:164px; border-radius:50%; background:#efd392; }.cl-hill { position:absolute; border-radius:50% 50% 0 0; }.cl-hill-a { right:-4%; bottom:-4%; width:84%; height:54%; background:#587255; }.cl-hill-b { bottom:-4%; left:-15%; width:84%; height:34%; background:#405d48; }.cl-cypress { position:absolute; z-index:2; bottom:23%; width:12%; height:45%; background:#355643; clip-path:polygon(50% 0,67% 27%,61% 27%,90% 70%,66% 70%,80% 100%,19% 100%,34% 70%,10% 70%,39% 27%,33% 27%); }.cl-cypress-a { right:28%; }.cl-cypress-b { right:15%; height:33%; }.cl-experience-copy h2 { margin:21px 0 48px; }.cl-experience-copy ul { margin:0; padding:0; list-style:none; border-top:1px solid var(--cl-line); }.cl-experience-copy li { display:grid; grid-template-columns:42px 1fr; gap:9px; padding:17px 0; border-bottom:1px solid var(--cl-line); font:500 clamp(1.25rem,1.6vw,1.65rem)/1.1 var(--cl-serif); }.cl-experience-copy li span { padding-top:3px; color:#9c6f54; font:700 10px var(--cl-sans); }
.cl-final { padding:140px 22px; color:#fff; background:#263a30; text-align:center; }.cl-final h2 { margin:21px 0 42px; font:500 clamp(4rem,8vw,9rem)/.8 var(--cl-serif); letter-spacing:-.055em; }.cl-final-button { display:inline-flex; align-items:center; justify-content:center; min-width:238px; padding:0 21px; color:#fff; background:#b4664b; }.cl-footer { display:flex; justify-content:space-between; gap:20px; padding:22px 4.8vw; color:#6b776e; background:#f5f1e8; font-size:9px; font-weight:700; letter-spacing:.1em; }.cl-footer a { color:#9d6049; }
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible { outline:2px solid #f1c87f; outline-offset:4px; } @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.cl-room-visual,.cl-booking-panel button,.cl-final-button,.cl-round-link span { transition:none; } }
@media (max-width:800px) { .cl-header { height:67px; grid-template-columns:1fr auto; padding:0 22px; }.cl-mark,.cl-nav { display:none; }.cl-logo { grid-column:1; justify-self:start; font-size:1rem; text-align:left; }.cl-header-actions { grid-column:2; gap:0; }.cl-hero { min-height:700px; align-items:start; }.cl-hero-photo { background-position:64% center; }.cl-hero-overlay { background:linear-gradient(90deg,rgba(16,24,19,.6),rgba(16,24,19,.1)),linear-gradient(0deg,rgba(16,24,19,.56),transparent 50%); }.cl-hero-copy { width:auto; margin:148px 0 0; padding:0 22px; }.cl-hero h1 { margin:18px 0 31px; font-size:clamp(3.2rem,13.8vw,4.2rem); }.cl-hero-index { right:22px; bottom:158px; }.cl-booking-panel { right:12px; bottom:10px; left:12px; grid-template-columns:1fr 1fr; gap:0; padding:12px; }.cl-booking-panel > div { padding:7px 9px; }.cl-booking-panel > div:nth-child(2) { border-right:0; }.cl-booking-panel > div:nth-child(3) { grid-column:1 / -1; margin-top:5px; border-top:1px solid #d6d0c5; border-right:0; }.cl-booking-panel button { grid-column:1 / -1; margin-top:8px; }.cl-booking-feedback { bottom:-38px; font-size:10px; }.cl-section { padding:92px 22px; }.cl-intro-grid { display:block; margin-top:36px; }.cl-number { margin-bottom:33px; }.cl-intro h2,.cl-section-heading h2,.cl-experience-copy h2 { font-size:clamp(2.8rem,11.8vw,3.7rem); overflow-wrap:break-word; }.cl-intro-copy { margin-top:29px; }.cl-material-row { grid-template-columns:1fr 1fr; min-height:0; margin-top:60px; }.cl-stone-detail { min-height:210px; }.cl-note { min-height:210px; font-size:1.5rem; }.cl-olive-detail { grid-column:1 / -1; min-height:160px; }.cl-section-heading { display:block; margin-bottom:42px; }.cl-section-heading > p { margin:24px 0 0; }.cl-room-grid { display:block; }.cl-room-card { margin-bottom:42px; }.cl-room-visual { height:350px; }.cl-room-garden:before { width:150px; height:150px; }.cl-quote { padding:96px 22px; }.cl-quote p { font-size:clamp(3.15rem,13vw,4.6rem); }.cl-experiences { display:flex; flex-direction:column-reverse; align-items:stretch; gap:48px; }.cl-experience-scene { height:360px; }.cl-sun { width:114px; height:114px; }.cl-final { padding:100px 22px; }.cl-final h2 { font-size:clamp(4rem,16vw,5.7rem); }.cl-footer { display:block; padding:20px 22px; }.cl-footer span + span { display:block; margin-top:7px; } }
.cl-title-mobile { display:none; }
@media (max-width:800px) { .cl-hero h1 { font-size:clamp(2.9rem,12vw,3.5rem); }.cl-title-desktop { display:none; }.cl-title-mobile { display:inline; } }
.cl-experiences { grid-template-columns:minmax(0,1fr) minmax(260px,.82fr); align-items:start; }.cl-stay-planner { overflow:hidden; color:#e9eee7; background:#2e463a; box-shadow:0 18px 38px rgba(38,54,43,.14); }.cl-planner-top { display:flex; justify-content:space-between; align-items:start; padding:27px 28px 24px; border-bottom:1px solid rgba(233,238,231,.2); }.cl-planner-top p { margin:0 0 8px; color:#e6bd7d; font-size:9px; font-weight:700; letter-spacing:.12em; }.cl-planner-top strong { font:500 2.2rem/.9 var(--cl-serif); letter-spacing:-.04em; }.cl-planner-top > span { color:#b4c3b6; font-size:9px; font-weight:700; letter-spacing:.1em; line-height:1.6; text-align:right; }.cl-day-tabs { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid rgba(233,238,231,.2); }.cl-day-tabs button { min-height:52px; border:0; border-right:1px solid rgba(233,238,231,.14); color:#b8c7bb; background:transparent; font-size:10px; font-weight:700; letter-spacing:.06em; cursor:pointer; transition:color .2s ease,background .2s ease; }.cl-day-tabs button:last-child { border-right:0; }.cl-day-tabs button[aria-selected="true"] { color:#2d4438; background:#e9eee7; }.cl-day-panel { padding:26px 28px 20px; }.cl-panel-label { margin:0 0 22px; color:#e6bd7d; font-size:9px; font-weight:700; letter-spacing:.11em; }.cl-day-panel ol { margin:0; padding:0; list-style:none; }.cl-day-panel li { display:grid; grid-template-columns:57px 1fr; gap:13px; padding:0 0 20px; }.cl-day-panel time { color:#93a998; font-size:10px; font-weight:700; letter-spacing:.06em; }.cl-day-panel li span { color:#f3f5ef; font:500 1.22rem/1 var(--cl-serif); }.cl-day-panel li small { display:block; margin-top:6px; color:#b6c3b8; font:11px/1.45 var(--cl-sans); }.cl-add-plan { display:flex; align-items:center; justify-content:space-between; width:calc(100% - 56px); min-height:48px; margin:3px 28px 0; padding:0 15px; border:1px solid rgba(233,238,231,.5); color:#f4f1ea; background:transparent; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:color .2s ease,background .2s ease; }.cl-add-plan:hover { color:#2d4438; background:#f4f1ea; }.cl-add-plan span { color:#e6bd7d; font-size:19px; font-weight:400; }.cl-plan-feedback { min-height:23px; margin:9px 28px 16px; color:#e6bd7d; font-size:11px; }.cl-experience-copy { padding-top:35px; }.cl-experience-copy h2 { margin:21px 0 26px; }.cl-experience-intro { max-width:340px; margin:0; color:#68736b; font-size:14px; }.cl-day-tabs button:focus-visible,.cl-add-plan:focus-visible { outline:2px solid #e6bd7d; outline-offset:-3px; }
@media (max-width:800px) { .cl-experiences { display:grid; grid-template-columns:1fr; gap:40px; }.cl-stay-planner { order:2; }.cl-experience-copy { order:1; padding-top:0; }.cl-planner-top,.cl-day-panel { padding-right:20px; padding-left:20px; }.cl-add-plan { width:calc(100% - 40px); margin-right:20px; margin-left:20px; }.cl-plan-feedback { margin-right:20px; margin-left:20px; } }
.cl-place-facts { display:grid; grid-template-columns:repeat(3,1fr); margin:92px 0 0; border-top:1px solid var(--cl-line); border-bottom:1px solid var(--cl-line); }.cl-place-facts div { min-height:185px; padding:26px; border-right:1px solid var(--cl-line); }.cl-place-facts div:last-child { border-right:0; }.cl-place-facts dt { color:#a55f45; font:500 clamp(3.1rem,5vw,5.8rem)/.8 var(--cl-serif); letter-spacing:-.06em; }.cl-place-facts dd { margin:18px 0 0; color:#5f6c63; font-size:13px; line-height:1.55; }.cl-room-visual.cl-room-availability { display:flex; height:470px; flex-direction:column; justify-content:space-between; padding:19px; color:#f2f3ea; background:#30483d; }.cl-room-card:nth-child(2) .cl-room-availability { color:#2d4438; background:#ddd3bf; }.cl-room-card:nth-child(3) .cl-room-availability { color:#e9ece4; background:#223c33; }.cl-room-ui-top,.cl-room-ui-bottom { display:flex; justify-content:space-between; gap:12px; font-size:9px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.cl-room-ui-top { padding-bottom:13px; border-bottom:1px solid currentColor; }.cl-room-ui-top b { color:#e6bd7d; font-size:8px; }.cl-room-ui-main p { margin:0; font:500 clamp(2.5rem,3.6vw,4.25rem)/.8 var(--cl-serif); letter-spacing:-.055em; }.cl-room-ui-main > span { display:block; margin-top:18px; font-size:10px; letter-spacing:.04em; }.cl-room-ui-main i { display:inline-block; width:4px; height:4px; margin:0 7px 2px; border-radius:50%; background:#c36f52; }.cl-room-ui-bottom { padding-top:13px; border-top:1px solid currentColor; }.cl-room-ui-bottom strong { font:500 1.45rem/1 var(--cl-serif); letter-spacing:-.04em; }.cl-room-card.is-selected .cl-room-availability { box-shadow:inset 0 0 0 2px #e6bd7d; }.cl-room-card.is-selected .cl-room-ui-top b { color:#e6bd7d; }.cl-room-card:nth-child(2) .cl-room-ui-top b { color:#8d604a; }.cl-room-meta button { text-decoration-thickness:1px; }.cl-room-meta button:hover { text-decoration:underline; text-underline-offset:5px; }
@media (max-width:800px) { .cl-place-facts { grid-template-columns:1fr; margin-top:60px; }.cl-place-facts div { min-height:0; display:grid; grid-template-columns:95px 1fr; align-items:center; gap:15px; padding:20px 0; border-right:0; border-bottom:1px solid var(--cl-line); }.cl-place-facts div:last-child { border-bottom:0; }.cl-place-facts dd { margin:0; }.cl-room-visual.cl-room-availability { height:300px; }.cl-room-ui-main p { font-size:3.1rem; } }
