/* CRFT-WEB-008 · Harborlight House Hotel · "Tidewater" design system
   Harbor navy + warm sand + brass · Frank Ruhl Libre + Instrument Sans
   v2.1 STRUCTURE: full hero w/ floating booking bar · wide horizontal room cards ·
   amenities row · sticky booking widget form · 3-col footer w/ newsletter */
:root{
  --navy:#15303d; --navy-2:#1e4150; --brass:#c2954a; --brass-dk:#a0762f;
  --sand:#e7dcc6; --sand-dk:#d6c7a8; --sea:#5f8a86; --shell:#f6f1e7; --cream:#fcf9f2;
  --ink:#21282b; --muted:#6d756f; --line:#e3dccc; --white:#fff;
  --disp:'Frank Ruhl Libre',Georgia,serif; --body:'Instrument Sans',system-ui,sans-serif;
  --r:6px; --r-lg:14px; --r-xl:22px;
  --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:6rem;
  --sh:0 24px 58px -28px rgba(21,48,61,.45); --sh-sm:0 10px 26px -16px rgba(21,48,61,.3);
  --wrap:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--disp);font-weight:500;line-height:1.12;letter-spacing:-.01em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.6rem}
.wrap.tight{max-width:900px}
section{padding:var(--s6) 0}
.eyebrow{display:inline-block;font-weight:600;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass-dk)}
.lead{font-size:1.16rem;color:var(--muted);max-width:60ch}
.muted{color:var(--muted)}
.center{text-align:center}
.section-head{max-width:60ch}
.section-head.center{margin:0 auto}
.section-head h2{font-size:clamp(2.1rem,4.6vw,3.3rem);margin:.4rem 0 .55rem;color:var(--navy)}
.section-head p{font-size:1.06rem;color:var(--muted)}
.bg-navy{background:var(--navy);color:var(--sand)}
.bg-navy h2,.bg-navy h3{color:#fff}
.bg-navy .muted,.bg-navy .lead{color:#b9c6c4}
.bg-shell{background:var(--shell)}

.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--body);font-weight:600;font-size:.86rem;letter-spacing:.06em;padding:.85rem 1.7rem;border-radius:var(--r);cursor:pointer;border:1.5px solid transparent;transition:transform .18s ease,background .18s ease,color .18s ease}
.btn.solid{background:var(--brass);color:var(--navy)}
.btn.solid:hover{background:var(--brass-dk);color:#fff}
.btn.navy{background:var(--navy);color:var(--shell)}
.btn.navy:hover{background:var(--navy-2)}
.btn.ghost{border-color:var(--navy);color:var(--navy)}
.btn.ghost:hover{background:var(--navy);color:var(--shell)}
.btn.outline-l{border-color:rgba(246,241,231,.55);color:var(--shell)}
.btn.outline-l:hover{background:var(--shell);color:var(--navy)}
.btn.sm{padding:.55rem 1.1rem;font-size:.78rem}

header.site{position:sticky;top:0;z-index:40;background:rgba(252,249,242,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header .nav{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.6rem;max-width:var(--wrap);margin:0 auto}
.nav-links{display:flex;align-items:center;gap:1.7rem}
.nav-links a{font-weight:500;font-size:.92rem;color:var(--ink)}
.nav-links a:not(.btn):hover,.nav-links a.active{color:var(--brass-dk)}
.menu-btn{display:none;background:none;border:0;font-size:1.5rem;cursor:pointer;color:var(--navy)}

/* HERO with floating booking bar (v2.1 distinct) */
.hero{position:relative;min-height:86vh;display:flex;align-items:center;overflow:hidden;color:var(--shell)}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,48,61,.3),rgba(21,48,61,.6))}
.hero .inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;width:100%;padding:0 1.6rem;text-align:center}
.hero .eyebrow{color:var(--brass)}
.hero h1{font-size:clamp(2.8rem,6.5vw,5rem);color:#fff;max-width:16ch;margin:.5rem auto .8rem}
.hero p{font-size:1.2rem;color:#e9e2d4;max-width:42ch;margin:0 auto}
/* booking bar */
.bookbar{position:relative;z-index:3;max-width:980px;margin:-44px auto 0;background:var(--white);border-radius:var(--r-lg);box-shadow:var(--sh);padding:1.1rem 1.2rem;display:grid;grid-template-columns:repeat(4,1fr) auto;gap:1rem;align-items:end}
.bookbar .f label{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:.35rem}
.bookbar .f input,.bookbar .f select{width:100%;border:0;border-bottom:1.5px solid var(--line);padding:.4rem 0;font-family:inherit;font-size:.95rem;background:transparent;color:var(--ink)}
.bookbar .f input:focus,.bookbar .f select:focus{outline:none;border-color:var(--brass)}
.bookbar .btn{justify-content:center;height:fit-content}
.ph{background-size:cover;background-position:center;background-repeat:no-repeat}

/* welcome split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);align-items:center}
.split .media{overflow:hidden;border-radius:var(--r-xl);aspect-ratio:5/4;box-shadow:var(--sh);position:relative}
.split .media .ph{position:absolute;inset:0}
.figs{display:flex;gap:var(--s4);flex-wrap:wrap;margin-top:1.6rem}
.fig .n{font-family:var(--disp);font-size:2.2rem;color:var(--brass-dk);line-height:1}
.fig .l{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}

/* WIDE HORIZONTAL ROOM CARDS (v2.1 distinct) */
.rooms{display:grid;gap:var(--s3)}
.room{display:grid;grid-template-columns:1.1fr 1fr;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-sm)}
.room:nth-child(even){grid-template-columns:1fr 1.1fr}
.room:nth-child(even) .rimg{order:2}
.room .rimg{position:relative;min-height:280px;overflow:hidden}
.room .rimg .ph{position:absolute;inset:0}
.room .rbody{padding:clamp(1.6rem,3vw,2.6rem);display:flex;flex-direction:column;justify-content:center}
.room .rname{font-family:var(--disp);font-size:1.7rem;color:var(--navy)}
.room .rdesc{color:var(--muted);margin:.5rem 0 1rem;font-size:.98rem}
.room .rfeat{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.82rem;color:var(--ink);margin-bottom:1.2rem}
.room .rfeat span{display:inline-flex;align-items:center;gap:.35rem}
.room .rfoot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1rem}
.room .rrate{font-family:var(--disp);font-size:1.5rem;color:var(--brass-dk)}
.room .rrate small{font-family:var(--body);font-size:.78rem;color:var(--muted)}

