:root{
    --navy:#0A2240;
    --navy-deep:#071829;
    --navy-soft:#16324f;
    --tan:#8B8A76;
    --tan-light:#c9c4ac;
    --brass:#B08D57;
    --brass-light:#d3b787;
    --paper:#FAF7F1;
    --paper-alt:#F1ECE1;
    --ink:#1E2A33;
    --ink-soft:#5B6670;
    --line:rgba(10,34,64,0.14);
    --shadow: 0 20px 50px rgba(10,34,64,0.12);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Jost', sans-serif;
    font-weight:400;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.serif{
    font-family:'EB Garamond', serif;
    font-weight:500;
    color:var(--navy);
    margin:0;
  }
  p{ line-height:1.65; color:var(--ink-soft); margin:0; }
  a{ color:inherit; text-decoration:none; }
  .eyebrow{
    font-family:'Jost',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.22em;
    font-size:0.72rem;
    color:var(--brass);
    font-weight:600;
  }
  img{ display:block; max-width:100%; }
  button{ font-family:inherit; cursor:pointer; border:none; }

  /* ===== layout shell ===== */
  .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
  @media(max-width:640px){ .wrap{ padding:0 20px; } }

  /* ===== header ===== */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(250,247,241,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px; max-width:1180px; margin:0 auto;
  }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand-mark{ width:40px; height:40px; flex-shrink:0; }
  .brand-text{ display:flex; flex-direction:column; line-height:1.1; }
  .brand-text .name{ font-family:'EB Garamond',serif; font-size:1.28rem; color:var(--navy); font-weight:600; letter-spacing:0.01em;}
  .brand-text .tag{ font-family:'Jost',sans-serif; font-size:0.62rem; letter-spacing:0.25em; color:var(--tan); text-transform:uppercase; margin-top:2px;}

  nav.links{ display:flex; align-items:center; gap:22px; }
  nav.links a{
    background:none; font-size:0.86rem; letter-spacing:0.03em;
    color:var(--ink); padding:6px 2px; position:relative;
  }
  nav.links a::after{
    content:''; position:absolute; left:0; right:0; bottom:-4px; height:2px;
    background:var(--brass); transform:scaleX(0); transform-origin:left;
    transition:transform .25s ease;
  }
  nav.links a.active::after, nav.links a:hover::after{ transform:scaleX(1); }
  nav.links a.active{ color:var(--navy); font-weight:500; }

  .nav-cta{
    display:flex; align-items:center; gap:16px;
  }
  .phone-pill{
    display:flex; align-items:center; gap:8px;
    border:1px solid var(--line); border-radius:999px;
    padding:8px 16px; font-size:0.82rem; color:var(--navy);
    white-space:nowrap;
  }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:13px 26px; border-radius:2px; font-size:0.84rem;
    letter-spacing:0.04em; font-weight:500; transition:all .2s ease;
  }
  .btn-primary{ background:var(--navy); color:var(--paper); }
  .btn-primary:hover{ background:var(--navy-deep); }
  .btn-outline{ border:1px solid var(--navy); color:var(--navy); background:transparent; }
  .btn-outline:hover{ background:var(--navy); color:var(--paper); }
  .btn-brass{ background:var(--brass); color:var(--navy-deep); }
  .btn-brass:hover{ background:var(--brass-light); }

  .hamburger{ display:none; flex-direction:column; gap:5px; background:none; padding:6px; }
  .hamburger span{ width:22px; height:2px; background:var(--navy); display:block; }

  @media(max-width:900px){
    nav.links{ display:none; }
    .phone-pill{ display:none; }
    .hamburger{ display:flex; }
  }

  .mobile-menu{
    display:none; flex-direction:column; gap:2px; padding:8px 20px 20px;
    border-top:1px solid var(--line);
  }
  .mobile-menu.open{ display:flex; }
  .mobile-menu a{
    background:none; text-align:left; padding:12px 4px; font-size:0.98rem;
    border-bottom:1px solid var(--line); color:var(--ink);
  }

  /* ===== window-pane frame — signature motif ===== */
  .mullion-frame{
    position:relative; padding:10px; background:var(--navy);
  }
  .mullion-frame .inner{ position:relative; overflow:hidden; }

  .pane-card{
    border:1px solid var(--line);
    background:var(--paper);
    padding:36px 30px;
    position:relative;
  }
  .pane-card::before{
    content:''; position:absolute; top:24px; left:24px; width:16px; height:16px;
    border-top:2px solid var(--brass); border-left:2px solid var(--brass);
  }

  /* ===== sections generic ===== */
  section{ padding:100px 0; }
  @media(max-width:768px){ section{ padding:64px 0; } }
  .section-head{ max-width:640px; margin-bottom:56px; }
  .section-head h2{ font-size:2.4rem; margin-top:14px; line-height:1.15; }
  @media(max-width:640px){ .section-head h2{ font-size:1.9rem; } }
  .center{ text-align:center; margin-left:auto; margin-right:auto; }

  /* ===== HOME hero ===== */
  .hero{
    padding:76px 0 100px;
    background:
      radial-gradient(ellipse at 85% 0%, rgba(176,141,87,0.10), transparent 55%),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cpath d='M0 0H90M0 0V90' stroke='%230A2240' stroke-opacity='0.05' stroke-width='1'/%3E%3Ccircle cx='0' cy='0' r='2' fill='%23B08D57' fill-opacity='0.18'/%3E%3C/svg%3E"),
      var(--paper);
    background-repeat:no-repeat, repeat, no-repeat;
    overflow:hidden;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.05fr 0.95fr; gap:70px; align-items:center;
  }
  @media(max-width:900px){ .hero-grid{ grid-template-columns:1fr; gap:48px; } }
  .hero h1{
    font-size:3.4rem; line-height:1.08; margin-top:18px; letter-spacing:-0.01em;
  }
  @media(max-width:640px){ .hero h1{ font-size:2.35rem; } }
  .hero h1 em{ font-style:italic; color:var(--brass); }
  .hero p.lede{ margin-top:22px; font-size:1.08rem; max-width:480px; }
  .hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }

  .hero-photo-wrap{ position:relative; }
  .hero-photo-wrap .mullion-frame{ width:100%; max-width:420px; margin-left:auto; }
  .hero-photo-wrap img{ width:100%; height:520px; object-fit:cover; }
  .hero-caption{
    position:absolute; left:-24px; bottom:-24px; background:var(--paper);
    border:1px solid var(--line); box-shadow:var(--shadow);
    padding:18px 24px; max-width:250px;
  }
  @media(max-width:900px){ .hero-caption{ left:16px; bottom:-20px; } }
  .hero-caption .name{ font-family:'EB Garamond',serif; font-size:1.15rem; color:var(--navy); font-weight:600; }
  .hero-caption .role{ font-size:0.74rem; color:var(--tan); letter-spacing:0.08em; text-transform:uppercase; margin-top:3px; }

  /* trust strip */
  .trust-strip{
    background:var(--navy); padding:26px 0;
  }
  .trust-row{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px; }
  .trust-item{ display:flex; align-items:center; gap:10px; color:var(--paper); font-size:0.86rem; letter-spacing:0.02em; }
  .trust-item .dot{ width:6px; height:6px; border-radius:50%; background:var(--brass); flex-shrink:0; }

  /* value grid — window pane */
  .value-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--navy);
    border:2px solid var(--navy);
  }
  @media(max-width:640px){ .value-grid{ grid-template-columns:1fr; } }
  .value-tile{ background:var(--paper); padding:44px 38px; position:relative; transition:transform .25s ease, box-shadow .25s ease; }
  .value-tile::before{ content:''; position:absolute; top:16px; left:16px; width:14px; height:14px; border-top:2px solid var(--brass); border-left:2px solid var(--brass); opacity:0; transition:opacity .25s ease; }
  .value-tile:hover{ transform:translateY(-5px); box-shadow:0 22px 40px -12px rgba(10,34,64,0.18); z-index:2; }
  .value-tile:hover::before{ opacity:1; }
  .value-tile .num{ font-family:'EB Garamond',serif; font-style:italic; color:var(--tan-light); font-size:0.95rem; }
  .value-tile h3{ font-size:1.5rem; margin-top:14px; }
  .value-tile p{ margin-top:12px; }

  /* listing cards */
  .listing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
  @media(max-width:900px){ .listing-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:640px){ .listing-grid{ grid-template-columns:1fr; } }

  .listing-card{ background:var(--paper); border:1px solid var(--line); }
  .listing-photo{
    height:210px; position:relative; overflow:hidden;
  }
  .listing-photo svg{ position:absolute; inset:0; width:100%; height:100%; }
  .listing-badge{
    position:absolute; top:14px; left:14px; background:var(--paper);
    color:var(--navy); font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase;
    padding:6px 12px; z-index:2; font-weight:600;
  }
  .listing-body{ padding:22px 24px 26px; }
  .listing-price{ font-family:'EB Garamond',serif; font-size:1.55rem; color:var(--navy); font-weight:600; }
  .listing-addr{ margin-top:6px; font-size:0.88rem; color:var(--ink-soft); }
  .listing-meta{ display:flex; gap:16px; margin-top:16px; font-size:0.78rem; color:var(--tan); letter-spacing:0.02em; padding-top:14px; border-top:1px solid var(--line); }
  .listing-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
  .tag-chip{ font-size:0.68rem; letter-spacing:0.03em; padding:5px 10px; background:var(--paper-alt); color:var(--navy); border:1px solid var(--line); }

  .listing-cta{ text-align:center; margin-top:52px; }

  /* story teaser */
  .story-teaser{ background:var(--paper-alt); }
  .story-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:center; }
  @media(max-width:900px){ .story-grid{ grid-template-columns:1fr; gap:40px; } }
  .story-grid .mullion-frame img{ width:100%; height:400px; object-fit:cover; }

  /* testimonials */
  .testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  @media(max-width:900px){ .testi-grid{ grid-template-columns:1fr; } }
  .testi-card{ background:var(--paper); border:1px solid var(--line); padding:32px 28px; }
  .testi-quote{ font-family:'EB Garamond',serif; font-style:italic; font-size:1.12rem; color:var(--navy); line-height:1.55; }
  .testi-who{ margin-top:20px; font-size:0.78rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--tan); }

  /* CTA band */
  .cta-band{
    background:var(--navy); color:var(--paper); text-align:center; padding:96px 0;
    position:relative; overflow:hidden;
  }
  .cta-band::before{
    content:''; position:absolute; inset:0;
    background:
      linear-gradient(to right, transparent 49.7%, rgba(176,141,87,0.18) 49.7%, rgba(176,141,87,0.18) 50.3%, transparent 50.3%),
      linear-gradient(to bottom, transparent 49.7%, rgba(176,141,87,0.18) 49.7%, rgba(176,141,87,0.18) 50.3%, transparent 50.3%);
  }
  .cta-band .inner{ position:relative; z-index:2; }
  .cta-band h2{ color:var(--paper); font-size:2.5rem; max-width:600px; margin:0 auto; line-height:1.2; }
  @media(max-width:640px){ .cta-band h2{ font-size:1.9rem; } }
  .cta-band p{ color:var(--tan-light); margin-top:18px; }
  .cta-band .btn-brass{ margin-top:34px; }

  /* ===== LISTINGS page ===== */
  .page-header{
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cpath d='M0 0H90M0 0V90' stroke='%23FAF7F1' stroke-opacity='0.06' stroke-width='1'/%3E%3Ccircle cx='0' cy='0' r='2' fill='%23B08D57' fill-opacity='0.35'/%3E%3C/svg%3E"),
      var(--navy);
    padding:90px 0 70px; color:var(--paper);
  }
  .page-header h1{ color:var(--paper); font-size:2.9rem; margin-top:16px; }
  @media(max-width:640px){ .page-header h1{ font-size:2.1rem; } }
  .page-header p{ color:var(--tan-light); max-width:560px; margin-top:16px; }

  .filter-bar{
    display:flex; gap:14px; flex-wrap:wrap; padding:26px 0; border-bottom:1px solid var(--line);
    margin-bottom:56px; align-items:center;
  }
  .filter-bar select, .filter-bar input{
    font-family:'Jost',sans-serif; border:1px solid var(--line); background:var(--paper);
    padding:11px 16px; font-size:0.84rem; color:var(--ink); min-width:150px;
  }
  .filter-bar input{ flex:1; min-width:200px; }

  .listings-full-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
  @media(max-width:900px){ .listings-full-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:640px){ .listings-full-grid{ grid-template-columns:1fr; } }

  /* ===== ABOUT page ===== */
  .about-hero{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:70px; align-items:center; }
  @media(max-width:900px){ .about-hero{ grid-template-columns:1fr; gap:44px; } }
  .about-hero .mullion-frame img{ width:100%; height:480px; object-fit:cover; }
  .about-hero p.lede{ font-size:1.15rem; color:var(--navy); font-family:'EB Garamond',serif; font-style:italic; margin-top:20px; line-height:1.5; }
  .about-hero p.body-text{ margin-top:20px; }

  .timeline{ margin-top:20px; }
  .tl-item{
    display:grid; grid-template-columns:170px 1fr; gap:32px; padding:32px 20px; border-top:1px solid var(--line);
    margin:0 -20px; transition:background .25s ease;
  }
  .tl-item:hover{ background:var(--paper-alt); }
  .tl-item:last-child{ border-bottom:1px solid var(--line); }
  @media(max-width:640px){ .tl-item{ grid-template-columns:1fr; gap:8px; } }
  .tl-era{ font-family:'EB Garamond',serif; font-style:italic; color:var(--brass); font-size:1.05rem; }
  .tl-item h3{ font-size:1.35rem; }
  .tl-item p{ margin-top:10px; max-width:560px; }

  .values-band{ background:var(--paper-alt); }

  /* ===== RELOCATION page ===== */
  .stat-strip{
    display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--navy);
    border:2px solid var(--navy); margin-top:10px;
  }
  @media(max-width:768px){ .stat-strip{ grid-template-columns:1fr 1fr; } }
  .stat-tile{ background:var(--paper); padding:32px 26px; transition:transform .25s ease, box-shadow .25s ease; }
  .stat-tile:hover{ transform:translateY(-5px); box-shadow:0 22px 40px -12px rgba(10,34,64,0.18); }
  .stat-tile .stat-num{ font-family:'EB Garamond',serif; font-size:2.1rem; color:var(--navy); font-weight:600; }
  .stat-tile .stat-label{ margin-top:8px; font-size:0.8rem; color:var(--ink-soft); line-height:1.4; }

  .hood-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  @media(max-width:900px){ .hood-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:640px){ .hood-grid{ grid-template-columns:1fr; } }
  .hood-card{ background:var(--paper); border:1px solid var(--line); padding:30px 26px; position:relative; transition:transform .25s ease, box-shadow .25s ease; }
  .hood-card:hover{ transform:translateY(-5px); box-shadow:0 22px 40px -12px rgba(10,34,64,0.18); }

  .hood-card::before{
    content:''; position:absolute; top:0; left:0; width:34px; height:4px; background:var(--brass);
  }
  .hood-card h3{ font-size:1.4rem; margin-top:10px; }
  .hood-card .hood-tag{ font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--tan); margin-top:2px; display:block; }
  .hood-card p{ margin-top:14px; font-size:0.92rem; }
  .hood-link{
    display:inline-block; margin-top:14px; margin-right:14px; font-size:0.8rem; font-weight:500;
    color:var(--brass); letter-spacing:0.02em; border-bottom:1px solid transparent; transition:border-color .2s ease;
  }
  .hood-link:hover{ border-color:var(--brass); }

  .employer-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
  .employer-chip{
    padding:12px 20px; border:1px solid var(--line); background:var(--paper);
    font-size:0.86rem; color:var(--navy); letter-spacing:0.01em;
  }

  .two-col{ display:grid; grid-template-columns:1fr 1fr; gap:60px; }
  @media(max-width:768px){ .two-col{ grid-template-columns:1fr; gap:36px; } }

  .checklist{ margin-top:20px; }
  .check-item{
    display:grid; grid-template-columns:56px 1fr; gap:24px; padding:26px 20px; border-top:1px solid var(--line);
    margin:0 -20px; transition:background .25s ease;
  }
  .check-item:hover{ background:var(--paper-alt); }
  .check-item:last-child{ border-bottom:1px solid var(--line); }
  .check-num{
    font-family:'EB Garamond',serif; font-style:italic; color:var(--brass); font-size:1.6rem; line-height:1;
  }
  .check-item h3{ font-size:1.2rem; }
  .check-item p{ margin-top:8px; }

  .reloc-cta{ background:var(--navy); color:var(--paper); padding:56px 46px; text-align:center; }
  .reloc-cta h3{ color:var(--paper); font-size:1.7rem; }
  .reloc-cta p{ color:var(--tan-light); margin-top:12px; max-width:420px; margin-left:auto; margin-right:auto; }
  .reloc-cta .btn-brass{ margin-top:24px; }

  /* ===== CONTACT page ===== */
  .contact-grid{ display:grid; grid-template-columns:1fr 0.85fr; gap:64px; }
  @media(max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:48px; } }
  .form-field{ margin-bottom:22px; }
  .form-field label{ display:block; font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--tan); margin-bottom:8px; }
  .form-field input, .form-field textarea, .form-field select{
    width:100%; font-family:'Jost',sans-serif; font-size:0.95rem; padding:14px 16px;
    border:1px solid var(--line); background:var(--paper); color:var(--ink);
  }
  .form-field input:focus, .form-field textarea:focus, .form-field select:focus{ outline:2px solid var(--brass); outline-offset:1px; }
  .form-field textarea{ resize:vertical; min-height:130px; }
  .form-error{ display:none; padding:16px 18px; background:#fbeceb; border-left:3px solid #b3453c; font-size:0.86rem; color:#7a2e28; margin-bottom:20px; }
  .form-error.show{ display:block; }
  .form-note{ font-size:0.76rem; color:var(--tan); margin-top:10px; text-align:center; }
  .btn[disabled]{ opacity:0.6; cursor:default; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  @media(max-width:480px){ .form-row{ grid-template-columns:1fr; } }
  .form-success{ display:none; padding:22px 24px; background:var(--paper-alt); border-left:3px solid var(--brass); }
  .form-success.show{ display:block; }
  .form-success.hide-form ~ form{ display:none; }

  .contact-side{ background:var(--navy); color:var(--paper); padding:44px 38px; }
  .contact-item{ display:flex; gap:16px; padding:20px 0; border-top:1px solid rgba(250,247,241,0.14); }
  .contact-item:first-child{ border-top:none; }
  .contact-item .ico{ width:20px; height:20px; flex-shrink:0; margin-top:2px; color:var(--brass); }
  .contact-item .label{ font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--tan-light); }
  .contact-item .val{ font-family:'EB Garamond',serif; font-size:1.15rem; margin-top:4px; color:var(--paper); }
  .avail-note{ margin-top:28px; padding-top:24px; border-top:1px solid rgba(250,247,241,0.14); font-size:0.9rem; color:var(--tan-light); line-height:1.6; }

  .map-block{
    margin-top:56px; height:280px; background:var(--navy-deep);
    display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
  }
  .map-block .pin{ color:var(--brass); text-align:center; }
  .map-block svg{ width:34px; height:34px; margin:0 auto 10px; }
  .map-block .locname{ font-family:'EB Garamond',serif; color:var(--paper); font-size:1.2rem; }

  /* ===== footer ===== */
  footer{ background:var(--navy-deep); color:var(--tan-light); padding:64px 0 30px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; padding-bottom:44px; }
  @media(max-width:768px){ .footer-grid{ grid-template-columns:1fr; gap:34px; } }
  .footer-brand{ display:flex; align-items:center; gap:12px; }
  .footer-logo-badge{
    display:flex; align-items:center; justify-content:center;
    width:44px; height:44px; background:var(--paper); border-radius:2px; padding:5px; flex-shrink:0;
  }
  .footer-logo-badge img{ width:100%; height:100%; object-fit:contain; }
  .footer-brand .name{ font-family:'EB Garamond',serif; color:var(--paper); font-size:1.2rem; }
  footer p{ color:var(--tan-light); font-size:0.86rem; margin-top:14px; max-width:280px; }
  footer h4{ color:var(--paper); font-family:'Jost',sans-serif; font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:18px; }
  footer .flinks{ display:flex; flex-direction:column; gap:12px; }
  footer .flinks a{ background:none; text-align:left; color:var(--tan-light); font-size:0.9rem; }
  footer .flinks a:hover{ color:var(--paper); }
  .footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:26px; border-top:1px solid rgba(250,247,241,0.1); font-size:0.76rem; color:var(--tan); }

  .brokered-by{
    display:flex; align-items:center; gap:16px; padding:28px 0;
    border-top:1px solid rgba(250,247,241,0.1);
  }
  .brokered-by img{ width:52px; height:52px; border-radius:2px; flex-shrink:0; }
  .brokered-by .bb-text{ display:flex; flex-direction:column; gap:2px; }
  .brokered-by .bb-label{ font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--tan); }
  .brokered-by .bb-name{ font-family:'EB Garamond',serif; font-size:1.15rem; color:var(--paper); }

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

  /* scroll reveal */
  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    .page{ animation:none; }
    .reveal{ opacity:1; transform:none; transition:none; }
  }

  :focus-visible{ outline:2px solid var(--brass); outline-offset:2px; }

  /* ===== Cost of living comparison table ===== */
  .compare-table-wrap{ overflow-x:auto; margin-top:32px; border:1px solid var(--navy); }
  .compare-table{ width:100%; border-collapse:collapse; min-width:560px; }
  .compare-table thead th{
    background:var(--navy); color:var(--paper); text-align:left; font-family:'Jost',sans-serif;
    font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:500; padding:16px 20px;
  }
  .compare-table td{ padding:16px 20px; border-top:1px solid var(--line); font-size:0.95rem; color:var(--ink); }
  .compare-table tbody tr:first-child td{ border-top:none; }
  .compare-table tr.compare-highlight td{ background:var(--paper-alt); font-weight:600; color:var(--navy); }
  .compare-table td.compare-highlight-cell{ background:var(--paper-alt); font-weight:600; color:var(--navy); }
  .compare-table td:first-child, .compare-table th:first-child{ font-family:'EB Garamond',serif; font-size:1.05rem; }
  .compare-note{ display:block; font-size:0.68rem; letter-spacing:0.02em; text-transform:none; color:var(--tan-light); margin-top:2px; font-family:'Jost',sans-serif; }
  td .compare-note{ color:var(--tan); }

  /* ===== Climate section ===== */
  .climate-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--navy); border:2px solid var(--navy); margin-top:32px; }
  @media(max-width:768px){ .climate-grid{ grid-template-columns:1fr 1fr; } }
  .climate-tile{ background:var(--paper); padding:30px 24px; }
  .climate-tile .climate-season{ font-family:'EB Garamond',serif; font-style:italic; color:var(--brass); font-size:1.05rem; }
  .climate-tile .climate-temp{ font-family:'EB Garamond',serif; font-size:1.7rem; color:var(--navy); font-weight:600; margin-top:10px; }
  .climate-tile p{ margin-top:10px; font-size:0.86rem; }

  /* ===== Airport / travel card ===== */
  .travel-card{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); margin-top:32px; }
  @media(max-width:768px){ .travel-card{ grid-template-columns:1fr; } }
  .travel-card > div{ padding:34px 32px; }
  .travel-card > div:first-child{ border-right:1px solid var(--line); }
  @media(max-width:768px){ .travel-card > div:first-child{ border-right:none; border-bottom:1px solid var(--line); } }
  .travel-stat{ font-family:'EB Garamond',serif; font-size:2.2rem; color:var(--navy); font-weight:600; }
  .travel-label{ font-size:0.76rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--tan); margin-top:6px; }
  .travel-card p{ margin-top:14px; font-size:0.92rem; }


  /* ===== Mortgage calculator ===== */
  .calc-wrap{
    background:var(--navy); padding:52px 44px; display:grid;
    grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:start;
  }
  @media(max-width:820px){ .calc-wrap{ grid-template-columns:1fr; padding:36px 26px; } }
  .calc-field{ margin-bottom:22px; }
  .calc-field label{
    display:flex; justify-content:space-between; align-items:baseline;
    font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--tan-light); margin-bottom:8px;
  }
  .calc-field label .calc-val{ font-family:'EB Garamond',serif; font-size:1rem; color:var(--brass-light); text-transform:none; letter-spacing:0; }
  .calc-field input[type="range"]{
    width:100%; accent-color:var(--brass); height:4px; cursor:pointer;
  }
  .calc-field input[type="number"]{
    width:100%; font-family:'Jost',sans-serif; font-size:0.95rem; padding:12px 14px;
    border:1px solid rgba(250,247,241,0.25); background:rgba(250,247,241,0.06); color:var(--paper);
  }
  .calc-field input[type="number"]:focus{ outline:2px solid var(--brass); outline-offset:1px; }
  .calc-term-toggle{ display:flex; gap:10px; }
  .calc-term-toggle button{
    flex:1; padding:11px; font-family:'Jost',sans-serif; font-size:0.86rem; font-weight:500;
    background:rgba(250,247,241,0.06); color:var(--tan-light); border:1px solid rgba(250,247,241,0.25);
    cursor:pointer; transition:all .2s ease;
  }
  .calc-term-toggle button.active{ background:var(--brass); color:var(--navy-deep); border-color:var(--brass); font-weight:600; }
  .calc-rate-note{ font-size:0.74rem; color:var(--tan-light); margin-top:6px; line-height:1.5; }

  .calc-result{ background:var(--paper); padding:36px 32px; }
  .calc-result .calc-monthly-label{ font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--tan); }
  .calc-result .calc-monthly{ font-family:'EB Garamond',serif; font-size:3rem; color:var(--navy); font-weight:600; margin-top:6px; line-height:1; }
  .calc-breakdown{ margin-top:26px; border-top:1px solid var(--line); padding-top:20px; }
  .calc-breakdown-row{
    display:flex; justify-content:space-between; padding:9px 0; font-size:0.9rem; color:var(--ink-soft);
  }
  .calc-breakdown-row.calc-total{
    border-top:1px solid var(--line); margin-top:6px; padding-top:14px; font-weight:600; color:var(--navy);
  }

