/* ROCKWELL ISLAND — Banyan Tree Residences layout clone, Rockwell navy skin */
@import url('https://fonts.googleapis.com/css2?family=Niramit:wght@200;300;400;500&display=swap');
@font-face{font-family:'Reforma1969';src:url('fonts/reforma.1969-blanca.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Reforma1969';src:url('fonts/reforma.1969-gris.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Reforma1969';src:url('fonts/reforma.1969-negra.woff2') format('woff2');font-weight:700;font-display:swap}

:root{
  --cream:#F4F1EA; --paper:#FBF9F4; --navy:#0D1F2D; --ink:#0D1F2D;
  --gold:#B08D57; --peach:#FFBC7D; --taupe:#8A8678; --line:#D9D4C8; --linef:#E6E2D9;
  --serif:'Reforma1969',Georgia,serif; --sans:'Niramit',sans-serif; --maxw:1280px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;color:var(--navy);background:var(--cream);line-height:1.78;font-size:16px;letter-spacing:.02em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--navy);color:var(--cream)}
:focus-visible{outline:1.5px solid var(--gold);outline-offset:4px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

h1,h2,h3,h4{font-family:var(--serif);font-weight:400}
/* uppercase wide-tracked headings = Banyan signature */
.kick{display:block;font-family:var(--serif);font-size:11px;font-weight:400;letter-spacing:.34em;text-transform:uppercase;color:var(--taupe)}
.tlink{display:inline-block;margin-top:30px;font-family:var(--serif);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);padding-bottom:6px;border-bottom:1px solid var(--gold);transition:.4s}
.tlink:hover{color:var(--navy);border-color:var(--navy)}
.tlink.lt{color:#fff;border-color:rgba(255,255,255,.7)}.tlink.lt:hover{color:#fff;border-color:#fff}
.btn{display:inline-block;border:1px solid var(--navy);padding:15px 42px;font-family:var(--serif);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--navy);background:none;cursor:pointer;transition:.45s}
.btn:hover{background:var(--navy);color:var(--cream)}

/* NAV */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:26px 50px;transition:background .55s ease,padding .55s ease,box-shadow .55s ease}
.nav.solid,.nav.scrolled{background:rgba(244,241,234,.97);backdrop-filter:saturate(1.1) blur(6px);box-shadow:0 1px 0 var(--linef);padding:15px 50px}
.nav .brand img{height:50px;transition:.45s}
.nav.scrolled .brand img{height:40px}
.nav .lw{display:block}.nav .ld{display:none}
.nav.scrolled .lw{display:none}.nav.scrolled .ld{display:block}
.nav .nl{display:flex;gap:38px;align-items:center}
.nav .nl a{font-family:var(--serif);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.9);transition:color .4s}
.nav.scrolled .nl a{color:var(--navy)}
.nav .nl a:hover{color:var(--peach)}.nav.scrolled .nl a:hover{color:var(--gold)}
.inq{border:1px solid rgba(255,255,255,.5);padding:9px 22px}
.nav.scrolled .inq{border-color:var(--navy)}
.navtog{display:none;background:none;border:0;cursor:pointer;width:28px;height:20px;position:relative}
.navtog span{position:absolute;left:0;right:0;height:1.5px;background:#fff;transition:.3s}
.nav.scrolled .navtog span{background:var(--navy)}
.navtog span:nth-child(1){top:0}.navtog span:nth-child(2){top:9px}.navtog span:nth-child(3){top:18px}

/* HERO */
.hero{position:relative;height:64vh;min-height:460px;overflow:hidden}
.hero.tall{height:92vh;min-height:620px}
.hero .media{position:absolute;inset:0}
.hero .media img,.hero video{width:100%;height:100%;object-fit:cover}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,31,45,.42),rgba(13,31,45,.16) 42%,rgba(13,31,45,.5));z-index:1}
.hin{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:0 28px}
.hin .kick{color:rgba(255,255,255,.85);margin-bottom:26px}
.hin h1{color:#fff;font-size:clamp(20px,2.5vw,31px);font-weight:400;letter-spacing:.2em;text-transform:uppercase;line-height:1.5;max-width:1000px}
.hin .hsub{margin-top:24px;font-weight:300;font-size:16px;letter-spacing:.06em;color:rgba(255,255,255,.92);max-width:560px}

/* STATEMENT */
.statement{text-align:center;padding:clamp(104px,15vw,184px) 28px;background:var(--cream)}
.statement .kick{margin-bottom:30px}
.statement .big{font-family:var(--serif);font-weight:300;font-size:clamp(24px,3vw,40px);line-height:1.32;color:var(--navy);max-width:1000px;margin:0 auto;letter-spacing:.01em}
.statement p{margin:30px auto 0;max-width:620px;color:var(--taupe);font-size:16px}
.statement .btn{margin-top:42px}
/* dark closing band — avoids cream-on-cream into the footer */
.statement.dark{background:var(--navy)}
.statement.dark .kick{color:var(--peach)}
.statement.dark .big{color:#fff}
.statement.dark p{color:rgba(255,255,255,.8)}
.statement.dark .btn{color:#fff;border-color:rgba(255,255,255,.55)}
.statement.dark .btn:hover{background:#fff;color:var(--navy);border-color:#fff}

/* QUOTE */
.quote{text-align:center;padding:clamp(90px,12vw,150px) 28px;background:var(--paper)}
.quote .qin{max-width:880px;margin:0 auto}
.quote p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(22px,2.7vw,34px);line-height:1.4;color:var(--navy)}

/* BLOCK (alternating image/text) */
.block{display:grid;grid-template-columns:1fr 1fr;background:var(--paper);min-height:88vh}
.block:nth-of-type(even){background:var(--cream)}
.block .bimg{position:relative;overflow:hidden;min-height:560px}
.block .bimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s cubic-bezier(.2,.7,.2,1)}
.block:hover .bimg img{transform:scale(1.045)}
.block .bcap{position:absolute;left:26px;bottom:22px;z-index:2;color:#fff;font-family:var(--serif);font-size:11px;letter-spacing:.24em;text-transform:uppercase;opacity:.92}
.block .btxt{display:flex;flex-direction:column;justify-content:center;padding:clamp(50px,7vw,110px)}
.block.rev .bimg{order:2}
.block .btxt .kick{margin-bottom:20px}
.block .btxt h2{font-size:clamp(19px,1.7vw,23px);font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);line-height:1.5;margin-bottom:26px}
.block .btxt p{color:var(--taupe);font-size:15.5px;margin-bottom:16px;max-width:460px}

/* FEATURE LIST (3-col) */
.flist{max-width:1000px;margin:0 auto;padding:clamp(70px,9vw,120px) 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--paper)}
.flist div{font-family:var(--serif);font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);text-align:center;padding:20px 14px;border-top:1px solid var(--linef)}

