/* Vila Katarina — lake, architecture, space. */
:root{color-scheme:only light;--navigation:#282726f5;--ink:#302e2c;--deep:#282726;--cream:#faf9f7;--muted:#78716b;--line:#e5dfd8;--accent:#c9a78e}
body{font-size:17px;-webkit-font-smoothing:antialiased}
::selection{background:#cfc8c2;color:#282726}
.wrap{width:min(calc(100% - 96px),1360px)}
h1,h2,h3{text-wrap:balance}h1,h2{letter-spacing:-.025em;font-weight:500}h3{letter-spacing:-.012em}p{text-wrap:pretty}
.eyebrow{font-size:.8rem;letter-spacing:.16em;line-height:1.7}
.nav{position:sticky;top:0;background:var(--navigation);backdrop-filter:blur(16px);border-bottom:1px solid #ffffff1c}
.nav-inner{min-height:88px}.brand img{width:122px;height:64px}.nav-links{font-size:.9rem;gap:38px}.nav-links a{padding:12px 0}.nav-actions{gap:24px}
.lang{font-size:.88rem;min-height:44px}.pill{border-radius:100px;padding:17px 25px;font-size:.8rem;letter-spacing:.075em;min-height:52px;transition:background .22s,transform .22s,box-shadow .22s}.pill:hover{transform:translateY(-2px);box-shadow:0 8px 20px #18161320}.nav .pill{padding:12px 21px;min-height:46px}.pill-outline{background:transparent;color:#fff;border-color:#ffffff65}
a:focus-visible,button:focus-visible,video:focus-visible{outline:3px solid #958677;outline-offset:5px}
.hero{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:40px;padding:56px max(48px,calc((100vw - 1360px)/2)) 72px;background:var(--deep)}
.hero-content{padding:14px 0 30px;min-width:0}.hero .eyebrow{display:block;max-width:360px;color:#cac2bb;font-size:.78rem;line-height:1.9}.hero h1{font-size:clamp(3rem,4.9vw,5.8rem);line-height:1.04;margin:24px 0 28px}.hero p{font-size:1.05rem;line-height:1.8;max-width:420px;color:#d6d0ca}
.hero-img{display:block;align-self:center;min-width:0;background:transparent}.hero-img img{width:100%;height:auto;object-fit:contain;border-radius:3px;box-shadow:0 22px 60px #11100e30}.image-caption{display:flex;justify-content:space-between;gap:20px;padding:18px 0 0;color:#c9c2ba;font-size:.75rem;letter-spacing:.11em;text-transform:uppercase}
.hero-highlights{margin-top:30px;gap:10px 18px;max-width:430px;font-size:.76rem;letter-spacing:.035em;line-height:1.6;color:#d7d2cc}.hero-highlights span+span:before{content:none}.hero-highlights span{border-bottom:1px solid #ffffff30;padding-bottom:7px}.hero-buttons{gap:10px;margin-top:30px}.hero-buttons .pill{font-size:.74rem;padding:16px 20px;letter-spacing:.04em}
.film{background:var(--deep);color:white;padding:28px 0 82px}.film .wrap{border-top:1px solid #ffffff29;padding-top:32px}.film-heading{align-items:center;margin-bottom:26px}.film-heading .eyebrow{color:#d6d0ca}.film-heading p{color:#beb5ac;font-size:.93rem;max-width:400px}.film-video{border-radius:3px;box-shadow:0 22px 60px #11100e38}
.intro{padding:115px 0 120px}.intro-grid{grid-template-columns:1fr 1fr;gap:9%}.intro .eyebrow,.ap-detail .eyebrow,.property-gallery .eyebrow{color:#73675b}.intro h2{font-size:clamp(2.6rem,4.1vw,4.6rem)}.intro-copy{padding-top:20px;font-size:1.05rem}.facts{border-top:1px solid var(--line);padding-top:28px;gap:36px}.facts strong{font-size:2.25rem;font-weight:400}.facts span{font-size:.77rem;letter-spacing:.06em;line-height:1.6}
.section-dark{padding:100px 0;background:#eeebe6}.section-heading{margin-bottom:50px}.section-heading h2{font-size:clamp(2.6rem,4.4vw,4.8rem)}.section-heading p{font-size:1rem;line-height:1.8}.section-dark .eyebrow{color:#cac2bb}
.apartments{gap:48px 28px}.apartment{background:transparent;color:white;border-bottom:1px solid #ffffff30;transition:transform .25s}.apartment:hover{transform:translateY(-3px)}.apartment-img{height:auto;aspect-ratio:1.5;position:relative;border-radius:3px}.apartment-img img{height:100%;transition:transform .65s}.apartment:hover img{transform:scale(1.025)}.apartment-info{padding:26px 0 30px}.apartment-meta{color:#c1b8b0;font-size:.79rem;letter-spacing:.08em}.apartment h3{font-size:1.45rem;line-height:1.3;letter-spacing:-.025em;margin:12px 0}.apartment p{font-size:.97rem;color:#c7bfb7}.arrow-circle{width:44px;height:44px;border-color:#988a7b;transition:background .2s,color .2s}.apartment:hover .arrow-circle{background:#c9a78e;color:#282726}.apartment-penthouse{grid-column:1/-1;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding:18px 0 44px}.apartment-penthouse .apartment-img{aspect-ratio:1.6}.apartment-penthouse h3{font-size:clamp(1.8rem,3vw,3rem)}.apartment-penthouse .apartment-info{padding-right:18px}.apartments-note{font-size:.85rem;margin-top:26px;color:#c2bab1}
.ap-detail{padding:100px 0;scroll-margin-top:86px;background:#faf9f7}.ap-detail:nth-of-type(even){background:#f1eee9}.ap-detail-head{align-items:start;gap:60px;margin-bottom:40px}.ap-detail-head>div:first-child{max-width:850px}.ap-detail-head h2{font-size:clamp(2.2rem,3.5vw,3.8rem);line-height:1.15;max-width:840px;margin-top:18px}.ap-detail-head p{max-width:760px;line-height:1.85;font-size:1rem}.ap-detail-action{padding-top:12px;gap:22px}.ap-detail-meta{font-size:.8rem;letter-spacing:.06em}.ap-detail-action .pill{background:var(--ink);color:#fff;border-color:var(--ink);font-size:.74rem}.ap-detail-action .pill:hover{background:#49423a}
.ap-gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:210px;gap:14px}.photo{border-radius:3px;background:#e5e2de}.photo img{transition:transform .65s}.photo:hover img{transform:scale(1.02)}.gallery-3{grid-template-columns:1.3fr 1fr;grid-template-rows:220px 220px}.gallery-3 .photo:first-child{grid-column:1;grid-row:1/3}.gallery-4{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:220px 220px}.gallery-4 .photo:first-child{grid-column:1/3;grid-row:1/3}.gallery-4 .photo:last-child{grid-column:1/-1;height:300px}.gallery-4{grid-template-rows:220px 220px 300px}.gallery-5 .photo:first-child{grid-column:1/3;grid-row:1/3}.gallery-9{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px}.gallery-9 .photo:first-child{grid-column:1/3;grid-row:1/3}.gallery-9 .photo:nth-child(n+6){grid-row:3}
.feature{margin:0;min-height:0;background:#fff}.feature-photo{min-height:580px}.feature-copy{padding:75px clamp(36px,6vw,112px)}.feature-copy h2{font-size:clamp(2.6rem,3.7vw,4.3rem)}.feature-copy p{font-size:1.02rem}.feature.reverse .feature-copy{background:#eee8e1}.feature-copy .text-link{font-size:.8rem;letter-spacing:.07em;max-width:100%}
.property-gallery{padding:100px 0;background:#faf9f7}.property-grid{height:360px;gap:16px}.booking-band{padding:90px 0;background:#e8ded4}.booking-band h2{font-size:clamp(2.5rem,4.5vw,4.7rem);max-width:790px}.booking-band .eyebrow{color:#5f554b}.booking-inner{gap:40px}.booking-inner>.pill{flex-shrink:0}.footer{padding:76px 0 28px;background:#252422}.footer-grid{gap:50px}.footer-logo{width:156px;margin-bottom:28px}.footer p{max-width:350px}.footer small{margin-top:60px;font-size:.8rem}.footer-links{font-size:.95rem;gap:16px}.footer .eyebrow{color:#c1b8af}.map-link{font-size:.92rem;line-height:1.8}#apartments,#location,#contact,#property-gallery{scroll-margin-top:88px}.lightbox{border-radius:4px}.lightbox-close{border-radius:50%}
@media(min-width:1600px){.hero{gap:70px}.hero-content{padding-right:15px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{padding:40px 32px 56px;gap:30px}.hero h1{font-size:3.5rem}.hero-buttons{flex-direction:column;align-items:start}.hero-buttons .pill{min-width:230px}.hero-highlights{font-size:.74rem}.ap-detail-head{gap:30px}.ap-detail-head h2{font-size:2.7rem}.facts{gap:25px}.apartment-penthouse{gap:30px}.feature-photo{min-height:540px}}
@media(max-width:850px){.wrap{width:calc(100% - 40px)}.nav-inner{min-height:74px}.brand img{width:112px;height:58px}.nav-actions{gap:16px}.mobile-panel.open{top:74px;box-shadow:0 18px 25px #18161330}.hero{grid-template-columns:minmax(0,1fr);padding:24px 20px 50px;gap:36px}.hero-img{grid-row:1;grid-column:1}.hero-content{grid-row:2;grid-column:1;padding:0 4px;max-width:680px}.hero h1{font-size:clamp(3rem,8vw,4.8rem);max-width:660px}.hero p{max-width:580px}.hero .eyebrow{max-width:none}.hero-buttons{flex-direction:row}.hero-buttons .pill{min-width:0}.hero-highlights{max-width:none}.image-caption{padding-top:14px;font-size:.72rem}.film{padding:8px 0 55px}.film .wrap{padding-top:26px}.film-heading p{margin-top:10px;max-width:none}.intro{padding:70px 0}.intro-grid{grid-template-columns:1fr;gap:24px}.intro h2{max-width:600px}.intro-copy{padding:0;max-width:100%}.facts{gap:45px}.section-dark{padding:70px 0}.section-heading{margin-bottom:35px}.section-heading p{max-width:520px}.apartments{gap:32px 22px}.apartment h3{font-size:1.25rem}.apartment-penthouse{gap:24px}.apartment-penthouse h3{font-size:1.7rem}.ap-detail{padding:70px 0;scroll-margin-top:72px}.ap-detail-action{padding:0;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.ap-detail-head{margin-bottom:30px}.ap-detail-head h2{font-size:clamp(2.1rem,5vw,3rem)}.ap-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:190px;grid-template-rows:none;gap:10px}.ap-gallery .photo:first-child{grid-column:1/-1;grid-row:span 2}.ap-gallery .photo:nth-child(n+2){grid-column:auto;grid-row:auto;height:auto}.gallery-4 .photo:last-child{grid-column:1/-1;height:260px}.feature-photo,.feature.reverse .feature-photo{min-height:0;height:auto;aspect-ratio:1.5}.feature-copy,.feature.reverse .feature-copy{padding:60px 32px}.property-gallery{padding:70px 0}.property-grid{height:260px}.booking-band{padding:65px 0}.footer-grid{gap:35px}}
@media(max-width:620px){.hero h1{font-size:clamp(2.8rem,10.8vw,4rem)}.hero-buttons{display:grid;grid-template-columns:1fr;width:100%}.hero-buttons .pill{width:100%;font-size:.8rem}.hero-highlights{font-size:.76rem}.film-heading .eyebrow{font-size:.78rem}.film-heading p{font-size:.93rem}.facts{gap:22px;justify-content:space-between}.facts strong{font-size:1.9rem}.facts span{max-width:110px;font-size:.72rem}.apartments{grid-template-columns:1fr;gap:30px}.apartment-img{height:auto;aspect-ratio:1.4}.apartment-info{padding:22px 0 27px}.apartment h3{font-size:1.4rem}.apartment-penthouse{display:block;padding:0;grid-column:auto}.apartment-penthouse .apartment-img{aspect-ratio:1.4}.apartment-penthouse h3{font-size:1.55rem}.apartment-penthouse .apartment-info{padding-right:0}.ap-detail-action{display:flex;gap:18px}.ap-gallery{grid-auto-rows:140px;gap:8px}.gallery-4 .photo:last-child{height:220px}.feature-copy,.feature.reverse .feature-copy{padding:55px 24px}.feature-copy h2{font-size:2.5rem}.property-grid{grid-template-columns:1fr 1fr;height:auto;gap:10px}.property-grid .photo{height:180px}.property-grid .photo:first-child{grid-column:1/-1;height:260px}.footer{padding-top:60px}.footer-grid{grid-template-columns:1fr}.footer small{margin-top:45px}.booking-band h2{font-size:2.7rem}.lightbox-close{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.reservation{padding:100px 0;background:#f1eee9;scroll-margin-top:88px}.reservation .eyebrow{color:#73675b}.reservation .section-heading p{color:#78716b}.reservation-frame{padding:28px;background:white;border:1px solid #e5dfd8;border-radius:4px;box-shadow:0 18px 55px #2827260a}.reservation-frame iframe{display:block;width:100%;border:0;background:white;min-height:500px}.reservation-help{margin:22px 0 0;font-size:.9rem;color:#78716b}.reservation-help a{color:#302e2c;text-decoration:underline;text-underline-offset:4px}.reservation-help a:hover{color:#60564c}@media(max-width:850px){.reservation{padding:70px 0;scroll-margin-top:74px}.reservation-frame{padding:12px}}@media(max-width:620px){.reservation-frame{padding:6px}.reservation-help{font-size:.88rem}}
.brand{gap:16px;letter-spacing:0}.brand img{width:90px;height:62px}.brand-copy{display:block;font:600 1rem/1.3 Dubai,sans-serif;letter-spacing:.015em}.brand-copy small{font:400 .75rem/1.5 Dubai,sans-serif;letter-spacing:.07em;margin-top:5px;text-transform:uppercase}.hero .hero-brand{font:500 1.08rem/1.4 Dubai,sans-serif;color:#fff;margin:0 0 26px;letter-spacing:.01em}.hero-brand span{display:block;font:400 .78rem/1.7 Dubai,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:#c5bdb5;margin-top:5px}.footer-brand{font:600 1.2rem/1.4 Dubai,sans-serif;color:#fff!important;margin-bottom:22px}.footer-brand span{display:block;font:400 .8rem/1.6 Dubai,sans-serif;letter-spacing:.1em;text-transform:uppercase;margin-top:8px;color:#cbc4bd}@media(max-width:1100px){.nav-links{display:none}.menu{display:block}.mobile-panel.open{display:flex;position:absolute;top:88px;left:0;right:0;background:var(--deep);padding:24px 32px 32px;flex-direction:column;gap:20px}}@media(max-width:850px){.brand{gap:10px}.brand img{width:70px;height:56px}.brand-copy{font-size:.95rem}.brand-copy small{font-size:.75rem}.nav-inner{gap:12px}.mobile-panel.open{top:74px}.hero .hero-brand{margin-bottom:22px}}@media(max-width:420px){.brand{gap:8px}.brand img{width:46px;height:48px}.brand-copy{font-size:.8rem;max-width:120px}.brand-copy small{font-size:.75rem;letter-spacing:0;line-height:1.3}.nav-actions{gap:6px}.lang{padding:2px;font-size:.78rem}.menu{padding:2px;font-size:1.4rem}.nav-inner{gap:10px}}
.hero p.direct-rate{font-size:.88rem;line-height:1.6;color:#d7d2cc;margin:18px 0 0;max-width:none}.rate-promise{display:flex;align-items:center;gap:12px;margin:0 0 22px;color:#312c26;font-size:1rem;font-weight:600}.rate-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e3e0dc;flex-shrink:0;font-size:.95rem}.booking-band .eyebrow{display:block;max-width:600px;line-height:1.7}

/* One type family, an uncluttered logo, and one clear booking destination. */
body,button,input,select,textarea{font-family:Dubai,sans-serif}
.brand{gap:0}.brand img{width:132px;height:68px}.nav-inner{gap:28px}
.hero p.direct-rate{font-family:inherit;font-size:1rem;font-weight:600;line-height:1.65;color:#eceae7;margin-top:20px;border-left:2px solid #c4bcb4;padding-left:14px}
.reservation .section-heading{align-items:end;gap:48px}.reservation .section-heading h2{font-size:clamp(2.4rem,4.2vw,4.5rem);line-height:1.14;max-width:850px}.reservation .section-heading p{max-width:380px;font-size:1.02rem;line-height:1.8;color:#5b5147}.reservation .section-heading>div{min-width:0}.reservation .section-heading>p{flex-shrink:0}
@media(min-width:851px){.nav-links{display:flex}.menu{display:none}}
@media(max-width:1100px){.reservation .section-heading{display:block}.reservation .section-heading p{margin-top:24px;max-width:620px}}
@media(max-width:850px){.brand img{width:112px;height:58px}.nav-inner{gap:18px}.nav-actions{gap:16px}.hero p.direct-rate{font-size:.96rem}.reservation .section-heading h2{font-size:clamp(2.1rem,6vw,3.3rem)}}
@media(max-width:420px){.brand img{width:104px;height:56px}.nav-actions{gap:12px}.lang{font-size:.88rem}.menu{font-size:1.5rem}.image-caption{font-size:.7rem;letter-spacing:.04em;gap:10px}}

/* A restrained type system: uppercase only for navigation, with consistent medium-weight labels. */
.nav-links,.mobile-panel.open{font-size:.9rem;font-weight:500;letter-spacing:.075em;text-transform:uppercase}
.nav-links{gap:32px}.lang{font-weight:500;letter-spacing:.075em}
.pill{font-size:.9rem;font-weight:500;letter-spacing:.015em;text-transform:none}
.nav .pill,.hero-buttons .pill,.ap-detail-action .pill{font-size:.9rem;letter-spacing:.015em}
.eyebrow{font-size:.86rem;font-weight:500;letter-spacing:.065em;text-transform:none}
.hero .eyebrow,.film-heading .eyebrow{font-size:.86rem;letter-spacing:.065em}
.hero-highlights,.apartment-meta,.ap-detail-meta,.facts span,.image-caption{font-weight:500;letter-spacing:.025em;text-transform:none}
.hero-highlights,.image-caption{font-size:.86rem}.apartment-meta,.ap-detail-meta,.facts span{font-size:.86rem}
@media(max-width:850px){.mobile-panel.open{font-size:.9rem}.hero-highlights{font-size:.86rem}}
.reservation-age{margin:-8px 0 28px;padding:13px 18px;border-left:3px solid #a99d91;background:#fbfaf9;color:#423b33;font-size:1rem;font-weight:500;line-height:1.5}
@media(max-width:620px){.reservation-age{margin:0 0 20px;padding:12px 15px}}
.reservation-terms{margin:-12px 0 27px;font-size:1rem;line-height:1.5}.reservation-terms a{color:#3b352f;text-decoration:underline;text-underline-offset:4px}.reservation-terms a:hover{color:#64594e}
.footer-legal{margin-top:42px;font-size:.94rem}.footer-legal a{color:#e1ddd9;text-decoration:underline;text-underline-offset:4px}.footer-legal+small{margin-top:27px}
@media(max-width:620px){.reservation-terms{margin:-6px 0 22px}.footer-legal{margin-top:30px}}

/* Share the desktop palette with the touch navigation and browser controls. */
.mobile-panel.open{background:var(--navigation);color:var(--white);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.mobile-panel .pill{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.mobile-panel .pill:hover{background:#e2deda}
.nav{-webkit-backdrop-filter:blur(16px)}
