
  :root{
    --navy:#1B2E4A;
    --navy-deep:#12213A;
    --teal:#3E92B0;
    --teal-bright:#57ABC8;
    --cloud:#F3F6F8;
    --white:#FFFFFF;
    --ink:#16232F;
    --slate:#5A6C7D;
    --brass:#C9A24B;
    --line: rgba(27,46,74,0.12);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces', serif;
    font-weight:600;
    letter-spacing:-0.01em;
    color:var(--navy-deep);
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  @media (max-width:720px){ .wrap{padding:0 20px;} }

  /* ---------- Nav ---------- */
  header.site{
    position:sticky; top:0; z-index:100;
    background:var(--white);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 32px;
    max-width:1180px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:12px;}
  .brand img{height:44px; width:auto;}
  .brand-text{font-family:'Fraunces', serif; font-weight:600; font-size:1.05rem; color:var(--navy-deep); line-height:1.1;}
  .brand-text span{display:block; font-family:'Inter',sans-serif; font-weight:500; font-size:0.62rem; letter-spacing:0.14em; color:var(--teal); margin-top:3px;}
  nav.links{display:flex; gap:2px; flex-wrap:nowrap;}
  nav.links a{
    display:inline-block;
    font-family:'Inter',sans-serif; font-size:0.82rem; font-weight:500;
    color:var(--slate); background:none; border:none; cursor:pointer;
    padding:9px 10px; border-radius:7px; transition:background .15s, color .15s;
    white-space:nowrap;
  }
  nav.links a:hover{background:var(--cloud); color:var(--navy);}
  nav.links a.active{color:var(--navy); background:var(--cloud); font-weight:600;}
  .hamburger-btn{display:none; background:none; border:none; cursor:pointer; padding:8px; flex:none;}
  nav.links a, .mobile-nav a{cursor:pointer;}
  .hamburger-btn span{display:block; width:24px; height:2px; background:var(--navy-deep); margin:5px 0; border-radius:2px; transition:transform .2s, opacity .2s;}
  .hamburger-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .hamburger-btn.open span:nth-child(2){opacity:0;}
  .hamburger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .mobile-nav{display:none; flex-direction:column; background:var(--white); border-top:1px solid var(--line); padding:8px 20px 16px;}
  .mobile-nav.open{display:flex;}
  .mobile-nav a{
    display:block;
    font-family:'Inter',sans-serif; font-size:1rem; font-weight:500; text-align:left;
    color:var(--ink); background:none; border:none; cursor:pointer;
    padding:14px 4px; border-bottom:1px solid var(--line);
  }
  .mobile-nav a.active{color:var(--teal); font-weight:600;}
  @media (max-width:960px){
    nav.links{display:none;}
    .hamburger-btn{display:block;}
    .brand-text{font-size:0.95rem;}
  }
  @media (min-width:961px){
    .mobile-nav{display:none !important;}
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 24px; border-radius:8px; font-weight:600; font-size:0.92rem;
    cursor:pointer; border:1px solid transparent; transition:transform .15s, opacity .15s;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{background:var(--teal); color:var(--white);}
  .btn-outline{background:transparent; color:var(--white); border-color:rgba(255,255,255,0.5);}
  .btn-outline:hover{border-color:#fff;}
  .btn-navy{background:var(--navy); color:var(--white);}
  .btn-navy-outline{background:transparent; color:var(--navy); border-color:var(--navy);}

  /* ---------- Hero ---------- */
  .hero{background:var(--navy-deep); color:var(--white); overflow:hidden;}
  .hero-grid{
    display:grid; grid-template-columns:1.05fr 0.95fr;
    align-items:center; gap:40px;
    max-width:1180px; margin:0 auto; padding:76px 32px 0;
  }
  @media (max-width:900px){ .hero-grid{grid-template-columns:1fr; padding-top:48px;} }
  .hero-eyebrow{color:var(--teal-bright); font-weight:600; font-size:0.85rem; margin-bottom:18px;}
  .hero h1{font-size:clamp(2.2rem, 4.4vw, 3.4rem); color:#fff; line-height:1.08; margin-bottom:20px;}
  .hero p.lede{font-size:1.08rem; color:#C9D5DF; max-width:480px; margin-bottom:32px;}
  .hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}
  .window-grid{
    display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr);
    gap:18px; height:420px; transform:translateY(20px);
  }
  .window-grid .cell{border-radius:8px; overflow:hidden;}
  .window-grid .cell img{width:100%; height:100%; object-fit:cover; display:block;}
  @media (max-width:900px){ .window-grid{height:auto; grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(3,1fr); gap:12px; transform:none; margin-top:12px;} .window-grid .cell{height:150px;} }

  .stat-strip{
    background:var(--navy-deep); border-top:1px solid rgba(255,255,255,0.1);
    padding:26px 0 34px;
  }
  .stat-strip .wrap{display:flex; gap:48px; flex-wrap:wrap;}
  .stat{color:#fff;}
  .stat .num{font-family:'Fraunces', serif; font-size:1.8rem; font-weight:600; color:var(--teal-bright);}
  .stat .lbl{font-size:0.82rem; color:#A9BAC7; margin-top:2px;}

  /* ---------- Sections ---------- */
  section{padding:88px 0;}
  section.alt{background:var(--cloud);}
  .section-head{max-width:620px; margin-bottom:48px;}
  .section-head .kicker{color:var(--teal); font-weight:600; font-size:0.85rem; margin-bottom:10px;}
  .section-head h2{font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:14px;}
  .section-head p{color:var(--slate); font-size:1.02rem;}

  .card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  @media (max-width:900px){ .card-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:620px){ .card-grid{grid-template-columns:1fr;} }

  .card{background:var(--white); border:1px solid var(--line); border-radius:10px; overflow:hidden; display:flex; flex-direction:column;}
  .card .thumb{height:220px; width:100%; background:var(--cloud); object-fit:contain;}
  .card .body{display:flex; flex-direction:column; flex:1;}
  .card .body .btn{margin-top:auto;}
  .gallery-placeholder{height:160px; width:100%; background:var(--cloud); border:1px dashed var(--line); border-radius:10px;}
  .avail-cal-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
  .avail-cal-header button{background:none; border:none; cursor:pointer; font-size:1.1rem; color:var(--navy); padding:4px 10px; border-radius:6px;}
  .avail-cal-header button:hover{background:var(--cloud);}
  .avail-cal-header .month-label{font-family:'Fraunces',serif; font-weight:600; color:var(--navy-deep);}
  .avail-cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center;}
  .avail-cal-grid .dow{font-size:0.72rem; color:var(--slate); font-weight:600; padding-bottom:6px;}
  .avail-cal-grid .day{padding:9px 0; border-radius:6px; font-size:0.88rem; cursor:pointer; color:var(--ink);}
  .avail-cal-grid .day.blank{cursor:default;}
  .avail-cal-grid .day.booked{color:#C8CDD2; text-decoration:line-through; cursor:not-allowed;}
  .avail-cal-grid .day.open:hover{background:var(--cloud);}
  .avail-cal-grid .day.selected{background:var(--teal); color:#fff; font-weight:600;}
  .avail-cal-grid .day.in-range{background:#DCEEF3;}
  .avail-legend{display:flex; gap:16px; margin-top:14px; font-size:0.8rem; color:var(--slate);}
  .avail-legend span{display:inline-flex; align-items:center; gap:6px;}
  .avail-legend .dot{width:9px; height:9px; border-radius:50%; display:inline-block;}
  .avail-badge{display:inline-flex; align-items:center; gap:7px; font-size:0.78rem; font-weight:600; padding:4px 10px; border-radius:20px; margin-bottom:10px;}
  .avail-badge::before{content:''; width:8px; height:8px; border-radius:50%; flex:none;}
  .avail-badge.open{background:#E3F3ED; color:#1E7A52;}
  .avail-badge.open::before{background:#1E7A52;}
  .avail-badge.full{background:#FBEAE7; color:#B3392C;}
  .avail-badge.full::before{background:#B3392C;}
  .card .body{padding:20px;}
  .card h3{font-size:1.08rem; margin-bottom:6px;}
  .card .meta{color:var(--slate); font-size:0.88rem; margin-bottom:12px;}
  .card .price{font-weight:700; color:var(--navy); font-family:'Fraunces',serif; font-size:1.15rem; margin-bottom:14px;}
  .card .btn{width:100%; justify-content:center; padding:11px;}

  .two-col{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
  @media (max-width:820px){ .two-col{grid-template-columns:1fr;} }
  .photo-block{border-radius:10px; height:340px; background:linear-gradient(150deg, var(--teal) 0%, var(--navy) 100%);}

  .badge-row{display:flex; gap:10px; flex-wrap:wrap; margin:18px 0 24px;}
  .badge{background:var(--white); border:1px solid var(--line); color:var(--navy); padding:8px 14px; border-radius:20px; font-size:0.82rem; font-weight:600;}
  .badge.gold{border-color:var(--brass); color:#8A6C22; background:#FBF4E2;}

  .team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px;}
  @media (max-width:760px){ .team-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .team-grid{grid-template-columns:1fr;} }
  .team-card .photo{aspect-ratio:4/5; width:100%; height:auto; border-radius:10px; background:linear-gradient(160deg,#7BA8BE,var(--navy)); margin-bottom:16px; object-fit:cover; object-position:center 12%;}
  .team-card h3{font-size:1.05rem; margin-bottom:2px;}
  .team-card .role{color:var(--teal); font-weight:600; font-size:0.85rem; margin-bottom:10px;}
  .team-card p{color:var(--slate); font-size:0.92rem;}
  .credential-tags{display:flex; flex-wrap:wrap; gap:6px; margin:8px 0;}
  .credential-tag{background:var(--cloud); color:var(--navy); font-size:0.74rem; font-weight:600; padding:3px 9px; border-radius:14px;}
  .linkedin-link{display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:0.85rem; font-weight:600; color:var(--teal);}
  .linkedin-link:hover{text-decoration:underline;}

  .mission{background:var(--navy-deep); color:#fff; text-align:center;}
  .mission .wrap{max-width:760px;}
  .mission .kicker{color:var(--teal-bright); font-weight:600; font-size:0.85rem; margin-bottom:14px;}
  .mission h2{color:#fff; font-size:clamp(1.9rem,3.4vw,2.6rem); margin-bottom:20px;}
  .mission p{color:#C9D5DF; font-size:1.05rem; line-height:1.7;}

  .subscribe{background:var(--cloud);}
  .subscribe .wrap{display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;}
  .subscribe h3{font-size:1.3rem; margin-bottom:6px;}
  .subscribe p{color:var(--slate); font-size:0.95rem;}
  .subscribe-form{display:flex; gap:10px; flex-wrap:wrap;}
  .subscribe-form input{padding:13px 16px; border:1px solid var(--line); border-radius:8px; font-family:'Inter',sans-serif; font-size:0.95rem; min-width:240px;}
  .subscribe-form input:focus{outline:2px solid var(--teal); outline-offset:1px;}

  form.inquiry{display:grid; gap:16px; max-width:560px;}
  form.inquiry label{font-size:0.85rem; font-weight:600; color:var(--navy); margin-bottom:6px; display:block;}
  form.inquiry input, form.inquiry select, form.inquiry textarea{
    width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:8px;
    font-family:'Inter',sans-serif; font-size:0.95rem; background:var(--white);
  }
  form.inquiry input:focus, form.inquiry select:focus, form.inquiry textarea:focus{
    outline:2px solid var(--teal); outline-offset:1px;
  }
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  @media (max-width:520px){ .field-row{grid-template-columns:1fr;} }

  .contact-info{display:grid; gap:22px;}
  .contact-info .item{display:flex; gap:14px; align-items:flex-start;}
  .contact-info .dot{width:8px; height:8px; border-radius:50%; background:var(--teal); margin-top:8px; flex:none;}
  .contact-info h4{font-size:0.95rem; margin-bottom:3px;}
  .contact-info p{color:var(--slate); font-size:0.92rem;}

  footer{background:var(--navy-deep); color:#C9D5DF; padding:52px 0 32px;}
  footer .foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:40px; margin-bottom:36px;}
  @media (max-width:700px){ footer .foot-grid{grid-template-columns:1fr;} }
  footer h4{color:#fff; font-family:'Inter',sans-serif; font-size:0.85rem; letter-spacing:0.04em; margin-bottom:14px;}
  footer .brand img{height:36px;}
  footer p{font-size:0.9rem; color:#9FB0BE; margin-top:12px; max-width:320px;}
  footer ul{list-style:none;}
  footer li{margin-bottom:9px; font-size:0.9rem;}
  footer .bottom{border-top:1px solid rgba(255,255,255,0.1); padding-top:22px; font-size:0.82rem; color:#7E93A3; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