/* FULL-BLEED */
.fb{position:relative;height:80vh;min-height:520px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.fb .media{position:absolute;inset:0}
.fb .media img{width:100%;height:100%;object-fit:cover}
.fb::after{content:'';position:absolute;inset:0;background:rgba(13,31,45,.46)}
.fbin{position:relative;z-index:2;color:#fff;max-width:880px;padding:0 28px}
.fbin .kick{color:rgba(255,255,255,.82);margin-bottom:24px}
.fbin h2{font-family:var(--serif);font-weight:300;font-size:clamp(24px,3.2vw,42px);line-height:1.36;color:#fff;letter-spacing:.01em}
.fbin p{margin-top:18px;color:rgba(255,255,255,.9);font-size:16px}

/* GALLERY */
.gal{background:var(--cream);padding:clamp(54px,7vw,90px) 0}
.galw{position:relative;max-width:1520px;margin:0 auto;padding:0 20px}
.galt{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:6px;scrollbar-width:none}
.galt::-webkit-scrollbar{display:none}
.galt img{height:440px;width:auto;object-fit:cover;flex:0 0 auto;scroll-snap-align:center}
.gar{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:50px;height:50px;border-radius:50%;border:1px solid #fff;background:rgba(13,31,45,.32);color:#fff;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:.3s}
.gar:hover{background:#fff;color:var(--navy)}
.gp{left:26px}.gn{right:26px}

/* CONTACT */
.contact{background:var(--cream)}
.cwrap{max-width:1120px;margin:0 auto;padding:clamp(80px,11vw,140px) 40px;display:grid;grid-template-columns:1fr 1fr;gap:72px}
.cwrap h2{font-size:clamp(19px,1.7vw,23px);font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);margin:18px 0 18px}
.cwrap .kick{margin-bottom:6px}
.cwrap p{color:var(--taupe);margin-bottom:20px}
.cinfo{font-size:15px;line-height:2;color:var(--navy)}.cinfo a:hover{color:var(--gold)}
.cteam{display:grid;grid-template-columns:1fr 1fr;gap:8px 26px;margin-top:28px;border-top:1px solid var(--line);padding-top:24px}
.cteam .p{font-size:13.5px;color:var(--navy)}.cteam .p span{display:block;color:var(--taupe);font-size:12.5px}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--serif);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fff;padding:13px 14px;font-family:var(--sans);font-size:14px;color:var(--navy);outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold)}

/* FOOTER */
footer{background:var(--cream);text-align:center;padding:88px 24px 44px;border-top:1px solid var(--linef)}
footer .fmono{height:56px;margin:0 auto 14px}
footer .floc{font-family:var(--serif);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--taupe);margin-bottom:40px}
footer .fnl{display:flex;justify-content:center;gap:36px;flex-wrap:wrap;margin-bottom:34px}
footer .fnl a{font-family:var(--serif);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--navy)}
footer .fnl a:hover{color:var(--gold)}
footer .fc{font-size:14px;color:var(--navy);margin-bottom:38px}footer .fc a:hover{color:var(--gold)}
footer .fbot{border-top:1px solid var(--line);max-width:920px;margin:0 auto;padding-top:26px;font-size:11px;letter-spacing:.1em;color:var(--taupe)}

