/* DaVinci Beach — editorial motion layer. Photography is exclusively hotel-owned. */
:root{--maxw:1320px;--gutter:clamp(22px,4vw,72px);--brass:#c6a66b;--brass-soft:#dec087;--espresso:#211c17;--bark:#29231d;--cream:#faf8f4;--ivory:#fffdfa;--r:3px}
body{overflow-x:hidden}
.nav{background:rgba(33,28,23,.96);border-bottom:1px solid rgba(222,192,135,.15)}
.nav .wrap{min-height:84px;max-width:1480px;padding-block:12px}
.brand-logo{height:52px}
.menu{gap:clamp(16px,1.9vw,30px)}
.menu a{position:relative;font-size:.69rem;letter-spacing:.13em;color:#f4ede2}
.menu a::after{content:"";position:absolute;left:0;right:100%;bottom:-13px;height:1px;background:var(--brass);transition:right .35s ease}
.menu a:hover::after,.menu a[aria-current]::after{right:0}
.nav .btn{padding:13px 25px}
.btn{border-radius:2px;min-height:46px;justify-content:center;transition:transform .3s ease,background .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}
.btn:hover{transform:translateY(-3px);box-shadow:0 12px 24px -15px #17120c}
.btn-primary{background:var(--brass);border-color:var(--brass)}
.btn-primary:hover{background:var(--brass-soft);border-color:var(--brass-soft);color:#211c17}
.hero:not(.short){min-height:clamp(650px,78svh,760px);display:flex;align-items:center}
.hero:not(.short) .sea{background-position:center 26%!important;opacity:1;transform:scale(1.065);animation:sea-arrive 2.5s cubic-bezier(.2,.7,.2,1) both}
.hero:not(.short) .veil{background:linear-gradient(90deg,rgba(23,20,17,.83) 0%,rgba(23,20,17,.65) 39%,rgba(23,20,17,.2) 70%,rgba(23,20,17,.12) 100%),linear-gradient(0deg,rgba(23,20,17,.42),transparent 33%)}
.hero:not(.short) .wrap{width:100%;padding-block:55px 130px}
.hero .loc{font-size:.72rem;font-weight:500;letter-spacing:.28em;color:var(--brass-soft)}
.hero:not(.short) h1{font-size:clamp(3.6rem,7vw,6.6rem);font-weight:400;letter-spacing:-.045em;line-height:1.04;max-width:14ch;margin-block:24px 21px;text-shadow:0 3px 25px rgba(0,0,0,.12)}
.hero:not(.short) h1 em{font-weight:400}
.hero:not(.short) .desc{max-width:54ch;font-size:clamp(1rem,1.25vw,1.18rem);line-height:1.65;color:#f7f2e9}
.hero:not(.short) .cta{margin-top:31px;gap:16px}
.hero:not(.short) .cta .btn{min-height:54px;padding-inline:29px}
.hero-scroll{position:absolute;z-index:3;left:max(var(--gutter),calc((100vw - var(--maxw))/2 + var(--gutter)));bottom:35px;display:flex;align-items:center;gap:15px;color:#fff8ea;font-size:.63rem;letter-spacing:.2em;text-transform:uppercase}
.hero-scroll span:first-child{width:23px;height:36px;border:1px solid rgba(255,255,255,.75);border-radius:15px;position:relative}
.hero-scroll span:first-child::after{content:"";position:absolute;top:7px;left:10px;width:2px;height:7px;border-radius:2px;background:var(--brass-soft);animation:scroll-dot 1.8s infinite}
.hero .loc,.hero h1,.hero .desc,.hero .cta{animation:rise-in .9s cubic-bezier(.16,1,.3,1) both}
.hero h1{animation-delay:.12s}.hero .desc{animation-delay:.27s}.hero .cta{animation-delay:.42s}
.book{background:#28221c;border-top:1px solid rgba(222,192,135,.24)}
.book .wrap{padding-block:25px 20px}
.book-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:17px}
.book-heading b{font-size:.7rem;letter-spacing:.27em;text-transform:uppercase;color:var(--brass-soft);font-weight:500}
.book-heading span{font-size:.77rem;color:#d2c8b9}
.book-form{gap:12px!important}
.book .f{border:1px solid rgba(222,192,135,.32);padding:11px 15px 9px;min-height:68px;justify-content:center}
.book .f label{color:#c5aa80;font-size:.59rem}
.book .f input,.book .f select{border:0;min-height:26px;padding:0;font-family:var(--sans);font-size:.9rem}
.book .f input:focus{outline:1px solid var(--brass)}
.book .dates{flex:1.6 1 260px}
.book .date-trigger{border:0;padding:0;min-height:28px;gap:13px}
.book .dt-seg b{font-family:var(--sans);font-size:.84rem}
.book .dt-k{display:none}
.book .btn{min-height:68px}
.book .note{margin-top:12px;color:#d0c4b4;font-size:.76rem;line-height:1.55}
.book .note a{color:var(--brass-soft);text-decoration:underline;text-underline-offset:3px}
.intro{background:var(--ivory);padding-block:clamp(76px,9vw,130px)}
.intro .split{grid-template-columns:.82fr 1.18fr;gap:clamp(40px,6vw,100px)}
.intro h2{font-size:clamp(2.4rem,4vw,4.5rem)!important;line-height:1.14;letter-spacing:-.035em;max-width:14ch}
.intro .stack{max-width:54ch;color:#51483c}
.intro .arch{aspect-ratio:1.12;border-radius:0;border:0}
.intro .arch img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.intro .arch:hover img{transform:scale(1.045)}
.intro .imgbox .cap{letter-spacing:.19em;padding:15px 17px}
.eyebrow{letter-spacing:.27em}
.sec-head h2{letter-spacing:-.025em}
.room,.post{border-radius:3px;box-shadow:none;transition:transform .45s ease,box-shadow .45s ease}
.room:hover,.post:hover{transform:translateY(-6px);box-shadow:0 25px 55px -38px rgba(20,16,12,.5)}
.room .pic,.post .pic{overflow:hidden}
.room .pic img,.post .pic img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.room:hover .pic img,.post:hover .pic img{transform:scale(1.055)}
.on-dark{background:#211c17}
.stats{border-radius:2px}
.amen-sprite{position:absolute;width:0;height:0;overflow:hidden}
.amen .a{flex-direction:column;align-items:flex-start;gap:13px;padding:22px 20px;border-radius:3px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,border-color .35s ease,background-color .35s ease}
.amen .a b{transition:color .3s ease}
.amen .amen-icon{box-sizing:border-box;width:42px;height:42px;flex:none;padding:8px;border-radius:50%;background:rgba(198,166,107,.13);color:#a78145;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s ease,background-color .35s ease,color .35s ease}
@media(hover:hover){.amen .a:hover{transform:translateY(-6px);background:#fff;box-shadow:0 20px 38px -24px rgba(14,10,6,.6);border-color:var(--brass)}.amen .a:hover .amen-icon{transform:scale(1.1) rotate(-4deg);background:rgba(198,166,107,.24);color:#825f2c}.amen .a:hover b{color:#825f2c}}
.about-chapter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(32px,6vw,80px);align-items:center}
.about-chapter .sec-head{max-width:none}
.about-chapter-photo{margin:0;overflow:hidden;border-radius:3px;aspect-ratio:4/3}
.about-chapter-photo img{display:block;width:100%;height:100%;object-fit:cover}
.about-belief-photo{aspect-ratio:16/9}
@media(max-width:760px){.about-chapter{grid-template-columns:1fr}.about-chapter-photo{max-width:680px}}
.foot-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:40px;padding-top:22px;border-top:1px solid var(--line-dark)}
.foot-bottom .foot-legal{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0;margin:0;padding:0;border:0}
.foot-newbloom{display:block;width:172px;max-width:100%;height:auto;margin-top:2px}
.foot-partner{display:block;flex:none}
.foot-partner img{display:block;width:clamp(85px,9.5vw,110px);height:auto}
@media(max-width:640px){.foot-bottom{flex-wrap:wrap}.foot-partner{margin-left:auto}}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}
.reveal.in-view{opacity:1;transform:none}
@keyframes sea-arrive{from{transform:scale(1.065);filter:brightness(.75)}to{transform:scale(1);filter:brightness(1)}}
@keyframes rise-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes scroll-dot{0%{transform:translateY(0);opacity:0}35%{opacity:1}100%{transform:translateY(12px);opacity:0}}
@media(max-width:1150px){.nav .wrap{min-height:72px}.brand-logo{height:42px}.menu{gap:13px}.menu a{font-size:.61rem}.nav-right{gap:10px}.langs{display:none}}
@media(max-width:860px){.nav .wrap{min-height:70px}.menu{display:none;position:absolute;top:100%;left:0;right:0;padding:20px var(--gutter);background:var(--espresso);border-bottom:1px solid var(--line-dark);flex-direction:column;align-items:stretch;gap:0}.menu.is-open{display:flex}.menu li a{display:block;padding:11px 0;font-size:.8rem}.menu a::after{bottom:8px;right:100%}.burger{display:block;min-width:44px;min-height:44px}.intro .split{grid-template-columns:1fr}.intro h2{max-width:19ch}.intro .arch{aspect-ratio:1.35}.hero:not(.short){min-height:700px}}
@media(max-width:640px){.nav .wrap{padding-block:10px}.nav .btn{padding:10px 13px;min-height:43px}.hero:not(.short){min-height:660px}.hero:not(.short) .wrap{padding-block:86px 105px}.hero:not(.short) h1{font-size:clamp(3rem,12vw,4.5rem);max-width:12ch}.hero:not(.short) .veil{background:linear-gradient(90deg,rgba(23,20,17,.83),rgba(23,20,17,.46)),linear-gradient(0deg,rgba(23,20,17,.38),transparent 48%)}.hero:not(.short) .sea{background-position:25% 28%!important}.hero-scroll{bottom:22px}.book .wrap{padding-block:25px}.book-heading{display:block}.book-heading span{display:block;margin-top:4px}.book .f{flex:1 1 calc(50% - 7px)}.book .dates{flex:1 1 100%}.book .btn{width:100%;min-height:54px}.intro .arch{aspect-ratio:1}.intro .stack{font-size:.98rem}}
@media(max-width:420px){.nav .btn{display:none}.brand-logo{height:40px}.hero:not(.short) .cta{flex-direction:column;align-items:stretch}.hero:not(.short) .cta .btn{width:100%}.hero:not(.short) h1{font-size:2.85rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero .loc,.hero h1,.hero .desc,.hero .cta,.hero:not(.short) .sea,.hero-scroll span:first-child::after{animation:none!important}.reveal{opacity:1!important;transform:none!important;transition:none!important}.btn,.room,.post,.room img,.post img,.intro .arch img,.amen .a,.amen .amen-icon,.amen .a b{transition:none!important}.amen .a:hover,.amen .a:hover .amen-icon{transform:none!important}}
