/* Self-hosted fonts (previously Google Fonts) — removes the render-blocking
   external request. Fraunces is a variable font (one file covers the range). */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/fraunces.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:100 900;font-display:swap;src:url('../fonts/fraunces-italic.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/montserrat-400.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/montserrat-500.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/montserrat-600.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/montserrat-700.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/montserrat-800.woff2') format('woff2');}

  :root{
    /* DEEP LAKE BLUE — pushed toward navy, deliberately not teal */
    --midnight:#0E2A38;
    --deep:#16394A;      /* primary deep lake blue */
    --lake:#2E6F79;      /* mid water */
    --slate:#839499;     /* brand slate blue-gray */
    /* The Lakes brand earth tones */
    --rust:#A56D41;      /* brand rust — primary accent / CTA */
    --rust-dk:#8A5834;
    --gold:#B4AD71;      /* brand olive gold — secondary accent */
    --olive:#515237;     /* brand deep olive */
    --taupe:#C3BDAD;     /* brand warm taupe */
    --cream:#ECE7E3;     /* brand cream — light neutral */
    --cream-2:#F5F2EE;   /* lighter cream wash */
    --ink:#233038;       /* deep blue-ink text */
    --muted:#6E7A80;
    --line:#E4DED4;      /* warm hairline */
    --white:#fff;
    --font-display:'Fraunces',Georgia,serif;   /* Fraunces (self-hosted) */
    --font-body:'Montserrat',system-ui,-apple-system,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:var(--font-body);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.55;}
  a{text-decoration:none;color:inherit;}
  img{max-width:100%;display:block;}
  h1,h2,h3,.serif{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;}
  .wrap{max-width:1160px;margin:0 auto;padding:0 28px;}
  .center{text-align:center;}

  /* buttons */
  .btn{position:relative;display:inline-flex;align-items:center;gap:9px;border:none;border-radius:4px;padding:15px 30px;font-family:var(--font-body);font-size:12.5px;font-weight:700;cursor:pointer;transition:.2s;letter-spacing:1.4px;text-transform:uppercase;}
  .btn.rust{background:var(--rust);color:#fff;box-shadow:0 10px 26px rgba(165,109,65,.28);}
  .btn.rust:hover{background:var(--rust-dk);transform:translateY(-2px);box-shadow:0 16px 32px rgba(165,109,65,.38);}
  .btn.deep{background:var(--deep);color:#fff;}
  .btn.deep:hover{background:var(--midnight);transform:translateY(-2px);}
  .btn.ghost{background:transparent;color:var(--deep);border:1.5px solid var(--slate);}
  .btn.ghost:hover{border-color:var(--deep);background:var(--deep);color:#fff;}
  .btn.ghost-l{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.5);}
  .btn.ghost-l:hover{background:rgba(255,255,255,.14);border-color:#fff;}
  .cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}

  /* ---------- NAV ---------- */
  header.nav{position:sticky;top:0;z-index:60;backdrop-filter:blur(10px);background:rgba(245,242,238,.92);border-bottom:1px solid var(--line);}
  .nav .in{display:flex;align-items:center;justify-content:space-between;padding:12px 28px;max-width:1160px;margin:0 auto;}
  .brand{cursor:pointer;display:flex;align-items:center;}
  .brand img{height:52px;width:auto;}
  .nav .links{display:flex;align-items:center;gap:30px;}
  .nav .links a.navlink{font-size:12px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--ink);transition:.15s;cursor:pointer;position:relative;}
  .nav .links a.navlink:hover{color:var(--rust);}
  .nav .links a.navlink.active{color:var(--rust);}
  .nav .links a.navlink.active::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--rust);}
  .navbook-m{display:none;}
  .navtoggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:9px;background:none;border:0;cursor:pointer;}
  .navtoggle span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s;}
  .navtoggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .navtoggle.is-open span:nth-child(2){opacity:0;}
  .navtoggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  @media(max-width:900px){
    .brand img{height:44px;}
    .brand{margin-right:auto;}
    .navbook-m{display:inline-flex;padding:10px 16px;font-size:11.5px;margin-right:10px;}
    .navtoggle{display:flex;}
    .nav .links{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:6px 28px 20px;background:rgba(245,242,238,.98);border-bottom:1px solid var(--line);box-shadow:0 22px 34px rgba(22,57,74,.14);}
    .nav .links.open{display:flex;}
    .nav .links a.navlink{display:block;font-size:14px;padding:15px 2px;border-bottom:1px solid var(--line);}
    .nav .links a.navlink.active::after{display:none;}
    .nav .links .btn{display:none;}
  }

  /* page switching */
  main.page{display:none;animation:pageIn .5s ease;}
  main.page.active{display:block;}
  @keyframes pageIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

  /* labeled photo placeholders */
  .ph-img{position:relative;overflow:hidden;background:
      linear-gradient(135deg,rgba(24,58,82,.16),rgba(22,57,74,.30)),
      repeating-linear-gradient(45deg,rgba(236,231,227,.55) 0 14px,rgba(195,189,173,.4) 14px 28px);
    display:flex;align-items:center;justify-content:center;text-align:center;}
  .ph-img .lbl{position:relative;z-index:2;font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--deep);background:rgba(245,242,238,.9);border:1px dashed var(--slate);border-radius:6px;padding:8px 14px;max-width:82%;line-height:1.4;}

  /* ---------- HERO ---------- */
  .hero{position:relative;overflow:hidden;color:#fff;min-height:88vh;display:flex;align-items:center;text-align:center;
    background:linear-gradient(180deg,rgba(22,57,74,.34),rgba(22,57,74,.60) 55%,rgba(22,57,74,.88)),
      linear-gradient(165deg,#2E6F79 0%,#16394A 55%,#0E2A38 100%);}
  .hero .glow{position:absolute;inset:0;pointer-events:none;opacity:.6;
    background:radial-gradient(circle at 26% 26%, rgba(180,173,113,.18), transparent 45%),
      radial-gradient(circle at 78% 72%, rgba(131,148,153,.22), transparent 48%);}
  .hero .in{position:relative;z-index:3;width:100%;padding:80px 0;}
  .hero .kick{display:inline-block;font-size:14px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:#fff;margin-bottom:28px;text-shadow:0 1px 12px rgba(8,22,30,.55);}
  .hero h1{font-size:84px;line-height:.98;font-weight:500;text-shadow:0 2px 34px rgba(8,22,30,.45);}
  .hero h1 em{font-style:italic;font-weight:400;color:var(--gold);}
  @media(max-width:820px){.hero h1{font-size:46px;}}
  .hero .lede{font-size:18px;font-weight:500;color:rgba(255,255,255,.9);margin:30px auto 36px;max-width:540px;line-height:1.65;}
  .hero .cta-row{justify-content:center;}
  .hero .micro{margin-top:34px;font-size:11.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.72);display:flex;gap:14px;justify-content:center;flex-wrap:wrap;align-items:center;}
  .hero .micro .g{color:var(--gold);}
  .dotsep{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.4);}

  /* inner page header */
  .phead{position:relative;overflow:hidden;color:#fff;padding:88px 0 96px;text-align:center;
    background:linear-gradient(180deg,rgba(22,57,74,.30),rgba(22,57,74,.72)),
      linear-gradient(165deg,#2E6F79 0%,#16394A 58%,#0E2A38 100%);}
  .phead .glow{position:absolute;inset:0;pointer-events:none;opacity:.55;background:radial-gradient(circle at 74% 30%, rgba(180,173,113,.18), transparent 46%);}
  .phead .in{position:relative;z-index:3;}
  .phead .kick{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--taupe);margin-bottom:18px;}
  .phead h1{font-size:54px;line-height:1.02;}
  .phead h1 em{font-style:italic;font-weight:400;color:var(--gold);}
  @media(max-width:700px){.phead h1{font-size:36px;}}
  .phead p{font-size:17px;font-weight:500;color:rgba(255,255,255,.86);max-width:600px;margin:18px auto 0;line-height:1.6;}

  /* sections */
  section{padding:96px 0;position:relative;}
  .kicker{font-size:11.5px;font-weight:700;letter-spacing:2.6px;text-transform:uppercase;color:var(--rust);margin-bottom:16px;}
  .kicker.gold{color:#8f8641;}
  h2.sec{font-size:46px;line-height:1.08;font-weight:500;}
  @media(max-width:700px){h2.sec{font-size:32px;}}
  .sublede{font-size:17px;line-height:1.7;color:var(--muted);font-weight:500;margin-top:18px;max-width:600px;}
  .center .sublede{margin-left:auto;margin-right:auto;}
  .cream{background:var(--cream);}
  .cream-2{background:var(--cream-2);}
  .deepbg{background:var(--deep);color:#fff;}
  .rule{width:54px;height:2px;background:var(--rust);margin:0 auto;}

  /* scroll reveal */
  .sr{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
  .sr.in{opacity:1;transform:translateY(0);}

  /* welcome split */
  .split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
  @media(max-width:860px){.split{grid-template-columns:1fr;gap:38px;}}
  .split .ph-img{aspect-ratio:4/5;box-shadow:0 30px 60px rgba(22,57,74,.20);}
  .welcome p{font-size:16px;line-height:1.8;color:#48545a;font-weight:500;margin-bottom:16px;}
  .welcome .quick{display:flex;gap:38px;flex-wrap:wrap;margin-top:30px;padding-top:26px;border-top:1px solid var(--line);}
  .welcome .quick div{display:flex;flex-direction:column;}
  .welcome .quick b{font-family:var(--font-display);font-size:34px;font-weight:500;color:var(--deep);line-height:1;}
  .welcome .quick span{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-top:8px;}

  /* stay cards */
  .stays{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px;}
  @media(max-width:820px){.stays{grid-template-columns:1fr;}}
  .stay{background:#fff;border:1px solid var(--line);overflow:hidden;transition:.25s;display:flex;flex-direction:column;}
  .stay:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(22,57,74,.14);}
  .stay .ph-img{aspect-ratio:3/2;}
  .stay .body{padding:28px 28px 30px;display:flex;flex-direction:column;flex:1;}
  .stay h3{font-size:25px;margin-bottom:10px;}
  .stay p{font-size:14px;line-height:1.65;color:var(--muted);font-weight:500;flex:1;}
  .stay .go{margin-top:18px;font-size:11.5px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--rust);display:inline-flex;gap:7px;cursor:pointer;}
  .stay .go:hover{gap:11px;}

  /* amenities */
  .amen{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:56px;background:var(--line);border:1px solid var(--line);}
  @media(max-width:900px){.amen{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:480px){.amen{grid-template-columns:1fr;}}
  .am{background:var(--cream-2);padding:34px 24px;text-align:center;transition:.2s;}
  .am:hover{background:#fff;}
  .am .ic{width:54px;height:54px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;}
  .am .ic svg{width:37px;height:37px;stroke:var(--lake);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
  .am b{font-size:14.5px;font-weight:700;display:block;color:var(--ink);}
  .am span{font-size:12px;color:var(--muted);font-weight:500;display:block;margin-top:5px;line-height:1.4;}

  /* reviews */
  .revs{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px;}
  @media(max-width:820px){.revs{grid-template-columns:1fr;}}
  .rev{padding:6px 4px;}
  .rev .stars{color:var(--gold);font-size:15px;letter-spacing:3px;margin-bottom:16px;}
  .rev p{font-family:var(--font-display);font-size:18px;line-height:1.55;color:var(--deep);font-weight:400;font-style:italic;}
  .rev .who{margin-top:18px;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--rust);}
  .rev .who span{display:block;font-weight:600;color:var(--muted);letter-spacing:.4px;text-transform:none;font-size:12px;margin-top:3px;}

  /* tagline band */
  .tagband{background:var(--deep);color:#fff;text-align:center;padding:80px 0;position:relative;overflow:hidden;}
  .tagband .glow{position:absolute;inset:0;opacity:.5;background:radial-gradient(circle at 50% 120%, rgba(180,173,113,.2), transparent 60%);}
  .tagband .in{position:relative;z-index:2;}
  .tagband .tl{font-family:var(--font-display);font-size:52px;font-weight:500;line-height:1.1;}
  .tagband .tl em{font-style:italic;font-weight:400;color:var(--gold);}
  @media(max-width:700px){.tagband .tl{font-size:34px;}}
  .tagband p{font-size:15px;font-weight:500;color:rgba(255,255,255,.8);margin-top:20px;letter-spacing:.3px;}

  /* rates table */
  .ratewrap{margin-top:52px;border:1px solid var(--line);overflow:hidden;}
  table.rates{width:100%;border-collapse:collapse;background:#fff;}
  table.rates th{background:var(--deep);color:#fff;font-size:11px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;padding:18px 22px;text-align:left;}
  table.rates td{padding:18px 22px;border-top:1px solid var(--line);font-size:14.5px;font-weight:500;color:#48545a;}
  table.rates tr:nth-child(even) td{background:var(--cream-2);}
  table.rates td.rate{font-family:var(--font-display);font-weight:600;color:var(--deep);font-size:18px;}
  table.rates td .note{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:3px;}
  .rate-note{text-align:center;font-size:12.5px;color:var(--muted);font-weight:600;margin-top:22px;font-style:italic;}
  .policy{margin-top:44px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  @media(max-width:760px){.policy{grid-template-columns:1fr;}}
  .polcard{background:var(--cream-2);border:1px solid var(--line);padding:24px 24px;}
  .polcard b{font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--rust);display:block;margin-bottom:8px;}
  .polcard p{font-size:14px;line-height:1.6;color:#48545a;font-weight:500;}

  /* feature rows */
  .frow{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-top:68px;}
  .frow:nth-child(even) .ftxt{order:2;}
  @media(max-width:820px){.frow{grid-template-columns:1fr;gap:30px;}.frow:nth-child(even) .ftxt{order:0;}}
  .frow .ph-img{aspect-ratio:4/3;box-shadow:0 24px 50px rgba(22,57,74,.16);}
  .frow h3{font-size:32px;margin-bottom:14px;}
  .frow p{font-size:15px;line-height:1.75;color:#48545a;font-weight:500;margin-bottom:14px;}
  .frow ul{list-style:none;display:flex;flex-direction:column;gap:11px;margin-top:6px;}
  .frow li{font-size:14px;font-weight:600;color:#48545a;padding-left:24px;position:relative;}
  .frow li::before{content:'';position:absolute;left:0;top:7px;width:9px;height:9px;background:var(--rust);border-radius:1px;transform:rotate(45deg);}

  /* local area */
  .areagrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px;}
  @media(max-width:860px){.areagrid{grid-template-columns:1fr 1fr;}}
  @media(max-width:560px){.areagrid{grid-template-columns:1fr;}}
  .area{background:#fff;border:1px solid var(--line);overflow:hidden;transition:.25s;}
  .area:hover{transform:translateY(-5px);box-shadow:0 24px 46px rgba(22,57,74,.14);}
  .area .ph-img{aspect-ratio:3/2;}
  .area .body{padding:24px 26px 28px;}
  .area .dist{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--gold);color:#8f8641;}
  .area h3{font-size:22px;margin:8px 0 10px;}
  .area p{font-size:13.5px;line-height:1.65;color:var(--muted);font-weight:500;}

  /* contact */
  .contactgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:start;margin-top:8px;}
  @media(max-width:820px){.contactgrid{grid-template-columns:1fr;}}
  .cform{background:#fff;border:1px solid var(--line);padding:38px 36px;}
  .cform h3{font-size:26px;margin-bottom:22px;}
  .cform label{display:block;font-size:10.5px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);margin-bottom:18px;}
  .cform input,.cform select,.cform textarea{display:block;width:100%;margin-top:8px;font-family:var(--font-body);font-size:14.5px;font-weight:500;color:var(--ink);background:var(--cream-2);border:1px solid var(--line);border-radius:3px;padding:13px 15px;outline:none;transition:.15s;}
  .cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--lake);background:#fff;}
  .cform button{width:100%;justify-content:center;margin-top:6px;}
  .formok{margin-top:16px;background:rgba(51,98,124,.1);border:1px solid var(--lake);color:var(--deep);font-size:13.5px;font-weight:600;padding:14px 16px;border-radius:3px;}
  .cside{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);}
  .cinfo{padding:26px 28px;border-bottom:1px solid var(--line);}
  .cinfo h4{font-size:12px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--rust);margin-bottom:10px;}
  .cinfo p{font-size:15px;color:var(--ink);font-weight:600;line-height:1.65;}
  .cinfo a{color:var(--deep);font-weight:700;cursor:pointer;}
  .cmap{aspect-ratio:16/10;overflow:hidden;}

  /* faq */
  .faqlist{max-width:860px;margin:0 auto;}
  .faq{border-bottom:1px solid var(--line);}
  .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 4px;font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--deep);}
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:'+';font-size:24px;font-weight:400;color:var(--rust);transition:.2s;flex:0 0 auto;font-family:var(--font-body);}
  .faq[open] summary::after{transform:rotate(45deg);}
  .faq .fa{padding:0 4px 24px;font-size:14.5px;line-height:1.75;color:#48545a;font-weight:500;max-width:720px;}

  /* final CTA */
  .final{color:#fff;text-align:center;position:relative;overflow:hidden;
    background:linear-gradient(180deg,rgba(22,57,74,.34),rgba(22,57,74,.78)),
      linear-gradient(165deg,#2E6F79 0%,#16394A 58%,#0E2A38 100%);}
  .final .glow{position:absolute;inset:0;opacity:.5;background:radial-gradient(circle at 50% 120%, rgba(180,173,113,.2), transparent 60%);}
  .final .in{position:relative;z-index:3;}
  .final h2{font-size:52px;line-height:1.06;font-weight:500;}
  .final h2 em{font-style:italic;font-weight:400;color:var(--gold);}
  @media(max-width:700px){.final h2{font-size:34px;}}
  .final p{font-size:17px;color:rgba(255,255,255,.86);font-weight:500;margin:20px auto 34px;max-width:500px;}
  .final .cta-row{justify-content:center;}

  /* footer */
  footer.ft{background:var(--midnight);color:rgba(255,255,255,.7);padding:64px 0 34px;}
  .ft .top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.1);}
  @media(max-width:760px){.ft .top{grid-template-columns:1fr;gap:28px;}}
  .ft .logo img{height:58px;width:auto;margin-bottom:18px;}
  .ft .fabout{font-size:13.5px;line-height:1.7;font-weight:500;color:rgba(255,255,255,.62);max-width:320px;}
  .ft h5{font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold);margin-bottom:16px;}
  .ft .fcol a,.ft .fcol p{display:block;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.7);margin-bottom:11px;cursor:pointer;}
  .ft .fcol a:hover{color:#fff;}
  .ft .cr{margin-top:28px;font-size:11.5px;color:rgba(255,255,255,.42);font-weight:500;text-align:center;line-height:1.7;}
  .ft .cr b{color:rgba(255,255,255,.62);font-weight:600;}
  .ft .cr a.credit{color:rgba(255,255,255,.62);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);transition:color .15s;}
  .ft .cr a.credit:hover{color:#fff;}
  /* footer social icons */
  .ft .fsocial{display:flex;gap:11px;margin-top:10px;}
  .ft .fsocial a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin:0;border-radius:50%;background:rgba(255,255,255,.08);color:rgba(255,255,255,.72);transition:background .15s,color .15s,transform .15s;}
  .ft .fsocial a:hover{background:var(--rust);color:#fff;transform:translateY(-2px);}
  /* skip-to-content link (visible only on keyboard focus) */
  .skip-link{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--rust);color:#fff;padding:10px 18px;font-weight:600;font-size:14px;text-decoration:none;border-radius:0 0 8px 0;}
  .skip-link:focus{left:0;}

  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important;}
    .sr,main.page{opacity:1!important;transform:none!important;}
  }

  .hero .herobg{position:absolute;inset:0;background-position:center;background-size:cover;z-index:0;
    background-image:url('../images/hero-home.jpg');
    background-image:-webkit-image-set(url('../images/hero-home.webp') type('image/webp'), url('../images/hero-home.jpg') type('image/jpeg'));
    background-image:image-set(url('../images/hero-home.webp') type('image/webp'), url('../images/hero-home.jpg') type('image/jpeg'));}
  .hero .heroshade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(22,57,74,.42),rgba(22,57,74,.62) 52%,rgba(22,57,74,.92));}
  .hero .glow{z-index:2;}
  .ph-img.photo .lbl{display:none;}
  .galwrap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:56px;}
  @media(max-width:820px){.galwrap{grid-template-columns:1fr 1fr;}}
  .gal{aspect-ratio:4/3;background-position:center;background-size:cover;}

  .grounds{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px;}
  @media(max-width:820px){.grounds{grid-template-columns:1fr 1fr;}}
  @media(max-width:520px){.grounds{grid-template-columns:1fr;}}
  .gcard{position:relative;overflow:hidden;aspect-ratio:4/3;background-position:center;background-size:cover;transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s;}
  .gcard:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(14,42,56,.24);}
  .gcard::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(14,42,56,.76));}
  .gcard .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 20px;color:#fff;}
  .gcard .cap b{font-family:var(--font-display);font-weight:600;font-size:20px;display:block;line-height:1.1;}
  .gcard .cap span{font-size:11.5px;font-weight:600;letter-spacing:.3px;color:rgba(255,255,255,.82);}
  .amen.five{grid-template-columns:repeat(5,1fr);}
  @media(max-width:900px){.amen.five{grid-template-columns:repeat(3,1fr);}}
  @media(max-width:520px){.amen.five{grid-template-columns:1fr 1fr;}}
  .seasonlab{display:flex;align-items:baseline;gap:12px;margin:36px 0 12px;}
  .seasonlab b{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--deep);}
  .seasonlab span{font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--rust);}
  .ratenotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px;}
  @media(max-width:760px){.ratenotes{grid-template-columns:1fr;}}
  .carousel{max-width:770px;margin:46px auto 0;position:relative;overflow:hidden;}
  .track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1);}
  .slide{min-width:100%;padding:8px 24px;text-align:center;}
  .slide .stars{color:var(--gold);font-size:16px;letter-spacing:3px;margin-bottom:18px;}
  .slide p{font-family:var(--font-display);font-style:italic;font-size:24px;line-height:1.46;color:var(--deep);font-weight:400;min-height:104px;display:flex;align-items:center;justify-content:center;}
  @media(max-width:600px){.slide p{font-size:18px;min-height:120px;}}
  .slide .who{margin-top:18px;font-size:11px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:var(--rust);}
  .slide .who span{display:block;font-weight:600;color:var(--muted);letter-spacing:.4px;text-transform:none;font-size:12px;margin-top:3px;}
  .cdots{display:flex;gap:8px;justify-content:center;margin-top:26px;}
  .cdots i{width:8px;height:8px;border-radius:50%;background:var(--taupe);cursor:pointer;transition:.25s;}
  .cdots i.on{background:var(--rust);width:22px;border-radius:4px;}
  .poldoc{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:36px;}
  .polblock h3{font-size:24px;color:var(--deep);margin-bottom:10px;}
  .polblock p{font-size:14.5px;line-height:1.75;color:#48545a;font-weight:500;}
  .polblock p.todo{font-style:italic;color:var(--rust);font-weight:600;}
  .policydoc{max-width:800px;margin:0 auto;}
  .policydoc .note{font-size:12.5px;font-style:italic;color:var(--muted);font-weight:600;margin-bottom:4px;}
  .policydoc h2{font-family:var(--font-display);font-size:28px;font-weight:600;color:var(--deep);margin:52px 0 4px;padding-top:26px;border-top:2px solid var(--rust);}
  .policydoc h2:first-of-type{margin-top:14px;}
  .policydoc h3{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--deep);margin:30px 0 6px;}
  .policydoc h4{font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--rust);margin:20px 0 6px;}
  .policydoc p{font-size:14px;line-height:1.7;color:#48545a;font-weight:500;margin:8px 0;}
  .policydoc ul,.policydoc ol{margin:8px 0 10px;padding-left:22px;display:flex;flex-direction:column;gap:6px;}
  .policydoc li{font-size:14px;line-height:1.6;color:#48545a;font-weight:500;padding-left:2px;}
  .policydoc a{color:var(--lake);font-weight:700;}
  .policydoc p.flag{background:rgba(165,109,65,.09);border-left:3px solid var(--rust);padding:12px 16px;border-radius:4px;font-weight:700;color:var(--deep);}
  .faq .fa ul{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:5px;}
  .faq .fa li{font-size:14px;line-height:1.55;}
  .faq .fa p+ul{margin-top:6px;}
  .mapwrap{margin-top:42px;position:relative;cursor:zoom-in;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 22px 46px rgba(22,57,74,.16);background:#cfd6d3;max-width:940px;margin-left:auto;margin-right:auto;}
  .resortmap{width:100%;display:block;}
  .maphint{position:absolute;right:14px;bottom:14px;background:rgba(14,42,56,.85);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;padding:7px 12px;border-radius:4px;pointer-events:none;}
  .lightbox{position:fixed;inset:0;z-index:200;background:rgba(10,26,34,.94);display:none;overflow:auto;cursor:zoom-out;}
  .lightbox.on{display:flex;align-items:center;justify-content:center;padding:26px;}
  .lightbox img{max-width:96%;max-height:92%;box-shadow:0 20px 60px rgba(0,0,0,.5);border-radius:4px;cursor:zoom-in;}
  .lightbox.on.zoom{display:block;padding:0;}
  .lightbox.on.zoom img{max-width:none;max-height:none;width:2100px;cursor:zoom-out;border-radius:0;box-shadow:none;margin:0 auto;}
  .lightbox .x{position:fixed;top:14px;right:26px;color:#fff;font-size:38px;font-weight:300;cursor:pointer;line-height:1;z-index:210;}
  .lightbox .zhint{position:fixed;left:0;right:0;top:16px;text-align:center;color:rgba(255,255,255,.75);font-size:12px;font-weight:600;letter-spacing:.4px;z-index:205;pointer-events:none;}
  /* Gallery lightbox (photos) — reuses .lightbox base; adds prev/next arrows */
  .gallery-lb{cursor:default;}
  .gallery-lb img{cursor:default;}
  .gallery-lb .glb-nav{position:fixed;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:56px;height:76px;background:rgba(0,0,0,.32);color:#fff;border:0;border-radius:6px;font-size:44px;line-height:1;cursor:pointer;z-index:210;transition:background .15s;}
  .gallery-lb .glb-nav:hover{background:rgba(0,0,0,.6);}
  .gallery-lb .glb-nav.prev{left:14px;}
  .gallery-lb .glb-nav.next{right:14px;}
  .casita-gallery .cg[href]{cursor:zoom-in;}
  @media(max-width:600px){.gallery-lb .glb-nav{width:44px;height:62px;font-size:34px;}}
  /* Video-tour lightbox (portrait, for vertical YouTube Shorts) */
  .video-lb{position:fixed;inset:0;z-index:220;background:rgba(10,26,34,.94);display:none;align-items:center;justify-content:center;padding:26px;}
  .video-lb.on{display:flex;}
  .video-lb .x{position:fixed;top:14px;right:26px;color:#fff;font-size:38px;font-weight:300;cursor:pointer;line-height:1;z-index:230;}
  .video-lb-frame{height:88vh;aspect-ratio:9/16;max-width:94vw;background:#000;border-radius:8px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5);}
  .video-lb-inner{width:100%;height:100%;}
  .video-lb-inner iframe{width:100%;height:100%;border:0;display:block;}
  .areamap{aspect-ratio:5/4;border-radius:6px;overflow:hidden;box-shadow:0 30px 60px rgba(22,57,74,.2);background:#dfe6e4;min-height:300px;}
  .mapfallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-align:center;padding:24px;color:var(--deep);font-weight:700;font-size:15px;text-decoration:none;}
  .mapfallback:hover{color:var(--rust);}
  .leaflet-container{font-family:var(--font-body);}
  .leaflet-popup-content{font-weight:600;color:var(--ink);}
  .leaflet-tooltip.pin-label{background:rgba(255,255,255,.92);border:none;box-shadow:0 1px 4px rgba(0,0,0,.25);color:#16394A;font-weight:700;font-size:10.5px;padding:2px 6px;border-radius:3px;}
  .leaflet-tooltip.pin-label.resort{color:#A56D41;font-size:11.5px;}
  .leaflet-tooltip.pin-label:before{display:none;}

/* --- DEMO booking note --- */
.demo-toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%) translateY(18px);
background:#16394A;color:#fff;padding:15px 24px;border-left:4px solid #B5643C;border-radius:12px;
font-family:var(--font-body);font-size:.92rem;line-height:1.45;max-width:min(92vw,440px);
box-shadow:0 14px 44px rgba(11,30,42,.34);opacity:0;pointer-events:none;
transition:opacity .3s ease,transform .3s ease;z-index:99999;text-align:center;}
.demo-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.demo-toast strong{color:#F2C9A0;}

/* --- Footer legal links (added in WordPress build) --- */
.ft .flegal{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);}
.ft .flegal a{color:var(--taupe);font-size:13px;opacity:.85;}
.ft .flegal a:hover{opacity:1;color:#fff;}

/* ============================================================= */
/* CASITAS — landing grid + single-casita pages (WordPress build) */
/* ============================================================= */

/* Shared placeholder look (shown until real photos are dropped in) */
[data-ph]{background:linear-gradient(135deg,#1d4457,#2E6F79);position:relative;}
.ph-lbl{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  color:rgba(255,255,255,.82);font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:center;}
.ph-lbl small{font-size:11px;font-weight:500;opacity:.8;letter-spacing:.06em;}

/* Badges */
.cbadge{display:inline-block;font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:5px 10px;border-radius:999px;color:#fff;}
.cbadge.pet{background:var(--rust);}

/* ---- Landing grid ---- */
.casita-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;margin-top:44px;}
.casita-card{flex:0 1 calc(25% - 18px);display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  text-decoration:none;color:var(--ink);box-shadow:0 10px 30px rgba(22,57,74,.06);transition:transform .35s ease,box-shadow .35s ease;}
.casita-card:hover{transform:translateY(-6px);box-shadow:0 22px 46px rgba(22,57,74,.14);}
.casita-photo{position:relative;aspect-ratio:4/3;background-size:cover;background-position:center;}
.casita-photo .cbadge{position:absolute;top:12px;}
.casita-photo .cbadge.pet{left:12px;}
.casita-body{padding:22px 22px 24px;}
.casita-body .cnum{font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rust);}
.casita-body h3{font-family:var(--font-display);font-size:24px;font-weight:600;margin:4px 0 8px;color:var(--deep);}
.casita-body .cspec{font-family:var(--font-body);font-size:14px;color:var(--muted);margin-bottom:14px;}
.casita-body .go{font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--lake);}

/* ---- Single casita ---- */
.casita-hero{position:relative;min-height:52vh;display:flex;align-items:flex-end;background-size:cover;background-position:center;background-color:var(--deep);}
.casita-hero .heroshade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,42,56,.15),rgba(14,42,56,.78));}
.casita-hero .in{position:relative;padding:48px 0 44px;color:#fff;}
.casita-hero .cback{display:inline-block;font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--taupe);margin-bottom:16px;text-decoration:none;}
.casita-hero .cback:hover{color:#fff;}
.casita-hero .kick{color:var(--taupe);}
.casita-hero h1{font-family:var(--font-display);font-weight:500;font-size:clamp(34px,5vw,58px);line-height:1.02;margin:.15em 0 .2em;}
.cspec-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-family:var(--font-body);font-size:15px;color:#fff;}

.casita-detail{display:grid;grid-template-columns:1.6fr 1fr;gap:44px;align-items:start;}
.cd-main .clede{font-size:18px;line-height:1.7;color:var(--ink);margin:10px 0 20px;}
.chighlights{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px;}
.chighlights span{font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--olive);background:var(--cream);border:1px solid var(--line);padding:7px 13px;border-radius:999px;}
.camen-h{font-family:var(--font-display);font-size:22px;color:var(--deep);margin:8px 0 12px;}
.camen{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;}
.camen li{position:relative;padding-left:22px;font-size:15px;color:var(--ink);line-height:1.5;}
.camen li::before{content:'';position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--rust);}

.cd-side .cbook{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 12px 34px rgba(22,57,74,.08);position:sticky;top:96px;}
.cprice{font-family:var(--font-display);color:var(--deep);font-size:20px;}
.cprice b{font-size:34px;font-weight:600;}
.cprice span{font-family:var(--font-body);font-size:14px;color:var(--muted);margin-left:4px;}
.cprice-note{font-family:var(--font-body);font-size:12.5px;line-height:1.5;color:var(--muted);margin:8px 0 16px;}
.btn.full{display:block;text-align:center;width:100%;}
.rates-link{display:block;text-align:center;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--lake);margin-top:12px;text-decoration:none;}
.cfacts{margin-top:20px;border-top:1px solid var(--line);padding-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.cfacts div{display:flex;flex-direction:column;}
.cfacts b{font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.cfacts span{font-family:var(--font-display);font-size:16px;color:var(--deep);}

.casita-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px;}
.casita-gallery .cg{aspect-ratio:4/3;border-radius:12px;background-size:cover;background-position:center;overflow:hidden;display:block;}
.casita-gallery .cg.ph{position:relative;}

@media(max-width:900px){
  .casita-card{flex-basis:calc(50% - 12px);}
  .casita-detail{grid-template-columns:1fr;gap:30px;}
  .cd-side .cbook{position:static;}
  .casita-gallery{grid-template-columns:repeat(2,1fr);}
  .camen{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .casita-card{flex-basis:100%;}
  .casita-gallery{grid-template-columns:1fr 1fr;}
}

/* ============================================================= */
/* ACTIVITIES / CALENDAR page                                    */
/* ============================================================= */
.act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;}
.act-card{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background-size:cover;background-position:center;box-shadow:0 10px 30px rgba(22,57,74,.08);}
.act-card .cap{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;background:linear-gradient(to top,rgba(14,42,56,.85),rgba(14,42,56,0));color:#fff;z-index:2;}
.act-card .cap b{font-family:var(--font-display);font-weight:600;font-size:19px;display:block;line-height:1.1;}
.act-card .cap span{font-family:var(--font-body);font-size:12.5px;opacity:.9;}
.mec-slot{margin-top:44px;}
.mec-ph{border:1px dashed var(--taupe);border-radius:14px;background:var(--white);padding:52px 26px;text-align:center;color:var(--muted);font-family:var(--font-body);font-size:14px;line-height:1.6;}
.mec-ph b{display:block;font-family:var(--font-display);color:var(--deep);font-size:21px;margin-bottom:8px;}
.mec-ph code{background:var(--cream);padding:1px 6px;border-radius:5px;font-size:13px;}
@media(max-width:820px){.act-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.act-grid{grid-template-columns:1fr;}}
