@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Lato:wght@300;400;700&display=swap');
    
    html {
      scroll-behavior: smooth;
      scroll-padding-top: 96px;
    }

    section[id],
    footer[id] {
      scroll-margin-top: 96px;
    }

:root {
      --cream: #f7f1e8;
      --cream-2: #fffaf3;
      --navy: #183a57;
      --navy-2: #224d70;
      --gold: #c79a3b;
      --gold-dark: #a9781f;
      --ink: #2f3438;
      --line: rgba(24,58,87,.14);
      --shadow: 0 18px 48px rgba(24,58,87,.10);
      --radius: 18px;
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: var(--cream-2);
      color: var(--ink);
      font-family: "Lato", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      line-height: 1.6;
    }
    h1, h2, h3, .serif {
      font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
      color: var(--navy);
      font-weight: 500;
    }
    img { max-width: 100%; display: block; }
    a { color: inherit; text-decoration: none; }
    .container { width: min(1120px, calc(100% - 40px)); margin-inline: auto; }
    .site-header {
      position: sticky; top: 0; z-index: 20;
      background: rgba(255,250,243,.94);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--line);
    }
    .nav {
      min-height: 80px;
      display: flex; align-items: center; justify-content: space-between; gap: 28px;
    }
    .logo { width: 300px; max-width: 46vw; }
    .nav-links { display: flex; align-items: center; gap: 28px; font-family: "Cormorant Garamond", Georgia, serif; color: var(--navy); }
    .nav-links a:not(.button) { position: relative; transition: color .22s ease; }
    .nav-links a:not(.button)::after {
      content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px;
      background: var(--gold); transition: right .22s ease;
    }
    .nav-links a:not(.button):hover { color: var(--gold-dark); }
    .nav-links a:not(.button):hover::after { right: 0; }
    .button {
      display: inline-flex; align-items: center; justify-content: center;
      min-height: 48px; padding: 0 24px;
      border-radius: 999px;
      background: linear-gradient(135deg, #d8b45f, var(--gold-dark));
      color: #fff; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.08rem; font-weight: 600; letter-spacing: .04em;
      border: 0; box-shadow: 0 10px 28px rgba(167,120,31,.20);
      transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
    }
    .button:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(167,120,31,.28); filter: brightness(1.04); }
    .button.secondary { background: rgba(255,255,255,.28); color: var(--navy); border: 1px solid rgba(199,154,59,.75); box-shadow: none; }
    .hero {
      min-height: 720px;
      display: flex;
      align-items: center;
      justify-content: center;
      background:
        radial-gradient(circle at 50% 12%, rgba(199,154,59,.10), transparent 30%),
        linear-gradient(180deg, #fbf5ec 0%, var(--cream) 100%);
      text-align: center;
      position: relative;
      overflow: hidden;
    }
    .hero::before,
    .hero::after {
      content: "";
      position: absolute;
      width: 240px;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(199,154,59,.55), transparent);
    }
    .hero::before { top: 118px; left: 7%; transform: rotate(-8deg); }
    .hero::after { bottom: 120px; right: 7%; transform: rotate(8deg); }
    .hero-copy {
      width: min(900px, calc(100% - 40px));
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 120px 20px;
      position: relative;
      z-index: 1;
    }
    .eyebrow { color: var(--gold-dark); text-transform: uppercase; letter-spacing: .18em; font-size: .76rem; font-weight: 700; }
    h1 { font-size: clamp(4rem, 7vw, 7rem); line-height: .96; letter-spacing: -.025em; margin: 22px 0 30px; max-width: 900px; }
    h1 em { display: block; color: var(--navy); }
    .hero-copy p { max-width: 670px; font-size: 1.2rem; font-weight: 300; line-height: 1.8; margin: 0 0 40px; }
    .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
    section { padding: 112px 0; }
    .section-head { text-align: center; max-width: 760px; margin: 0 auto 64px; }
    .section-head h2 { font-size: clamp(2.8rem, 4.8vw, 4.4rem); line-height: 1.02; margin: 0 0 16px; }
    .gold-rule { width: 110px; height: 1px; background: var(--gold); margin: 16px auto; position: relative; }
    .gold-rule::after { content: "♥"; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-55%); background: var(--cream-2); color: var(--gold); padding: 0 12px; font-size: .8rem; }
    .services {
      display: grid; grid-template-columns: repeat(4,1fr);
      border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
    }
    .service { padding: 44px 30px; text-align: center; transition: transform .28s ease, background .28s ease, box-shadow .28s ease; }
    .service:hover { transform: translateY(-6px); background: rgba(255,255,255,.62); box-shadow: 0 20px 38px rgba(24,58,87,.08); }
    .service + .service { border-left: 1px solid var(--line); }
    .icon {
      width: 64px; height: 64px; border: 1.5px solid var(--gold);
      border-radius: 50%; margin: 0 auto 22px;
      display: grid; place-items: center; color: var(--gold-dark); font-size: 1.6rem; transition: transform .28s ease, background .28s ease;
    }
    .service:hover .icon { transform: scale(1.06); background: rgba(199,154,59,.08); }
    .service h3 { margin: 0 0 12px; font-size: 1.7rem; line-height: 1.15; }
    .service p { margin: 0; font-size: .95rem; }
    .cta-band { padding: 36px 0; background: var(--navy); color: white; }
    .cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 28px; }
    .cta-inner h2 { color: white; margin: 0; font-size: 2rem; }
    .cta-inner p { margin: 5px 0 0; opacity: .86; }
    .about { background: #fffdf9; }
    .about-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 72px; align-items: center; }
    .about-photo {
      aspect-ratio: 4/3; background: url('../images/about-ashley.jpg') center/cover no-repeat;
      border: 1px solid rgba(199,154,59,.45); box-shadow: var(--shadow); transition: transform .35s ease, box-shadow .35s ease;
    }
    .about-photo:hover { transform: translateY(-5px); box-shadow: 0 28px 58px rgba(24,58,87,.14); }

    .about-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 14px;
      margin-top: 28px;
    }
    .consultation-menu {
      position: relative;
      flex: 0 0 auto;
    }
    .consultation-trigger {
      gap: 10px;
      cursor: pointer;
    }
    .menu-chevron {
      font-size: 1rem;
      line-height: 1;
      transition: transform .2s ease;
    }
    .consultation-trigger[aria-expanded="true"] .menu-chevron {
      transform: rotate(180deg);
    }
    .consultation-options {
      position: absolute;
      z-index: 30;
      right: 0;
      top: calc(100% + 12px);
      width: min(340px, calc(100vw - 40px));
      padding: 10px;
      border: 1px solid rgba(199,154,59,.45);
      border-radius: 18px;
      background: #fffdf9;
      box-shadow: 0 20px 52px rgba(16,44,68,.22);
    }
    .consultation-options a {
      display: flex;
      flex-direction: column;
      gap: 2px;
      padding: 14px 16px;
      border-radius: 12px;
      color: var(--navy);
      transition: background .2s ease, transform .2s ease;
    }
    .consultation-options a:hover {
      background: var(--cream);
      transform: translateX(2px);
    }
    .consultation-options strong {
      font-family: "Cormorant Garamond", Georgia, serif;
      font-size: 1.08rem;
    }
    .consultation-options span {
      color: var(--muted);
      font-size: .9rem;
    }

    .about h2 { font-size: clamp(3rem,5vw,4.8rem); line-height: 1; margin: 0 0 24px; }
    .about p { font-size: 1.05rem; }
    .quote { text-align: center; padding: 62px 20px; background: var(--cream); }
    .quote blockquote { margin: 0 auto; max-width: 820px; color: var(--navy); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(1.5rem,3vw,2.2rem); font-style: italic; line-height: 1.35; }
    footer { background: #102c44; color: rgba(255,255,255,.8); padding: 34px 0; }
    .footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 22px; }
    .footer-logo { width: 220px; filter: brightness(1.2); }

    .footer-policy-links {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 10px 18px;
      margin-bottom: 8px;
    }
    .footer-policy-links a {
      color: inherit;
      font-size: .88rem;
      opacity: .86;
      text-decoration: underline;
      text-underline-offset: 3px;
      transition: opacity .2s ease;
    }
    .footer-policy-links a:hover {
      opacity: 1;
    }

    .small { font-size: .88rem; }
    @media (max-width: 900px) {
      .nav-links a:not(.button) { display: none; }
      .hero { min-height: 660px; }
      .hero-copy { padding: 100px 24px; }
      .services { grid-template-columns: repeat(2,1fr); }
      .service:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
      .service:nth-child(4) { border-top: 1px solid var(--line); }
      .about-grid { grid-template-columns: 1fr; gap: 42px; }
    }
    @media (max-width: 620px) {
      html { scroll-padding-top: 82px; }
      section[id], footer[id] { scroll-margin-top: 82px; }
      .container { width: min(100% - 28px, 1120px); }
      .nav { min-height: 68px; }
      .logo { width: 215px; max-width: 58vw; }
      .nav-links { gap: 10px; }
      .nav-links .button { min-height: 42px; padding: 0 16px; font-size: .85rem; }
      h1 { font-size: 3.6rem; }
      section { padding: 82px 0; }
      .services { grid-template-columns: 1fr; }
      .service + .service { border-left: 0; border-top: 1px solid var(--line); }
      .cta-inner, .footer-inner { flex-direction: column; align-items: flex-start; }
      .cta-inner .button { width: 100%; }
    }
  
    .modal {
      position: fixed;
      inset: 0;
      z-index: 100;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(16,44,68,.58);
      backdrop-filter: blur(8px);
    }
    .modal.is-open { display: flex; }
    .modal-dialog {
      width: min(760px, 100%);
      max-height: min(82vh, 820px);
      overflow-y: auto;
      background: #fffdf9;
      border: 1px solid rgba(199,154,59,.55);
      border-radius: 22px;
      box-shadow: 0 28px 80px rgba(16,44,68,.28);
      padding: 42px;
      position: relative;
      animation: modalIn .25s ease;
    }
    @keyframes modalIn {
      from { opacity: 0; transform: translateY(12px) scale(.985); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }
    .modal-close {
      position: absolute;
      top: 18px;
      right: 18px;
      width: 40px;
      height: 40px;
      border: 1px solid rgba(199,154,59,.45);
      border-radius: 50%;
      background: var(--cream-2);
      color: var(--navy);
      font-size: 1.35rem;
      line-height: 1;
      cursor: pointer;
      transition: transform .2s ease, background .2s ease;
    }
    .modal-close:hover { transform: rotate(6deg); background: var(--cream); }
    .modal-dialog h2 {
      font-size: clamp(2.6rem, 5vw, 4rem);
      margin: 6px 44px 22px 0;
      line-height: 1;
    }
    .modal-dialog p { margin: 0 0 18px; }
    body.modal-open { overflow: hidden; }