/* NAV DROPDOWN */
.nl .hasdrop{position:relative}
.nl .hasdrop>a::after{content:'\00a0\25be';font-size:9px;opacity:.7}
.nl .hasdrop::after{content:'';position:absolute;top:100%;left:-10px;right:-10px;height:20px}
.nl .drop{position:absolute;top:100%;margin-top:14px;left:50%;transform:translateX(-50%) translateY(8px);background:rgba(244,241,234,.98);backdrop-filter:blur(6px);box-shadow:0 20px 44px -26px rgba(13,31,45,.55);padding:20px 28px;display:flex;flex-direction:column;gap:15px;min-width:190px;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease}
.nl .hasdrop:hover .drop{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nl .drop a{color:var(--navy)!important;font-size:11px;letter-spacing:.16em}
.nl .drop a:hover{color:var(--gold)!important}

/* CARD GRID (amenities / discover bimini) */
.shead{text-align:center;padding:clamp(90px,12vw,150px) 28px 0}
.shead .kick{margin-bottom:22px}
.shead h2{font-size:clamp(22px,2vw,28px);font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}
.shead p{max-width:680px;margin:24px auto 0;color:var(--taupe);font-size:16px}
.cards-wrap{background:var(--paper);padding:clamp(46px,6vw,80px) 0 clamp(80px,11vw,140px)}
.cards{max-width:var(--maxw);margin:0 auto;padding:0 48px;display:grid;grid-template-columns:repeat(3,1fr);gap:46px 36px}
.card{background:var(--cream);display:flex;flex-direction:column}
.card-img{aspect-ratio:4/3;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-img img{transform:scale(1.06)}
.card-bd{padding:28px 28px 32px}
.card-bd h3{font-family:var(--serif);font-size:15px;font-weight:400;letter-spacing:.13em;text-transform:uppercase;color:var(--navy);line-height:1.5;margin-bottom:14px}
.card-bd p{font-size:14.5px;color:var(--taupe);line-height:1.72}

/* INFO CARDS (location: how to get here) */
.info-wrap{background:var(--cream);padding:clamp(40px,6vw,70px) 0 clamp(80px,11vw,130px)}
.infocards{max-width:1100px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:repeat(3,1fr);gap:0 46px}
.ic{padding:36px 0;border-top:1px solid var(--line)}
.ic h3{font-family:var(--serif);font-size:17px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin-bottom:12px;line-height:1.4}
.ic p{font-size:14.5px;color:var(--taupe);line-height:1.72}

/* TEAM GRID */
.team-wrap{background:var(--paper);padding:clamp(46px,6vw,80px) 0 clamp(80px,11vw,140px)}
.teamgrid{max-width:1180px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:repeat(4,1fr);gap:44px 32px}
.tmember{text-align:center}
.tmember .tphoto{aspect-ratio:1/1;overflow:hidden;margin-bottom:22px;background:var(--cream)}
.tmember .tphoto img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s cubic-bezier(.2,.7,.2,1)}
.tmember:hover .tphoto img{transform:scale(1.05)}
.tmember h3{font-family:var(--serif);font-size:16px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.tmember .role{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.tmember .tc{font-size:13px;color:var(--taupe);line-height:1.8}
.tmember .tc a:hover{color:var(--gold)}

/* FOOTER socials + tagline */
footer .ftag{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--navy);margin:-6px 0 30px}
footer .fsoc{font-size:12.5px;letter-spacing:.03em;color:var(--taupe);margin-bottom:10px}
footer .fsoc a:hover{color:var(--gold)}

/* MOTION — slow Banyan-style entrance reveals */
.rv{opacity:0;transform:translateY(46px);transition:opacity 1.25s cubic-bezier(.16,.7,.18,1),transform 1.25s cubic-bezier(.16,.7,.18,1)}
.rv.in{opacity:1;transform:none}
.rv-media{opacity:0;transition:opacity 1.5s ease}
.rv-media.in{opacity:1}
/* hero slow ken-burns zoom */
.hero .media{will-change:transform;animation:kenburns 22s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.11)}}
@media (prefers-reduced-motion: reduce){.hero .media{animation:none}.rv,.rv-media{opacity:1;transform:none}}

