/* ============ TOKENS (shared family with Dockside Marina & Resort) ============ */
  :root{
    --ink:#0E2233;
    --ink-soft:#4C6577;
    --paper:#F6F8F6;
    --paper-raised:#FFFFFF;
    --marine:#123B4A;
    --marine-deep:#0A2530;
    --marine-tint:#E4EEEC;
    --brass:#C08A2E;
    --brass-deep:#96691F;
    --ember:#C1401F;
    --ember-deep:#96301A;
    --ember-tint:#F7E4DC;
    --mist:#DCE6E3;
    --line:rgba(14,34,51,0.12);
    --shadow:0 20px 45px -25px rgba(10,37,48,0.35);
    --radius:2px;
    --wrap:1180px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:#F1ECE7;
      --ink-soft:#C6B9AE;
      --paper:#211510;
      --paper-raised:#2B1B14;
      --marine:#1E5567;
      --marine-deep:#081820;
      --marine-tint:#123240;
      --brass:#E0AC52;
      --brass-deep:#B98A34;
      --ember:#E8623D;
      --ember-deep:#C1401F;
      --ember-tint:#3A2118;
      --mist:#3A2A22;
      --line:rgba(241,236,231,0.14);
      --shadow:0 20px 45px -25px rgba(0,0,0,0.6);
    }
  }
  :root[data-theme="dark"]{
    --ink:#F1ECE7;
    --ink-soft:#C6B9AE;
    --paper:#211510;
    --paper-raised:#2B1B14;
    --marine:#1E5567;
    --marine-deep:#081820;
    --marine-tint:#123240;
    --brass:#E0AC52;
    --brass-deep:#B98A34;
    --ember:#E8623D;
    --ember-deep:#C1401F;
    --ember-tint:#3A2118;
    --mist:#3A2A22;
    --line:rgba(241,236,231,0.14);
    --shadow:0 20px 45px -25px rgba(0,0,0,0.6);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{font-family:"Fraunces", Georgia, "Times New Roman", serif; font-weight:600; line-height:1.1; margin:0; text-wrap:balance; color:var(--ink);}
  p{margin:0;}
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:var(--wrap); margin:0 auto; padding:0 28px;}
  section{scroll-margin-top:84px;}
  .eyebrow{font-family:"Public Sans", sans-serif; font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-deep);}
  .num{font-variant-numeric:tabular-nums;}
  .btn{
    display:inline-flex; align-items:center; gap:8px; padding:14px 26px; border-radius:var(--radius);
    font-weight:700; font-size:14.5px; letter-spacing:.02em; text-decoration:none; border:1px solid transparent;
    cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease; white-space:nowrap;
  }
  .btn:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
  .btn-primary{background:var(--ember); color:#fff;}
  .btn-primary:hover{background:var(--ember-deep); box-shadow:var(--shadow); transform:translateY(-1px);}
  .btn-ghost{background:transparent; color:var(--paper-raised); border-color:rgba(255,255,255,.55);}
  .btn-ghost:hover{background:rgba(255,255,255,.12);}
  .btn-outline{background:transparent; color:var(--ink); border-color:var(--line);}
  .btn-outline:hover{border-color:var(--ember); color:var(--ember-deep);}
  .btn-small{padding:10px 16px; font-size:13px;}

  /* ============ HEADER / NAV ============ */
  .site-header{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter:blur(10px) saturate(1.1); border-bottom:1px solid var(--line);}
  .nav-row{display:flex; align-items:center; justify-content:space-between; padding:14px 28px; max-width:var(--wrap); margin:0 auto; gap:18px;}
  .brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);}
  .brand svg{flex:none;}
  .brand-text{font-family:"Fraunces", serif; font-weight:700; font-size:19px; letter-spacing:.01em;}
  .brand-text small{display:block; font-family:"Public Sans",sans-serif; font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);}
  .concept-tag{font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--brass-deep); border:1px solid var(--brass); border-radius:20px; padding:3px 9px; margin-left:6px; white-space:nowrap;}
  .nav-links{display:flex; align-items:center; gap:18px; list-style:none; margin:0; padding:0;}
  .nav-links a{text-decoration:none; font-size:14px; font-weight:600; color:var(--ink-soft); padding:6px 2px; border-bottom:2px solid transparent; transition:color .15s, border-color .15s;}
  .nav-links a:hover, .nav-links a.active{color:var(--ink); border-color:var(--ember);}
  .nav-actions{display:flex; align-items:center; gap:14px;}
  .nav-phone{display:flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; text-decoration:none; color:var(--ink-soft);}
  .nav-phone:hover{color:var(--ink);}
  .menu-toggle{display:none;}
  .menu-btn{display:none; background:none; border:1px solid var(--line); border-radius:6px; padding:8px 10px; cursor:pointer; flex:none;}
  .menu-btn svg{display:block;}
  .btn-label-short{display:none;}

  @media (max-width: 1040px){
    .nav-links{
      position:fixed; inset:64px 0 0 0; background:var(--paper); flex-direction:column; align-items:flex-start; gap:0;
      padding:8px 28px 28px; border-top:1px solid var(--line); transform:translateY(-8px); opacity:0; pointer-events:none;
      transition:opacity .18s ease, transform .18s ease; overflow:auto;
    }
    .nav-links a{padding:14px 0; width:100%; border-bottom:1px solid var(--line);}
    .menu-toggle:checked ~ .nav-links{transform:translateY(0); opacity:1; pointer-events:auto;}
    .menu-btn{display:inline-flex;}
    .nav-phone{display:none;}
  }
  @media (max-width: 640px){
    .nav-row{padding:12px 16px; gap:10px;}
    .concept-tag{display:none;}
    .brand-text{font-size:16px;}
  }
  @media (max-width: 400px){
    .brand-text small{display:none;}
    .btn-label-full{display:none;}
    .btn-label-short{display:inline;}
    .nav-actions .btn-small{padding:9px 13px;}
  }

  /* ============ HERO ============ */
  .hero{
    position:relative; overflow:hidden;
    background:
      radial-gradient(120% 140% at 85% 0%, #6a2312 0%, transparent 55%),
      linear-gradient(165deg, var(--marine-deep) 0%, var(--marine) 45%, #7a2c16 100%);
    color:#F8F1EC; padding:76px 0 0;
  }
  .hero-inner{position:relative; z-index:1; padding:52px 0 90px;}
  .hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;}
  @media (max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:36px;} .hero-copy .lede{max-width:none;} }
  .hero-copy .eyebrow{color:#F0C777;}
  .hero-copy h1{font-size:clamp(32px, 5vw, 54px); font-weight:600; color:#fff; margin-top:14px;}
  .hero-copy .lede{margin-top:20px; font-size:17px; max-width:48ch; color:#F0DFD6;}
  .hero-cta{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
  .hero-stats{display:flex; gap:28px; margin-top:44px; flex-wrap:wrap;}
  @media (max-width:520px){ .hero-stats{gap:20px;} }
  .hero-stats div{border-left:2px solid rgba(240,199,119,.55); padding-left:12px;}
  .hero-stats b{display:block; font-family:"Fraunces",serif; font-size:22px; font-weight:600;}
  .hero-stats span{font-size:12px; color:#E3CFC4; letter-spacing:.03em;}

  .hero-art{position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden; box-shadow:var(--shadow);
    background:
      radial-gradient(circle at 30% 20%, #F0C777 0%, transparent 38%),
      linear-gradient(200deg,#2B1710,#7A2C16 55%,#C1401F 100%);
  }
  @media (max-width:900px){ .hero-art{aspect-ratio:16/10;} }
  .hero-art svg{position:absolute; inset:0; width:100%; height:100%;}
  .hero-art-label{position:absolute; left:16px; bottom:16px; right:16px; background:rgba(10,37,48,.55); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.18); border-radius:2px; padding:10px 14px; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#EAF3F1;}

  /* Sister-property ribbon */
  .sister-ribbon{background:var(--marine-deep); color:#DCEBE7; padding:13px 0; font-size:13px;}
  .sister-ribbon .wrap{display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; text-align:center;}
  .sister-ribbon a{color:#F0C777; font-weight:700; text-decoration:none;}
  .sister-ribbon a:hover{text-decoration:underline;}

  /* ============ SECTION SCAFFOLD ============ */
  .section{padding:104px 0 84px;}
  .section-tight{padding:84px 0;}
  @media (max-width:640px){ .section{padding:64px 0 52px;} .section-tight{padding:52px 0;} }
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head h2{font-size:clamp(28px,3.4vw,40px); margin-top:12px;}
  .section-head p{margin-top:14px; color:var(--ink-soft); font-size:15.5px;}
  .section-alt{background:var(--paper-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

  /* trust strip */
  .trust{display:flex; flex-wrap:wrap; gap:32px; justify-content:space-between; align-items:center; padding:26px 0; border-bottom:1px solid var(--line); font-size:13.5px; color:var(--ink-soft);}
  .trust strong{color:var(--ink); font-family:"Fraunces",serif; font-weight:600; font-size:15px;}
  .trust-item{display:flex; align-items:center; gap:8px;}

  /* highlights (amenities-style) */
  .highlight-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden;}
  .highlight{background:var(--paper); padding:30px 26px; display:flex; flex-direction:column; gap:12px;}
  .highlight svg{color:var(--ember-deep);}
  .highlight h3{font-size:17px; font-weight:600;}
  .highlight p{font-size:13.8px; color:var(--ink-soft);}
  @media (max-width:820px){ .highlight-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .highlight-grid{grid-template-columns:1fr;} }

  /* dish cards (room-card pattern) */
  .dish-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  @media (max-width:980px){ .dish-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:640px){ .dish-grid{grid-template-columns:1fr;} }
  .dish-card{border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--paper-raised); display:flex; flex-direction:column; transition:box-shadow .18s ease, transform .18s ease;}
  .dish-card:hover{box-shadow:var(--shadow); transform:translateY(-3px);}
  .dish-art{aspect-ratio:4/3; position:relative; display:flex; align-items:flex-end;}
  .dish-art .tag{margin:14px; background:rgba(10,25,32,.5); backdrop-filter:blur(3px); color:#fff; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; padding:6px 10px; border-radius:2px; border:1px solid rgba(255,255,255,.25);}
  .dish-body{padding:18px 20px 22px; display:flex; flex-direction:column; gap:8px;}
  .dish-body h3{font-size:18px;}
  .dish-body p{font-size:13.5px; color:var(--ink-soft);}

  /* menu accordion */
  .menu-accordion{border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--paper-raised);}
  .acc-item{border-bottom:1px solid var(--line);}
  .acc-item:last-child{border-bottom:none;}
  .acc-item summary{
    list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:20px 24px; font-family:"Fraunces",serif; font-weight:600; font-size:17px; transition:background .15s ease;
  }
  .acc-item summary::-webkit-details-marker{display:none;}
  .acc-item summary:hover{background:var(--ember-tint);}
  .acc-item summary:focus-visible{outline:2px solid var(--brass); outline-offset:-2px;}
  .acc-item .chev{transition:transform .2s ease; flex:none; color:var(--ember);}
  .acc-item[open] .chev{transform:rotate(180deg);}
  .acc-item .acc-panel{padding:0 24px 22px; color:var(--ink-soft); font-size:14px; display:flex; flex-direction:column; gap:10px; max-width:64ch;}
  .acc-item .acc-panel a{color:var(--ember-deep); font-weight:700; text-decoration:none; font-size:13.5px;}
  .acc-item .acc-panel a:hover{text-decoration:underline;}
  .menu-lines{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
  .menu-line{display:flex; flex-direction:column; gap:2px;}
  .menu-line b{font-family:"Fraunces",serif; font-weight:600; font-size:14.5px; color:var(--ink);}
  .menu-line span{font-size:12.8px; color:var(--ink-soft);}
  @media (max-width:480px){ .acc-item summary{padding:16px 18px; font-size:15.5px;} .acc-item .acc-panel{padding:0 18px 18px;} }

  /* happy hour band */
  .happy-band{background:linear-gradient(120deg, var(--brass-deep), var(--brass) 70%); color:#28190B; padding:40px 0;}
  .happy-inner{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
  .happy-inner h2{color:#241705; font-size:clamp(22px,2.6vw,30px);}
  .happy-inner p{margin-top:6px; color:#4a340f; font-size:14px;}

  /* live music / catering split */
  .split-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center;}
  @media (max-width:900px){ .split-grid{grid-template-columns:1fr;} }
  .split-art{aspect-ratio:5/4; border-radius:6px; position:relative; overflow:hidden; box-shadow:var(--shadow);}
  .badge-row{display:inline-flex; gap:18px; margin-top:18px; padding:14px 18px; background:var(--ember-tint); border-radius:4px; font-size:13px; flex-wrap:wrap;}
  .badge-row b{display:block; font-size:13.5px;}

  /* stat tiles (marina pattern) */
  .stat-tiles{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); border-radius:4px; overflow:hidden;}
  @media (max-width:420px){ .stat-tiles{grid-template-columns:1fr;} }
  .stat-tile{background:rgba(255,255,255,.04); padding:26px 22px;}
  .stat-tile b{display:block; font-family:"Fraunces",serif; font-size:32px; font-weight:600; color:#F0C777;}
  .stat-tile span{font-size:12px; color:#B9CFCB; letter-spacing:.03em;}

  /* ============ EVENTS CALENDAR ============ */
  .cal-wrap{display:grid; grid-template-columns:1.3fr .9fr; gap:40px; align-items:start;}
  @media (max-width:900px){ .cal-wrap{grid-template-columns:1fr;} }
  .cal-card{background:var(--paper-raised); border:1px solid var(--line); border-radius:8px; padding:26px; box-shadow:var(--shadow);}
  .cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;}
  .cal-head h3{font-size:20px;}
  .cal-grid{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px;}
  .cal-dow{font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); text-align:center; padding-bottom:6px;}
  .cal-cell{aspect-ratio:1/1; border-radius:5px; background:var(--paper); border:1px solid var(--line); padding:5px; display:flex; flex-direction:column; gap:3px; font-size:11px; position:relative; min-width:0;}
  .cal-cell.pad{background:transparent; border-color:transparent;}
  .cal-cell.today{border-color:var(--ember); box-shadow:0 0 0 1px var(--ember) inset;}
  .cal-daynum{font-weight:700; font-size:12px; font-variant-numeric:tabular-nums;}
  .cal-dot{width:100%; border-radius:3px; padding:1px 4px; font-size:8.5px; font-weight:700; letter-spacing:.02em; color:#fff; text-overflow:ellipsis; overflow:hidden; white-space:nowrap;}
  .cal-dot.happy{background:var(--brass-deep);}
  .cal-dot.live{background:var(--ember);}
  @media (max-width:480px){ .cal-dot{font-size:0; padding:0; height:5px; border-radius:50%;} }
  .cal-legend{display:flex; gap:18px; margin-top:16px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-soft);}
  .cal-legend span{display:inline-flex; align-items:center; gap:6px;}
  .cal-legend i{width:10px; height:10px; border-radius:3px; display:inline-block;}
  .cal-note{margin-top:14px; font-size:12px; color:var(--ink-soft); border-top:1px dashed var(--line); padding-top:12px;}

  .cal-side{display:flex; flex-direction:column; gap:16px;}
  .cal-info-card{background:var(--marine-deep); color:#EAF3F1; border-radius:8px; padding:24px;}
  .cal-info-card h4{color:#fff; font-size:15px; margin-bottom:8px;}
  .cal-info-card p{font-size:13.3px; color:#C7DBD6;}
  .cal-info-card .btn{margin-top:14px;}
  .social-row{display:flex; gap:10px; flex-wrap:wrap;}
  .social-row a{display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:600; padding:9px 14px; border:1px solid var(--line); border-radius:20px; text-decoration:none; color:var(--ink);}
  .social-row a:hover{border-color:var(--ember); color:var(--ember-deep);}

  /* gallery */
  .gallery-grid{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:120px; gap:10px;}
  .gallery-grid a{grid-column:span 2; grid-row:span 2; position:relative; border-radius:4px; overflow:hidden; display:block;}
  .gallery-grid a:nth-child(1){grid-column:span 3; grid-row:span 3;}
  .gallery-grid a:nth-child(4){grid-column:span 3; grid-row:span 2;}
  .gallery-grid a:nth-child(2),.gallery-grid a:nth-child(3){grid-column:span 3;}
  .gallery-tile{position:absolute; inset:0;}
  .gallery-cap{position:absolute; left:12px; bottom:12px; right:12px; color:#fff; font-size:12px; font-weight:600; letter-spacing:.03em; text-shadow:0 1px 6px rgba(0,0,0,.5);}
  @media (max-width:760px){
    .gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px;}
    .gallery-grid a, .gallery-grid a:nth-child(1), .gallery-grid a:nth-child(2), .gallery-grid a:nth-child(3), .gallery-grid a:nth-child(4){grid-column:span 1; grid-row:span 1;}
  }

  /* location */
  .location-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); border-radius:6px; overflow:hidden;}
  @media (max-width:900px){ .location-grid{grid-template-columns:1fr;} }
  .location-info{padding:40px; background:var(--paper-raised);}
  @media (max-width:480px){ .location-info{padding:26px 22px;} }
  .location-info dl{display:grid; grid-template-columns:auto 1fr; gap:10px 16px; margin:22px 0 0; font-size:14px;}
  .location-info dt{color:var(--ink-soft); font-weight:600;}
  .location-info dd{margin:0;}
  .rec-chips{display:flex; gap:8px; flex-wrap:wrap; margin-top:20px;}
  .rec-chips span{font-size:12px; background:var(--ember-tint); color:var(--ember-deep); padding:6px 12px; border-radius:20px; font-weight:600;}
  .map-embed{min-height:340px; position:relative; overflow:hidden; text-decoration:none; display:block;
    background: radial-gradient(circle at 70% 30%, rgba(240,199,119,.3), transparent 45%), linear-gradient(155deg,#2B1710,#7A2C16 55%,#C1401F 100%);
  }
  .map-embed svg{position:absolute; inset:0; width:100%; height:100%; opacity:.5;}
  .map-pin{position:absolute; top:50%; left:50%; transform:translate(-50%,-100%); display:flex; flex-direction:column; align-items:center; gap:6px;}
  .map-cta{position:absolute; left:20px; bottom:18px; right:20px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; color:#fff;}
  .map-cta b{font-family:"Fraunces",serif; font-weight:600; font-size:15px;}
  .map-cta span{font-size:12px; color:#EADCD3;}

  /* cta band */
  .cta-band{background:linear-gradient(120deg, var(--ember-deep), var(--ember) 65%, #E07A4F); color:#fff; padding:64px 0; text-align:center;}
  .cta-band h2{color:#fff;}
  .cta-band p{margin-top:10px; color:#FBE3D8; font-size:15px;}
  .cta-band .hero-cta{justify-content:center; margin-top:26px;}
  .cta-band .btn-ghost{border-color:rgba(255,255,255,.55); color:#fff;}
  .cta-band .btn-ghost:hover{background:rgba(255,255,255,.15);}

  /* footer */
  footer{background:var(--marine-deep); color:#CFE1DC; padding:70px 0 26px;}
  .footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.12);}
  @media (max-width:820px){ .footer-grid{grid-template-columns:1fr 1fr; row-gap:32px;} }
  @media (max-width:480px){ .footer-grid{grid-template-columns:1fr;} }
  .footer-brand .brand-text{color:#fff;}
  .footer-brand p{margin-top:14px; font-size:13.5px; color:#A9C3BD; max-width:32ch;}
  footer h4{color:#fff; font-family:"Public Sans",sans-serif; font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:16px; font-weight:700;}
  footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px;}
  footer a{text-decoration:none; color:#B9CFCB; font-size:13.8px;}
  footer a:hover{color:#fff;}
  .upgrade-note{margin-top:44px; padding:22px 24px; border:1px solid rgba(240,199,119,.35); border-radius:6px; background:rgba(240,199,119,.06); display:flex; gap:16px; align-items:flex-start;}
  .upgrade-note svg{flex:none; color:#F0C777; margin-top:2px;}
  .upgrade-note b{color:#fff; display:block; margin-bottom:4px; font-size:14px;}
  .upgrade-note p{font-size:13.3px; color:#B9CFCB; line-height:1.6;}
  .footer-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:22px; font-size:12.3px; color:#88A29C;}

  /* ============ AI CONCIERGE WIDGET ============ */
  .ai-chat-fab{
    position:fixed; right:22px; bottom:22px; z-index:45; width:60px; height:60px; border-radius:50%; border:none;
    cursor:pointer; background:var(--ember); color:#fff; display:flex; align-items:center; justify-content:center;
    box-shadow:0 12px 28px -10px rgba(10,37,48,.5); transition:transform .18s ease, box-shadow .18s ease;
  }
  .ai-chat-fab:hover{transform:translateY(-2px) scale(1.04); box-shadow:0 16px 34px -10px rgba(10,37,48,.55);}
  .ai-chat-fab:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
  .ai-chat-fab .dot{position:absolute; top:6px; right:6px; width:12px; height:12px; border-radius:50%; background:#3FBF7F; border:2px solid var(--paper-raised);}
  @media (prefers-reduced-motion: no-preference){ .ai-chat-fab .dot{animation:ai-pulse 2.2s ease-in-out infinite;} }
  @keyframes ai-pulse{0%,100%{box-shadow:0 0 0 0 rgba(63,191,127,.55);} 50%{box-shadow:0 0 0 6px rgba(63,191,127,0);}}
  @media (max-width:520px){ .ai-chat-fab{right:16px; bottom:16px; width:54px; height:54px;} }

  .ai-chat-panel{
    position:fixed; right:22px; bottom:94px; z-index:45; width:310px; max-width:calc(100vw - 44px);
    background:var(--paper-raised); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow);
    overflow:hidden; transform:translateY(12px) scale(.97); opacity:0; pointer-events:none;
    transition:transform .18s ease, opacity .18s ease;
  }
  .ai-chat-panel.open{transform:translateY(0) scale(1); opacity:1; pointer-events:auto;}
  @media (max-width:520px){ .ai-chat-panel{right:16px; bottom:82px;} }
  .ai-chat-head{background:var(--marine-deep); color:#fff; padding:16px 18px;}
  .ai-chat-head b{font-family:"Fraunces",serif; font-size:14.5px; display:block; font-weight:600;}
  .ai-chat-head span{font-size:11.5px; color:#B9CFCB; display:flex; align-items:center; gap:5px; margin-top:3px;}
  .ai-chat-head span i{width:7px; height:7px; border-radius:50%; background:#3FBF7F; display:inline-block;}
  .ai-chat-body{padding:16px; display:flex; flex-direction:column; gap:10px;}
  .ai-chat-bubble{background:var(--ember-tint); color:var(--ink); border-radius:10px 10px 10px 2px; padding:10px 13px; font-size:13px; max-width:90%; line-height:1.5;}
  .ai-chat-input{display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--line);}
  .ai-chat-input input{flex:1; border:1px solid var(--line); border-radius:20px; padding:9px 14px; font-size:12.5px; font-family:inherit; background:var(--paper); color:var(--ink);}
  .ai-chat-input input:disabled, .ai-chat-input button:disabled{opacity:.6; cursor:not-allowed;}
  .ai-chat-input button{border:none; background:var(--ember); color:#fff; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none;}
  .ai-chat-note{padding:0 16px 14px; font-size:10.5px; color:var(--ink-soft);}

  /* ============ FACEBOOK FEED MOCK ============ */
  .fb-feed{margin-top:56px; padding-top:44px; border-top:1px solid var(--line);}
  .fb-feed-head{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:24px;}
  .fb-feed-head .fb-title{display:flex; align-items:center; gap:12px;}
  .fb-logo{flex:none;}
  .fb-feed-head .fb-title b{font-family:"Fraunces",serif; font-size:18px; font-weight:600; display:block;}
  .fb-feed-head .fb-title p{font-size:12.3px; color:var(--ink-soft); margin-top:2px;}
  .fb-follow{display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:700; padding:9px 16px; border-radius:20px; background:#1877F2; color:#fff; text-decoration:none; white-space:nowrap;}
  .fb-follow:hover{background:#145DC4;}
  .fb-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:900px){ .fb-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:640px){ .fb-grid{grid-template-columns:1fr;} }
  .fb-post{border:1px solid var(--line); border-radius:8px; background:var(--paper-raised); overflow:hidden; display:flex; flex-direction:column;}
  .fb-post-head{display:flex; align-items:center; gap:10px; padding:14px 16px 0;}
  .fb-post-avatar{width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; color:#fff;}
  .fb-post-who b{display:block; font-size:13px; font-weight:700;}
  .fb-post-who span{display:block; font-size:11px; color:var(--ink-soft); margin-top:1px;}
  .fb-post-text{padding:10px 16px 14px; font-size:13.2px; color:var(--ink); line-height:1.55;}
  .fb-post-media{aspect-ratio:16/9;}
  .fb-post-stats{display:flex; align-items:center; justify-content:space-between; padding:10px 16px; border-top:1px solid var(--line); font-size:11.5px; color:var(--ink-soft); margin-top:auto;}
  .fb-post-stats .grp{display:inline-flex; align-items:center; gap:5px;}
