@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Cormorant+SC:wght@600;700&family=Inter:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@500;600&display=swap');

  :root{
    --ink:#193A4B;         /* crisp headings on ivory */
    --ink-light:#345B68;
    --maroon:#08745C;      /* saturated emerald, readable on light surfaces */
    --maroon-dark:#047857;
    --parchment:#FFFCF5;   /* luminous warm ivory page background */
    --parchment-dim:#F4EEDF; /* soft paper-toned sections */
    --brass:#C9A227;       /* corporate gold accent */
    --brass-light:#E4C868;
    --charcoal:#304552;
    --line:#A99D85;
    --sky-top:#F8F1DF;
    --sky-bottom:#FFFDF7;
  }

  *{box-sizing:border-box; margin:0; padding:0;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--parchment);
    color:var(--charcoal);
    font-family:'Inter', system-ui, sans-serif;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,.display{
    font-family:'Cormorant Garamond', serif;
    font-weight:700;
    color:var(--ink);
    letter-spacing:0.01em;
  }

  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--maroon);
    font-weight:600;
  }

  a{color:inherit; text-decoration:none;}

  /* ---------- NAV ---------- */
  nav{
    position:sticky; top:0; z-index:50;
    background:rgba(225,241,255,0.98);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
    display:flex; align-items:center; justify-content:space-between;
    padding:0.9rem clamp(1.2rem,4vw,3.5rem);
  }
  .brandmark{display:flex; align-items:center; gap:0.75rem;}
  .advocate-logo{width:auto; height:46px; flex-shrink:0; display:block;}
  .brand-text{font-family:'Cormorant SC', serif; font-size:1.55rem; font-weight:700; color:var(--ink); line-height:1.1;}
  .brand-text span{display:block; font-family:'IBM Plex Mono', monospace; font-size:0.94rem; letter-spacing:0.03em; color:var(--maroon); font-weight:600; margin-top:4px;}

  .nav-links{display:flex; gap:clamp(1rem,2vw,2rem); font-family:'IBM Plex Mono', monospace; font-size:0.75rem; letter-spacing:0.06em; text-transform:uppercase;}
  .nav-links a{position:relative; padding-bottom:4px; color:var(--charcoal); font-weight:700;}
  .nav-links a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--maroon); transition:width 0.25s ease;}
  .nav-links a:hover::after{width:100%;}
  .nav-cell{display:none;}
  @media(min-width:720px){.nav-cell{display:block; font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--ink); border:1px solid var(--ink); padding:0.4rem 0.9rem; border-radius:2px;}}
  .nav-contact{display:flex; align-items:center; gap:0.6rem;}
  .appt-icon-btn{
    display:flex; align-items:center; justify-content:center;
    width:38px; height:38px; border-radius:50%;
    border:1px solid var(--maroon); background:var(--maroon); color:var(--parchment);
    cursor:pointer; padding:0; flex-shrink:0;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow:0 4px 12px -4px rgba(14,143,111,0.6);
  }
  .appt-icon-btn svg{width:19px; height:19px;}
  .appt-icon-btn:hover{transform:translateY(-2px) scale(1.04); box-shadow:0 8px 16px -6px rgba(14,143,111,0.7);}
  @media(max-width:640px){.nav-links{display:none;}}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    padding:clamp(3rem,8vw,5.5rem) clamp(1.2rem,6vw,4rem) clamp(2.5rem,6vw,4rem);
    background-color:var(--parchment);
    overflow:hidden;
    display:grid; grid-template-columns:1.3fr 1fr; gap:2.5rem; align-items:center;
  }
  @media(max-width:860px){.hero{grid-template-columns:1fr;}}

  .hero-bg-photo{
    position:absolute; inset:0; z-index:0;
    background-image:url("../law-library.png");
    background-position:center; background-size:cover; background-repeat:no-repeat;
    filter:none;
    transform:scale(1.02);
  }
  .hero-photo-overlay{
    position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(90deg, rgba(255,252,245,0.97), rgba(255,252,245,0.91) 48%, rgba(255,252,245,0.60));
  }

  .hero-scales{
    position:absolute; top:16px; right:150px; width:76px; height:68px;
    opacity:1; pointer-events:none; z-index:2;
  }
  @media(max-width:860px){.hero-scales{display:none;}}

  .kicker{font-family:'IBM Plex Mono', monospace; font-size:0.78rem; letter-spacing:0.2em; color:var(--maroon); text-transform:uppercase; margin-bottom:1.1rem; display:flex; align-items:center; gap:0.6rem;}
  .kicker::before{content:''; width:28px; height:1px; background:var(--maroon); display:inline-block;}

  .hero h1{font-size:clamp(2.6rem,6vw,4.4rem); line-height:1.02; letter-spacing:0.005em;}
  .hero .qual{font-family:'Cormorant Garamond', serif; font-size:clamp(1.1rem,2vw,1.4rem); color:var(--maroon); font-weight:600; margin-top:0.3rem;}
  .hero .role{font-family:'IBM Plex Mono', monospace; font-size:0.85rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--ink); margin-top:1.1rem; opacity:1;}
  .badge-row{display:flex; flex-wrap:wrap; gap:0.7rem; margin-top:0.9rem;}
  .notary-badge{
    display:inline-flex; align-items:center; gap:0.5rem;
    margin-top:0; padding:0.45rem 1rem;
    background:linear-gradient(135deg, var(--brass), var(--brass-light));
    color:#26210A; font-family:'IBM Plex Mono', monospace; font-size:0.68rem;
    letter-spacing:0.1em; text-transform:uppercase; font-weight:600;
    border-radius:999px; box-shadow:0 6px 16px -6px rgba(201,162,39,0.6);
  }
  .notary-badge::before{content:'\2713'; font-weight:700;}
  .experience-badge{
    background:linear-gradient(135deg, #047857, #065F46);
    color:#FFFFFF; box-shadow:0 6px 16px -6px rgba(14,143,111,0.6);
  }
  .experience-badge::before{content:'\2605'; font-weight:700;}

  .hero-desc{margin-top:1.6rem; max-width:46ch; font-size:1.05rem; color:var(--charcoal);}
  .hero-copy{position:relative; z-index:2;}

  /* ---------- NOTARY PUBLIC HIGHLIGHT ---------- */
  .np-highlight{
    background:linear-gradient(135deg, #047857, #065F46);
    color:#FFFFFF;
    padding:0.06em 0.5em;
    border-radius:3px;
    font-weight:700;
    white-space:nowrap;
    box-shadow:0 2px 8px -3px rgba(14,143,111,0.55);
  }
  .role .np-highlight, .seal-tag .np-highlight{
    padding:0.15em 0.6em;
    letter-spacing:0.08em;
  }
  .brand-text .np-highlight{
    display:inline-block;
    font-size:1rem;
    letter-spacing:0.03em;
    padding:0.28em 0.75em;
    line-height:1.5;
    vertical-align:middle;
    margin-top:0.3rem;
    font-weight:800;
    color:#FFFFFF;
    box-shadow:0 3px 10px -3px rgba(14,143,111,0.7);
  }


  .hero-actions{display:flex; gap:1rem; margin-top:2.2rem; flex-wrap:wrap;}
  .btn{
    font-family:'IBM Plex Mono', monospace; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
    padding:0.85rem 1.6rem; border-radius:1px; display:inline-flex; align-items:center; gap:0.5rem;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
    border:none; background:none; cursor:pointer; font-weight:inherit; line-height:inherit;
  }
  .btn-primary{background:var(--maroon); color:var(--parchment); box-shadow:0 6px 18px -8px rgba(14,143,111,0.6);}
  .btn-primary:hover{transform:translateY(-2px); box-shadow:0 10px 22px -8px rgba(14,143,111,0.7);}
  .btn-ghost{border:1px solid var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:var(--parchment);}

  /* ---------- SEAL CARD (signature element) ---------- */
  .seal-frame{
    position:relative; justify-self:center; z-index:2;
    width:min(560px, 96%);
    border:1px solid var(--brass);
    padding:2.6rem 2rem 2.4rem;
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    background:linear-gradient(180deg, var(--parchment-dim), var(--parchment));
    box-shadow:0 30px 60px -30px rgba(11,47,107,0.35);
  }
  .seal-frame::before, .seal-frame::after{
    content:''; position:absolute; width:22px; height:22px; border:1px solid var(--brass);
  }
  .seal-frame::before{top:8px; left:8px; border-right:none; border-bottom:none;}
  .seal-frame::after{bottom:8px; right:8px; border-left:none; border-top:none;}
  .hero-portrait{
    width:min(440px, 100%);
    aspect-ratio:1/1;
    border-radius:18px;
    overflow:hidden;
    margin:0 auto 1.3rem;
    border:6px solid var(--brass);
    box-shadow:0 24px 50px -16px rgba(11,47,107,0.55), inset 0 0 0 1px rgba(255,255,255,0.6);
  }
  .hero-portrait img{width:100%; height:100%; object-fit:cover; object-position:center 18%;}
  @media(max-width:480px){.hero-portrait{width:min(320px, 100%);}}
  .seal-frame .seal-name{font-family:'Cormorant SC', serif; font-size:1.3rem; font-weight:700; color:var(--ink);}
  .seal-frame .seal-tag{font-family:'IBM Plex Mono', monospace; font-size:0.62rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--maroon); margin-top:0.5rem;}
  .seal-frame .seal-court{margin-top:1.2rem; font-size:0.85rem; color:var(--charcoal); font-style:italic;}

  /* ---------- STRIP ---------- */
  .strip{
    background:var(--parchment-dim); color:var(--charcoal);
    padding:0.85rem clamp(1.2rem,6vw,4rem);
    display:flex; gap:2.2rem; flex-wrap:wrap; justify-content:center;
    font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase;
  }
  .strip span{opacity:1;}
  .strip b{color:#79551A; font-weight:600;}

  /* ---------- SECTIONS ---------- */
  section{padding:clamp(3.5rem,8vw,6rem) clamp(1.2rem,6vw,4rem);}
  .section-head{max-width:640px; margin-bottom:2.8rem;}
  .section-head h2{font-size:clamp(1.9rem,4vw,2.6rem); margin-top:0.5rem;}
  .section-head p{color:var(--charcoal); margin-top:0.8rem; font-size:1.02rem;}

  /* Practice areas */
  .practice-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  @media(max-width:900px){.practice-grid{grid-template-columns:repeat(2, 1fr);}}
  @media(max-width:560px){.practice-grid{grid-template-columns:1fr;}}
  .practice-card{background:var(--parchment-dim); padding:2.1rem 1.8rem; transition:background 0.25s ease;}
  .practice-card:hover{background:var(--parchment);}
  .practice-card .num{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--maroon); letter-spacing:0.1em;}
  .practice-card h3{font-size:1.35rem; margin-top:0.6rem;}
  .practice-card p{font-size:0.92rem; color:var(--charcoal); margin-top:0.55rem;}
  .practice-card-featured{
    background:linear-gradient(160deg, #E5F3E9, #F8FCF7);
    position:relative;
  }
  .practice-card-featured:hover{background:linear-gradient(160deg, #E5F3E9, #F8FCF7);}
  .practice-card-featured .num{color:var(--maroon);}
  .practice-card-featured h3{color:var(--ink);}
  .practice-card-featured p{color:var(--charcoal);}
  .practice-card-featured::after{
    content:'NOTARY'; position:absolute; top:1.2rem; right:1.2rem;
    font-family:'IBM Plex Mono', monospace; font-size:0.6rem; letter-spacing:0.12em;
    color:#26210A; background:var(--brass-light); padding:0.3rem 0.6rem; border-radius:999px; font-weight:600;
  }

  /* About */
  .about-wrap{display:grid; grid-template-columns:0.9fr 1.1fr; gap:3rem; align-items:start;}
  @media(max-width:800px){.about-wrap{grid-template-columns:1fr;}}
  .about-figure{
    display:flex; flex-direction:column;
    max-width:320px;
    margin:0 auto;
  }
  @media(min-width:801px){.about-figure{margin:0;}}
  .about-photo{
    position:relative;
    border:1px solid var(--brass);
    padding:10px;
    background:linear-gradient(180deg, var(--parchment-dim), var(--parchment));
    box-shadow:0 34px 64px -28px rgba(11,47,107,0.4), 0 2px 0 rgba(255,255,255,0.6) inset;
  }
  .about-photo::before, .about-photo::after{
    content:''; position:absolute; width:20px; height:20px; border:1px solid var(--brass); z-index:1;
  }
  .about-photo::before{top:-6px; left:-6px; border-right:none; border-bottom:none;}
  .about-photo::after{bottom:-6px; right:-6px; border-left:none; border-top:none;}
  .about-photo img{display:block; width:100%; height:auto;}
  .about-plate{
    text-align:center; margin-top:1.3rem; padding-top:1.1rem;
    border-top:1px solid var(--line);
  }
  .plate-name{font-family:'Cormorant SC', serif; font-size:1.4rem; font-weight:700; color:var(--ink);}
  .plate-quals{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--maroon); margin-top:0.35rem;}
  .plate-court{font-family:'Cormorant Garamond', serif; font-style:italic; font-size:0.95rem; color:var(--charcoal); margin-top:0.4rem;}
  .about-text p{margin-bottom:1.1rem; font-size:1.02rem; color:var(--charcoal);}
  .about-text strong{color:var(--ink);}
  .credentials-row{
    display:grid; grid-template-columns:repeat(5,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line); margin-top:1.8rem;
  }
  .credential{background:var(--parchment-dim); padding:1.1rem 1rem;}
  .credential-label{display:block; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--maroon);}
  .credential-value{display:block; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.05rem; color:var(--ink); margin-top:0.35rem;}
  @media(max-width:900px){.credentials-row{grid-template-columns:repeat(3,1fr);}}
  @media(max-width:560px){.credentials-row{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:400px){.credentials-row{grid-template-columns:1fr;}}

  /* Chamber / contact cards — echoing the physical visiting card */
  .chambers{
    background:linear-gradient(180deg, var(--sky-top), var(--sky-bottom) 130%);
    border-radius:4px;
    padding:clamp(2rem,5vw,3.2rem);
    position:relative;
    overflow:hidden;
  }
  .chambers::before{
    content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 85% 10%, rgba(255,255,255,0.12), transparent 45%);
  }
  .chambers-inner{position:relative; z-index:1;}
  .chambers .section-head h2{color:var(--ink);}
  .chambers .section-head .eyebrow{color:var(--maroon);}
  .chambers .section-head p{color:var(--charcoal);}

  .card-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.4rem; margin-top:1rem;}
  .contact-card{
    background:var(--parchment-dim);
    border:1px solid rgba(255,255,255,0.6);
    border-radius:3px;
    padding:1.7rem 1.6rem;
    box-shadow:0 20px 40px -20px rgba(0,0,0,0.35);
  }
  .contact-card h4{font-family:'IBM Plex Mono',monospace; font-size:0.75rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--charcoal); margin-bottom:0.8rem; display:flex; align-items:center; gap:0.5rem;}
  .contact-card h4::before{content:''; width:8px; height:8px; background:var(--maroon); display:inline-block; border-radius:50%;}
  .contact-card address{
    font-style:normal; font-family:'Times New Roman', Times, serif; font-weight:700;
    font-size:1.18rem; color:var(--charcoal); line-height:1.45;
  }
  .cell-line{
    margin-top:1.6rem; display:flex; align-items:center; gap:0.8rem; flex-wrap:wrap;
    background:#FFFFFF; border:1px solid var(--line); color:var(--charcoal); padding:0.9rem 1.3rem; border-radius:3px;
  }
  .cell-line .eyebrow{color:var(--maroon);}
  .cell-line a{font-family:'IBM Plex Mono',monospace; font-size:1.05rem; letter-spacing:0.03em; color:var(--ink);}

  /* Footer */
  footer{
    background:var(--parchment-dim); color:var(--charcoal);
    padding:2.4rem clamp(1.2rem,6vw,4rem) 1.6rem;
    display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:space-between; align-items:center;
    font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.05em;
  }
  footer .fbrand{font-family:'Cormorant SC', serif; font-size:1.05rem; color:var(--charcoal); letter-spacing:0.02em;}
  footer a:hover{color:var(--maroon);}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .btn, .nav-links a::after{transition:none;}
  }

  /* ---------- BAR COUNCIL DISCLAIMER GATE ---------- */
  body.gate-open{overflow:hidden;}

  #disclaimer-gate{
    position:fixed; inset:0; z-index:999;
    background:
      linear-gradient(rgba(255,252,245,0.70), rgba(255,252,245,0.86)),
      url("../law-library.png") center / cover, var(--parchment);
    display:flex; align-items:center; justify-content:center;
    padding:1.4rem;
  }
  .gate-card{
    max-width:620px; width:100%;
    background:var(--parchment);
    border:1px solid var(--brass);
    position:relative;
    padding:clamp(2rem,5vw,3rem);
    max-height:90vh; overflow-y:auto;
  }
  .gate-card::before, .gate-card::after{
    content:''; position:absolute; width:26px; height:26px; border:1px solid var(--brass);
  }
  .gate-card::before{top:10px; left:10px; border-right:none; border-bottom:none;}
  .gate-card::after{bottom:10px; right:10px; border-left:none; border-top:none;}

  .gate-seal{display:flex; justify-content:center; margin-bottom:1.2rem;}
  .gate-seal svg{width:52px; height:52px;}

  .gate-card h2{
    text-align:center; font-size:clamp(1.5rem,3vw,1.9rem); margin-bottom:0.3rem;
  }
  .gate-sub{
    text-align:center; font-family:'IBM Plex Mono', monospace; font-size:0.68rem;
    letter-spacing:0.16em; text-transform:uppercase; color:var(--maroon);
    margin-bottom:1.6rem;
  }
  .gate-card p{font-size:0.94rem; color:var(--charcoal); margin-bottom:0.95rem;}
  .gate-card ul{margin:0 0 0.95rem; padding-left:1.3rem;}
  .gate-card li{font-size:0.94rem; color:var(--charcoal); margin-bottom:0.7rem; line-height:1.55;}
  .gate-card li strong{color:var(--ink);}
  .gate-card p strong{color:var(--ink);}
  .gate-divider{border:none; border-top:1px solid var(--line); margin:1.4rem 0;}

  .gate-actions{
    display:flex; gap:1rem; justify-content:center; margin-top:1.8rem; flex-wrap:wrap;
  }
  .gate-actions .btn{cursor:pointer; border:none; font-family:'IBM Plex Mono', monospace;}
  #gate-decline{
    background:transparent; border:1px solid var(--ink); color:var(--ink);
    font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; padding:0.85rem 1.6rem;
  }
  #gate-decline:hover{background:var(--ink); color:var(--parchment);}
  #gate-agree{
    background:var(--maroon); color:var(--parchment);
    font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; padding:0.85rem 1.9rem;
    box-shadow:0 6px 18px -8px rgba(14,143,111,0.6);
  }
  #gate-agree:hover{transform:translateY(-2px);}

  #site-content{display:none;}
  #site-content.revealed{display:block; animation:reveal 0.5s ease both;}
  @keyframes reveal{from{opacity:0;} to{opacity:1;}}

  /* ---------- APPOINTMENT MODAL ---------- */
  .appt-overlay{
    position:fixed; inset:0; z-index:900;
    background:rgba(237,230,212,0.85);
    display:none; align-items:center; justify-content:center;
    padding:1.4rem;
  }
  .appt-overlay.open{display:flex;}
  .appt-card{
    max-width:520px; width:100%;
    background:var(--parchment);
    border:1px solid var(--brass);
    position:relative;
    padding:clamp(2rem,5vw,2.8rem);
    max-height:90vh; overflow-y:auto;
  }
  .appt-card::before, .appt-card::after{
    content:''; position:absolute; width:24px; height:24px; border:1px solid var(--brass);
  }
  .appt-card::before{top:10px; left:10px; border-right:none; border-bottom:none;}
  .appt-card::after{bottom:10px; right:10px; border-left:none; border-top:none;}
  .appt-close{
    position:absolute; top:1.1rem; right:1.2rem;
    background:none; border:none; cursor:pointer;
    font-family:'IBM Plex Mono', monospace; font-size:1.3rem; color:var(--ink);
    line-height:1; padding:0.2rem;
  }
  .appt-close:hover{color:var(--maroon);}
  .appt-card h2{font-size:clamp(1.5rem,3vw,1.9rem); margin:0.5rem 0 0.4rem;}
  .appt-card p{font-size:0.94rem; color:var(--charcoal); margin-bottom:1.5rem;}
  .appt-field{display:block; margin-bottom:1.2rem;}
  .appt-field span{
    display:block; font-family:'IBM Plex Mono', monospace; font-size:0.68rem;
    letter-spacing:0.12em; text-transform:uppercase; color:var(--maroon); margin-bottom:0.5rem;
  }
  .appt-field input, .appt-field textarea{
    width:100%; border:1px solid var(--line); background:var(--parchment);
    padding:0.75rem 0.9rem; font-family:'Source Serif 4', serif; font-size:0.98rem; color:var(--charcoal);
    border-radius:1px; resize:vertical;
  }
  .appt-field input:focus, .appt-field textarea:focus{outline:2px solid var(--brass); outline-offset:1px;}
  .appt-submit-row{display:flex; justify-content:flex-end; margin-top:1.6rem;}
  .appt-confirm{
    display:none; text-align:center; padding:1.5rem 0;
  }
  .appt-confirm.show{display:block;}
  .appt-confirm .eyebrow{justify-content:center; display:flex;}
  .appt-confirm p{margin-top:0.8rem;}
  /* Accessible interaction and small-screen layout */
  :root{color-scheme:light; --focus:#08745C;}
  [id]{scroll-margin-top:9rem;}
  a:focus-visible, button:focus-visible, [tabindex="-1"]:focus-visible{outline:3px solid var(--focus); outline-offset:4px;}
  a[href^="mailto:"], .cell-line a{overflow-wrap:anywhere;}
  a[href^="mailto:"]:hover, .cell-line a:hover{text-decoration:underline;}
  .card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));}
  .contact-card{border-color:var(--line);}
  .cell-line>*{min-width:0;}
  .chambers{margin-top:2.5rem;}
  .appt-field input:user-invalid{border-color:#AD2340;}
  #form-status{color:#AD2340;}
  .appt-close{min-width:44px; min-height:44px;}
  @media(max-width:1100px){.nav-cell{display:none;}}
  @media(max-width:640px){
    nav{flex-wrap:wrap; gap:1rem;}
    .nav-links{display:flex; order:3; width:100%; justify-content:space-between; gap:0.5rem; font-size:0.68rem;}
  }
  @media(prefers-reduced-motion:reduce){*, *::before, *::after{animation:none!important; transition:none!important;}}
  /* Sunlit library imagery and bright surface details */
  .gate-card, .appt-card{background:#FFFEFA; box-shadow:0 22px 80px rgba(112,82,32,0.16);}
  .gate-seal svg{background:#FFF0C7; padding:9px; width:66px; height:66px; border-radius:50%;}
  .gate-seal svg [stroke]{stroke:#08745C;}
  .gate-seal svg [fill]:not([fill="none"]){fill:#08745C;}
  .advocate-logo{background:#FFF9E9; border-radius:50%; box-shadow:0 0 0 3px #E4C868;}
  .appt-icon-btn{background:#08745C; color:#FFFFFF; border:2px solid #E4C868; width:44px; height:44px;}
  .btn{font-weight:600;}
  .practice-card, .contact-card{background:#FFFFFF;}
  .practice-card-featured{background:linear-gradient(160deg,#E5F3E9,#F8FCF7);}
  .seal-frame{background:rgba(255,254,250,0.97);}
  .library-banner{margin:0; height:clamp(200px,28vw,390px); overflow:hidden; border-block:1px solid #D9C497;}
  .library-banner img{display:block; width:100%; height:100%; object-fit:cover; object-position:center 64%;}
  @media(max-width:640px){.hero-photo-overlay{background:rgba(255,252,245,0.93);}}
  /* Responsive layout: compact phones, tablets, and wide desktop screens. */
  html{-webkit-text-size-adjust:100%;}
  body{min-width:280px;}
  nav{gap:1rem; padding-inline:max(1.25rem, calc((100vw - 1440px)/2));}
  nav[aria-label]{isolation:isolate;}
  section, .hero, footer{padding-inline:max(clamp(1.25rem,4vw,4rem), calc((100vw - 1360px)/2));}
  .hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);}
  .hero-copy, .about-text, .brandmark, .contact-card, .credential{min-width:0;}
  .nav-links a{display:flex; align-items:center; justify-content:center; min-height:44px; min-width:44px;}
  .nav-cell{min-height:44px; align-content:center;}
  .btn, #gate-agree, #gate-decline{min-height:48px; justify-content:center; cursor:pointer;}
  .btn{border-radius:4px; text-align:center;}
  .appt-field input, .appt-field textarea{font-family:inherit; font-size:1rem; min-height:48px;}
  .appt-field input::placeholder, .appt-field textarea::placeholder{color:#596773; opacity:1;}
  .gate-card, .appt-card{max-height:calc(100dvh - 2.5rem); overscroll-behavior:contain; scrollbar-gutter:stable;}
  #disclaimer-gate, .appt-overlay{padding:max(0.75rem,env(safe-area-inset-top)) max(0.75rem,env(safe-area-inset-right)) max(0.75rem,env(safe-area-inset-bottom)) max(0.75rem,env(safe-area-inset-left));}
  .appt-card{padding-top:3.8rem;}
  .appt-close{top:0.7rem; right:0.7rem;}
  .practice-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .about-wrap{grid-template-columns:minmax(220px,0.75fr) minmax(0,1.5fr);}
  .credentials-row{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));}
  .credential-label, .plate-quals, .seal-frame .seal-tag{font-size:0.75rem; letter-spacing:0.07em;}
  .strip{gap:0.65rem 1.5rem; overflow-wrap:anywhere;}
  .cell-line a, footer a{display:inline-flex; align-items:center; min-height:44px; max-width:100%; word-break:break-word;}
  footer{font-size:0.8rem; line-height:1.8;}
  footer>div{min-width:0; overflow-wrap:anywhere;}
  @media(max-width:1199px){
    .nav-cell{display:none;}
    nav{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0.3rem 1rem; padding-block:0.6rem;}
    .nav-contact{grid-column:2; grid-row:1;}
    .nav-links{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-column:1/-1; grid-row:2; width:100%; gap:0.5rem; border-top:1px solid #ACCDE5; font-size:0.78rem;}
    .nav-links a:hover, .nav-links a:focus-visible{background:#CEE6FA; border-radius:3px;}
    [id]{scroll-margin-top:11rem;}
    .brand-text .np-highlight{font-size:0.94rem; padding:0.12em 0.5em; margin-top:0;}
    .hero{gap:2rem;}
    .seal-frame{padding:1.6rem 1.2rem; width:100%;}
    .hero-scales{right:2rem; width:48px; height:44px;}
  }
  @media(min-width:1200px){
    .nav-contact .nav-cell:first-child{display:none;}
    .nav-links{gap:1.1rem;}
  }
  @media(max-width:900px){
    .hero{grid-template-columns:1fr; padding-block:2.5rem;}
    .hero-copy{max-width:650px; width:100%; justify-self:center;}
    .hero-desc{max-width:60ch;}
    .seal-frame{max-width:460px;}
    .hero-portrait{max-width:330px;}
    .hero-scales{display:none;}
    .practice-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    .about-wrap{gap:2rem;}
    .about-figure{width:100%;}
  }
  @media(max-width:640px){
    nav{padding-inline:1rem;}
    .advocate-logo{height:38px;}
    .brandmark{gap:0.6rem;}
    .brand-text{font-size:1.35rem;}
    .brand-text span{font-size:0.84rem; letter-spacing:0;}
    .brand-text .np-highlight{font-size:0.84rem;}
    .nav-links{font-size:0.7rem; gap:0.1rem; letter-spacing:0.02em;}
    section{padding-block:3rem;}
    .hero h1{font-size:clamp(2.4rem,10vw,3.5rem);}
    .kicker{font-size:0.7rem; letter-spacing:0.1em;}
    .kicker::before{width:18px; flex-shrink:0;}
    .hero .role{font-size:0.76rem; letter-spacing:0.07em;}
    .hero-desc, .section-head p, .about-text p{font-size:1rem;}
    .hero-actions{display:grid; grid-template-columns:1fr; width:100%; gap:0.75rem; margin-top:1.5rem;}
    .hero-actions .btn{width:100%;}
    .notary-badge{font-size:0.65rem; letter-spacing:0.04em; padding:0.5rem 0.75rem;}
    .seal-frame{max-width:380px;}
    .hero-portrait{border-width:4px; border-radius:10px;}
    .strip{display:grid; text-align:center; padding-block:1.1rem; font-size:0.7rem;}
    .library-banner{height:210px;}
    .library-banner img{object-position:62% center;}
    .section-head{margin-bottom:1.8rem;}
    .section-head h2{font-size:2rem; line-height:1.2;}
    .practice-grid, .about-wrap{grid-template-columns:1fr;}
    .practice-card{padding:1.5rem;}
    .practice-card p{font-size:1rem;}
    .about-figure{max-width:270px; margin-inline:auto;}
    .credentials-row{grid-template-columns:repeat(2,minmax(0,1fr));}
    .credential{padding:1rem 0.8rem;}
    .chambers{padding:1.4rem 1rem; margin-top:2rem;}
    .contact-card{padding:1.3rem 1rem;}
    .contact-card h4{font-size:0.73rem; letter-spacing:0.05em;}
    .contact-card h4::before{flex-shrink:0;}
    .cell-line{display:grid; gap:0; padding:1rem;}
    .cell-line a{font-size:0.92rem; letter-spacing:0;}
    .cell-line .eyebrow:not(:first-child){margin-top:0.65rem;}
    footer{display:grid; gap:1rem; padding-block:2rem;}
    .gate-card, .appt-card{padding:1.5rem; max-height:calc(100dvh - 1.5rem);}
    .appt-card{padding-top:3.8rem;}
    .gate-card p, .gate-card li, .appt-card p{font-size:1rem;}
    .gate-actions{display:grid; gap:0.75rem;}
    .appt-submit-row .btn{width:100%;}
  }
  @media(max-height:500px) and (orientation:landscape){
    nav{position:relative;}
    [id]{scroll-margin-top:1rem;}
    .gate-card, .appt-card{max-height:calc(100dvh - 1.5rem);}
  }

  /* Quiet, integrated masthead; mobile navigation opens only when needed. */
  nav[aria-label="Main navigation"]{
    display:flex; flex-wrap:nowrap; align-items:center; gap:1.5rem;
    padding:0.8rem max(clamp(1.25rem,4vw,4rem), calc((100vw - 1360px)/2));
    background:#C5E9FA; border:0; box-shadow:none;
    backdrop-filter:blur(12px);
  }
  nav .brandmark{gap:0.7rem; flex:0 1 auto;}
  nav .advocate-logo{height:34px; background:transparent; box-shadow:none;}
  nav .brand-text{font-size:1.5rem; line-height:1.15; white-space:nowrap;}
  nav .brand-text span{font-family:'Inter',sans-serif; font-size:0.85rem; letter-spacing:0; font-weight:500; margin-top:0.25rem; color:#065F4C;}
  nav .brand-text .np-highlight{display:inline; background:none; color:inherit; padding:0; box-shadow:none; font-size:inherit; font-weight:500;}
  nav .nav-links{
    display:flex; width:auto; margin-left:auto; gap:0.25rem; border:0;
    font-family:'Inter',sans-serif; font-size:0.92rem; letter-spacing:0; text-transform:none;
  }
  nav .nav-links a{padding:0.5rem 0.8rem; font-weight:500; border-radius:6px; color:var(--ink);}
  nav .nav-links a::after{display:none;}
  nav .nav-links a:hover, nav .nav-links a:focus-visible{background:#EAF2F5; color:#075D4B;}
  nav .nav-contact{flex-shrink:0;}
  nav .nav-cell{display:none!important;}
  nav .appt-icon-btn{border:1px solid #B8CFC7; background:transparent; color:var(--maroon); border-radius:8px; box-shadow:none;}
  nav .appt-icon-btn:hover{background:#EAF2F5; transform:none; box-shadow:none;}
  .menu-toggle{display:none;}
  [id]{scroll-margin-top:7rem;}
  @media(max-width:900px){
    nav[aria-label="Main navigation"]{flex-wrap:wrap; gap:0 0.75rem; padding-block:0.7rem;}
    nav .brandmark{flex:1;}
    nav .brand-text{font-size:1.35rem;}
    nav .brand-text span{font-size:0.8rem;}
    nav .nav-contact{display:none;}
    nav .nav-links{width:100%; margin:0; padding-top:0.6rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.2rem;}
    nav .nav-links a{justify-content:flex-start; min-height:48px; font-size:0.95rem;}
    nav.nav-ready .menu-toggle{display:inline-flex; align-items:center; justify-content:center; gap:0.5rem; min-width:44px; min-height:44px; border:0; border-radius:6px; background:transparent; color:var(--ink); font:500 0.85rem 'Inter',sans-serif; cursor:pointer; padding:0.5rem;}
    .menu-toggle:hover, .menu-toggle[aria-expanded="true"]{background:#EAF2F5!important;}
    nav.nav-ready .nav-links{display:none;}
    nav.nav-ready.menu-open .nav-links{display:grid;}
    nav.menu-open{box-shadow:0 8px 18px -16px rgba(25,58,75,0.3);}
  }
  @media(max-width:360px){
    nav[aria-label="Main navigation"]{padding-inline:0.85rem; gap:0 0.4rem;}
    nav .advocate-logo{height:28px;}
    nav .brandmark{gap:0.45rem;}
    nav .brand-text{font-size:1.25rem;}
    nav .brand-text span{font-size:0.72rem;}
    nav.nav-ready .menu-toggle{gap:0.3rem; padding-inline:0.3rem; font-size:0.8rem;}
  }
  @media(max-height:500px) and (orientation:landscape){[id]{scroll-margin-top:1rem;}}

  /* Editorial detail and restrained motion; content is always readable. */
  .section-head::after{content:''; display:block; width:64px; height:3px; margin-top:1.5rem; background:linear-gradient(90deg,var(--maroon),var(--brass)); border-radius:2px;}
  .section-head h2{line-height:1.18;}
  .hero h1{text-shadow:0 2px 20px rgba(255,255,255,0.8);}
  .hero-portrait{box-shadow:0 16px 34px -18px rgba(88,63,26,0.4);}
  .seal-frame{border-radius:12px; box-shadow:0 24px 60px -32px rgba(88,63,26,0.35);}
  .seal-frame::before, .seal-frame::after{border-radius:3px;}
  .practice-grid{gap:1.1rem; background:transparent; border:0;}
  .practice-card{position:relative; border:1px solid #DAD4C6; border-radius:10px; box-shadow:0 8px 24px -20px rgba(51,65,52,0.3); transition:transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;}
  .practice-card .num{display:inline-flex; justify-content:center; align-items:center; width:38px; height:38px; border:1px solid #D9DFC8; border-radius:50%; background:#F7F8EF; font-size:0.75rem;}
  .practice-card h3{margin-top:1rem;}
  .practice-card-featured{border-color:#96BCA6;}
  .practice-card-featured::after{top:1.5rem; right:1.5rem;}
  .contact-card{border-radius:8px; box-shadow:0 12px 28px -24px rgba(88,63,26,0.4); transition:transform 220ms ease, box-shadow 220ms ease;}
  .chambers{border:1px solid #DDD1B3; border-radius:12px;}
  .about-photo{border-radius:8px; box-shadow:0 18px 44px -28px rgba(88,63,26,0.4);}
  .about-photo img{border-radius:3px;}
  .credentials-row{border-radius:8px; overflow:hidden;}
  .library-banner{position:relative;}
  .library-banner::after{content:''; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 70px rgba(122,84,20,0.12);}
  .btn-primary{position:relative; overflow:hidden; isolation:isolate;}
  .btn-primary::after{content:''; position:absolute; inset:-60% auto -60% -80%; width:40%; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent); transform:rotate(24deg); pointer-events:none;}
  .btn-primary:focus-visible::after{animation:button-sheen 650ms ease-out;}
  .menu-toggle svg{transition:transform 200ms ease;}
  .menu-toggle[aria-expanded="true"] svg{transform:rotate(90deg);}
  @media(hover:hover) and (pointer:fine){
    .practice-card:hover{transform:translateY(-5px); border-color:#B99A50; box-shadow:0 16px 34px -22px rgba(88,63,26,0.35);}
    .contact-card:hover{transform:translateY(-3px); box-shadow:0 16px 30px -24px rgba(88,63,26,0.4);}
    .btn-primary:hover::after{animation:button-sheen 650ms ease-out;}
  }
  @media(prefers-reduced-motion:no-preference){
    #site-content.revealed .hero-bg-photo{animation:library-settle 4s ease-out both;}
    #site-content.revealed .hero-scales{transform-origin:50% 10%; animation:scales-settle 3.6s ease-in-out both;}
    .is-revealed{animation:editorial-rise 650ms cubic-bezier(0.2,0.7,0.2,1) backwards;}
    nav.menu-open .nav-links{animation:editorial-rise 220ms ease-out backwards;}
  }
  @keyframes library-settle{from{transform:scale(1.065);}to{transform:scale(1.02);}}
  @keyframes scales-settle{0%{transform:rotate(-7deg);}35%{transform:rotate(4deg);}70%{transform:rotate(-2deg);}100%{transform:rotate(0);}}
  @keyframes editorial-rise{from{transform:translateY(16px);}to{transform:translateY(0);}}
  @keyframes button-sheen{to{left:150%;}}
  @media(prefers-reduced-motion:reduce){
    .practice-card:hover, .contact-card:hover, .btn:hover{transform:none;}
    .btn-primary::after{display:none;}
  }

  /* A chamber-style welcome: identity, library imagery, and a clear entry notice. */
  #disclaimer-gate{background:radial-gradient(ellipse at 15% 15%,#EAF2EF,transparent 60%),linear-gradient(135deg,#FBF8F0,#ECE3D0);}
  .gate-card{display:grid; grid-template-columns:0.9fr 1.15fr; max-width:1060px; padding:0; border:1px solid #D5C5A1; border-radius:14px; overflow:hidden; box-shadow:0 32px 90px -38px rgba(67,51,26,0.35);}
  .gate-card::before, .gate-card::after{display:none;}
  .gate-identity{display:flex; flex-direction:column; align-items:flex-start; padding:2.5rem 2.25rem 0; min-width:0; min-height:0; background:#F5F0E4; border-right:1px solid #E1D8C4;}
  .chamber-monogram{display:grid; place-items:center; width:66px; height:66px; border:1px solid #AC8B43; border-radius:50%; font-family:'Cormorant Garamond',serif; color:var(--ink); font-size:2rem; letter-spacing:-0.12em; padding-right:0.12em; margin-bottom:1.6rem; box-shadow:0 0 0 5px #FBF8F0,0 0 0 6px #DDD0B2;}
  .entry-advocate-logo{display:block; width:100%; height:100%; object-fit:contain; border-radius:50%;}
  .chamber-monogram:has(.entry-advocate-logo){padding:4px;}
  .entry-name{font-family:'Cormorant Garamond',serif; font-size:clamp(2.5rem,4vw,3.6rem); font-weight:700; color:var(--ink); line-height:1.08; margin-top:0.8rem;}
  .entry-role{font-size:1rem; font-weight:600; color:var(--maroon); margin-top:0.5rem;}
  .entry-location{font-size:0.82rem; color:var(--charcoal); margin-top:0.7rem;}
  .entry-rule{height:2px; width:50px; background:#AD8837; margin-block:1.5rem;}
  .gate-card .entry-detail{font-size:1rem; line-height:1.65; margin-bottom:1.5rem;}
  .entry-library{width:calc(100% + 4.5rem); max-width:none; margin-inline:-2.25rem; margin-top:auto; height:210px; min-height:140px; object-fit:cover; object-position:65% center; border-top:1px solid #D5C5A1;}
  .gate-notice{min-height:0; overflow-y:auto; padding:2.5rem 2.25rem 0; max-height:calc(100dvh - 2.5rem); overscroll-behavior:contain; scrollbar-gutter:stable;}
  .gate-seal{display:none;}
  .gate-card h2{text-align:left; font-size:2rem;}
  .gate-sub{text-align:left; letter-spacing:0.12em; margin-top:0.3rem;}
  .gate-actions{position:sticky; bottom:0; background:#FFFEFA; padding:1rem 0; margin-top:1rem; border-top:1px solid #DED5C4; gap:0.6rem; justify-content:flex-start;}
  .gate-divider{display:none;}
  #gate-agree, #gate-decline{font-family:'Inter',sans-serif; font-weight:600; border-radius:5px; letter-spacing:0; text-transform:none; font-size:0.9rem; padding:0.8rem 1.2rem;}
  .hero{padding-top:clamp(2.5rem,5vw,4.5rem); padding-bottom:clamp(2.5rem,5vw,4.5rem);}
  .hero-photo-overlay{background:linear-gradient(90deg,rgba(255,252,245,0.99),rgba(255,252,245,0.94) 48%,rgba(255,252,245,0.70));}
  .hero h1{font-size:clamp(3rem,6vw,5.1rem); letter-spacing:-0.025em; line-height:1.05;}
  .hero .qual{font-size:1.1rem; margin-top:0.55rem;}
  .hero .role{font-family:'Cormorant Garamond',serif; font-size:clamp(1.5rem,2.4vw,2rem); letter-spacing:0; text-transform:none; margin-top:1.1rem; font-weight:600;}
  .hero .role .np-highlight{background:none; color:var(--maroon); box-shadow:none; padding:0; letter-spacing:0;}
  .hero .badge-row{gap:0.6rem; margin-top:1.2rem;}
  .hero .notary-badge{background:#F5EDDA; border:1px solid #C9B581; color:#594413; box-shadow:none; border-radius:4px; font:500 0.78rem 'Inter',sans-serif; letter-spacing:0; text-transform:none;}
  .hero .experience-badge{background:#ECF5EE; border-color:#ABC8B5; color:#12523C;}
  .hero-desc{font-size:1.05rem; max-width:52ch; line-height:1.8;}
  .hero .seal-frame{max-width:440px; padding:1.35rem 1.35rem 1.6rem; border-radius:120px 120px 8px 8px; background:#FFFEFA; border-color:#C9B581;}
  .hero .seal-frame::before, .hero .seal-frame::after{display:none;}
  .hero-portrait{aspect-ratio:4/4.2; width:100%; max-width:100%; border:0; border-radius:105px 105px 4px 4px; margin-bottom:1.2rem;}
  .hero .seal-name{font-size:1.5rem;}
  .hero .seal-tag{font:500 0.8rem 'Inter',sans-serif; letter-spacing:0; text-transform:none;}
  .hero .seal-tag .np-highlight{background:none; color:var(--maroon); box-shadow:none; padding:0; letter-spacing:0;}
  .hero .seal-court{max-width:32ch; margin-top:0.65rem; font-size:0.85rem;}
  .hero-scales{right:2rem; top:0.6rem; width:42px; height:40px; opacity:0.7;}
  @media(max-width:900px){
    .gate-card{grid-template-columns:1fr; max-width:640px; overflow-y:auto;}
    .gate-identity{padding:1.5rem; border-right:0; border-bottom:1px solid #E1D8C4; display:block;}
    .chamber-monogram{float:left; width:46px; height:46px; font-size:1.6rem; margin:0.2rem 1.1rem 0.5rem 0;}
    .gate-identity .eyebrow{font-size:0.66rem; letter-spacing:0.12em;}
    .entry-name{font-size:2.2rem; margin-top:0.3rem;}
    .entry-role{clear:both; font-size:0.95rem; margin-top:0.6rem;}
    .entry-location{margin-top:0.3rem;}
    .entry-rule, .gate-card .entry-detail, .entry-library{display:none;}
    .gate-notice{padding:1.5rem 1.5rem 0; overflow:visible; max-height:none;}
    .gate-card h2{font-size:1.6rem;}
    .hero .seal-frame{max-width:360px;}
  }
  @media(max-width:640px){
    .hero h1{font-size:clamp(2.8rem,12vw,3.8rem);}
    .hero .role{font-size:1.65rem;}
    .hero-desc{font-size:1rem; line-height:1.75;}
    .gate-actions{display:grid; grid-template-columns:1fr 1fr;}
    #gate-agree, #gate-decline{font-size:0.82rem; padding:0.75rem 0.5rem;}
  }