/* MOBILE */
@media(max-width:900px){
  .nav,.nav.scrolled{padding:14px 22px}
  .nav .nl{position:fixed;inset:0 0 0 auto;width:80%;max-width:330px;background:var(--cream);flex-direction:column;justify-content:center;align-items:flex-start;gap:24px;padding:60px 38px;transform:translateX(100%);transition:transform .45s ease}
  .nav .nl.open{transform:none}
  .nav .nl a{color:var(--navy)!important;font-size:14px}
  .navtog{display:block;z-index:70}
  .block{grid-template-columns:1fr;min-height:0}
  .block .bimg{min-height:58vh}
  .block.rev .bimg{order:0}
  .flist{grid-template-columns:1fr 1fr;padding:60px 26px}
  .cwrap{grid-template-columns:1fr;gap:48px;padding:80px 26px}
  .cteam{grid-template-columns:1fr 1fr}
  .galt img{height:280px}
  .hin h1{letter-spacing:.16em}
  .cards{grid-template-columns:1fr;padding:0 26px;gap:34px}
  .infocards{grid-template-columns:1fr;padding:0 26px}
  .nl .drop{position:static;opacity:1;pointer-events:auto;transform:none;background:none;box-shadow:none;padding:6px 0 0 14px;min-width:0;gap:14px}
  .nl .hasdrop>a::after{content:''}
  .teamgrid{grid-template-columns:1fr 1fr;padding:0 26px;gap:34px 22px}
}