/* amenities row */
.amen{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3)}
.amen .a{text-align:center}
.amen .a .ic{width:58px;height:58px;border-radius:50%;background:var(--shell);border:1px solid var(--line);display:grid;place-items:center;font-size:1.4rem;margin:0 auto .8rem}
.amen .a h3{font-size:1.2rem;color:var(--navy)}
.amen .a p{color:var(--muted);font-size:.9rem;margin-top:.25rem}

/* experiences scroll-snap */
.hscroll{display:flex;gap:var(--s3);overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem .2rem 1.4rem}
.hscroll::-webkit-scrollbar{height:8px}.hscroll::-webkit-scrollbar-thumb{background:var(--sea);border-radius:4px}
.exp{scroll-snap-align:start;flex:none;width:320px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.exp .ph{aspect-ratio:3/2}
.exp .b{padding:1.3rem}
.exp h3{font-size:1.3rem;color:var(--navy)}
.exp p{color:var(--muted);font-size:.9rem;margin-top:.3rem}

/* quote */
.quote-band{text-align:center}
.quote-band blockquote{font-family:var(--disp);font-style:italic;font-size:clamp(1.6rem,3.6vw,2.3rem);line-height:1.4;max-width:24ch;margin:0 auto;color:#fff}
.quote-band .who{margin-top:1.3rem;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}
.quote-band .stars{color:var(--brass);letter-spacing:.2em}

/* STICKY BOOKING WIDGET (reserve page) */
.reserve-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:var(--s5);align-items:start}
.bookwidget{position:sticky;top:90px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh);padding:1.8rem}
.bookwidget h3{font-family:var(--disp);font-size:1.5rem;color:var(--navy);margin-bottom:.2rem}
.bookwidget .field{margin-bottom:.9rem}
.bookwidget label{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:.3rem}
.bookwidget input,.bookwidget select{width:100%;padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--r);font-family:inherit;font-size:.93rem;background:var(--cream)}
.bookwidget input:focus,.bookwidget select:focus{outline:2px solid var(--brass);border-color:transparent}
.bookwidget .total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);margin-top:.6rem;padding-top:.9rem}
.bookwidget .total .amt{font-family:var(--disp);font-size:1.6rem;color:var(--brass-dk)}
.bookdone{display:none;margin-top:.8rem;color:var(--sea);font-weight:600;font-size:.92rem;text-align:center}
.rprose .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.rprose .field{margin-bottom:1rem}
.rprose label{display:block;font-weight:600;font-size:.82rem;margin-bottom:.35rem;color:var(--navy)}
.rprose input,.rprose textarea,.rprose select{width:100%;padding:.78rem .9rem;border:1px solid var(--line);border-radius:var(--r);font-family:inherit;font-size:.95rem;background:var(--white)}
.rlist{list-style:none;display:grid;gap:.8rem;margin-top:1rem}
.rlist li{display:flex;gap:.7rem;align-items:flex-start;color:var(--muted)}
.rlist .b{flex:none;width:24px;height:24px;border-radius:50%;background:var(--shell);color:var(--brass-dk);display:grid;place-items:center;font-size:.7rem;font-weight:700}

/* contact info row */
.cstrip{display:flex;justify-content:center;gap:var(--s5);flex-wrap:wrap;text-align:center}
.cstrip .k{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-dk)}
.cstrip .v{font-family:var(--disp);font-size:1.2rem;color:var(--navy);margin-top:.2rem}

/* 3-COL FOOTER with newsletter (v2.1 distinct) */
footer{background:var(--navy);color:#b9c6c4;padding:var(--s5) 0 2rem}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1.4fr;gap:var(--s4)}
footer .name{font-family:var(--disp);font-size:1.7rem;color:#fff}
footer h4{color:#fff;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.9rem;font-weight:600}
footer a{display:block;color:#b9c6c4;margin-bottom:.5rem;font-size:.92rem}
footer a:hover{color:var(--brass)}
footer .news{display:flex;gap:.5rem;margin-top:.7rem}
footer .news input{flex:1;padding:.7rem .8rem;border:1px solid rgba(246,241,231,.25);border-radius:var(--r);background:rgba(255,255,255,.05);color:var(--shell);font-family:inherit}
footer .news input::placeholder{color:#8aa0a0}
footer .legal{border-top:1px solid rgba(255,255,255,.13);margin-top:var(--s4);padding-top:1.3rem;font-size:.82rem;color:#7f928f;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}

@media(max-width:900px){
  .split,.reserve-grid{grid-template-columns:1fr;gap:var(--s4)}
  .room,.room:nth-child(even){grid-template-columns:1fr}
  .room:nth-child(even) .rimg{order:0}
  .room .rimg{min-height:220px}
  .amen{grid-template-columns:1fr 1fr}
  .bookbar{grid-template-columns:1fr 1fr;gap:.9rem}
  .bookwidget{position:static}
  footer .cols{grid-template-columns:1fr}
  .nav-links{position:absolute;top:100%;left:0;right:0;background:var(--cream);flex-direction:column;align-items:flex-start;padding:1rem 1.6rem;gap:.9rem;border-bottom:1px solid var(--line);display:none}
  .nav-links.open{display:flex}
  .menu-btn{display:block}
}
@media(max-width:560px){
  .amen,.bookbar{grid-template-columns:1fr}
  .rprose .field-row{grid-template-columns:1fr}
  section{padding:var(--s5) 0}
}

/* --- Motion layer (v2) · gated behind reduced-motion --- */
@media (prefers-reduced-motion:no-preference){
  [data-rv]{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
  [data-rv].in{opacity:1;transform:none}
  .hero .bg{animation:hh-kenburns 26s ease-out both;transform-origin:50% 40%}
  @keyframes hh-kenburns{from{transform:scale(1.12)}to{transform:scale(1)}}
  .btn:hover{transform:translateY(-2px)}
  .room,.exp,.amen .a{transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease}
  .room:hover,.exp:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--brass)}
  .room .rimg .ph,.exp .ph,.split .media .ph{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
  .room:hover .rimg .ph,.exp:hover .ph{transform:scale(1.05)}
}
