:root{
    --navy: #0F1E38;
    --navy-deep: #081222;
    --navy-soft: #16294a;
    --gold: #A9812E;
    --gold-light: #C9A24E;
    --white: #FFFFFF;
    --ivory: #FAF8F4;
    --ink: #1C2530;
    --gray: #5B6472;
    --line: rgba(169,129,46,0.28);
    --radius: 2px;
    --maxw: 1180px;
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--white);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
  h1,h2,h3,h4{
    font-family:'Cormorant Garamond', serif;
    font-weight:600;
    color:var(--navy);
    letter-spacing:0.01em;
    line-height:1.15;
  }
  .eyebrow{
    font-family:'Inter',sans-serif;
    font-size:12.5px;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:600;
    display:inline-flex;
    align-items:center;
    gap:12px;
  }
  .eyebrow::before{
    content:"";
    width:26px;height:1px;
    background:var(--gold);
    display:inline-block;
  }
  .section-head{margin-bottom:52px;max-width:640px;}
  .section-head h2{font-size:clamp(30px,4vw,42px);margin-top:14px;}
  .section-head p{margin-top:16px;color:var(--gray);font-size:16.5px;line-height:1.7;}
  section{padding:110px 0;}
  @media(max-width:768px){
    section{padding:76px 0;}
    .wrap{padding:0 22px;}
  }

  /* Buttons */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:16px 32px;
    font-size:14px;
    font-weight:600;
    letter-spacing:0.04em;
    text-transform:uppercase;
    border-radius:var(--radius);
    border:1px solid transparent;
    cursor:pointer;
    transition:all .35s cubic-bezier(.4,0,.2,1);
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--gold);
    color:var(--navy-deep);
    border-color:var(--gold);
  }
  .btn-primary:hover{
    background:var(--gold-light);
    border-color:var(--gold-light);
    transform:translateY(-1px);
  }
  .btn-outline-dark{
    background:transparent;
    color:var(--navy);
    border-color:rgba(15,30,56,0.35);
  }
  .btn-outline-dark:hover{
    border-color:var(--navy);
    background:rgba(15,30,56,0.04);
  }
  .btn-outline-light{
    background:transparent;
    color:var(--white);
    border-color:rgba(255,255,255,0.35);
  }
  .btn-outline-light:hover{
    border-color:var(--gold-light);
    color:var(--gold-light);
  }

  /* ===== HEADER ===== */
  header{
    position:fixed;top:0;left:0;right:0;
    z-index:1000;
    background:rgba(8,18,34,0);
    padding:26px 0;
    transition:all .4s cubic-bezier(.4,0,.2,1);
  }
  header.scrolled{
    background:rgba(8,18,34,0.94);
    backdrop-filter:blur(10px);
    padding:16px 0;
    box-shadow:0 6px 24px rgba(0,0,0,0.18);
  }
  header .wrap{display:flex;align-items:center;justify-content:space-between;}
  .brand{
    display:flex;align-items:center;gap:16px;
  }
  .brand .mark{width:54px;height:54px;flex-shrink:0;}
  .brand .brand-text{
    display:flex;flex-direction:column;
    line-height:1;
  }
  .brand .brand-text .label-top{
    font-family:'Inter',sans-serif;
    font-size:9.5px;
    letter-spacing:0.26em;
    font-weight:600;
    text-transform:uppercase;
    color:rgba(255,255,255,0.5);
    margin-bottom:5px;
  }
  .brand .brand-text .name{
    font-family:'Cormorant Garamond',serif;
    font-size:23px;
    letter-spacing:0.025em;
    font-weight:700;
    color:var(--white);
    text-transform:uppercase;
    white-space:nowrap;
  }
  .brand .brand-text .label-bottom{
    font-family:'Inter',sans-serif;
    font-size:9px;
    letter-spacing:0.12em;
    font-weight:500;
    text-transform:uppercase;
    color:var(--gold-light);
    margin-top:6px;
    white-space:nowrap;
  }
  nav.primary-nav{display:flex;align-items:center;gap:40px;}
  nav.primary-nav a{
    color:rgba(255,255,255,0.82);
    font-size:13.5px;
    letter-spacing:0.05em;
    font-weight:500;
    text-transform:uppercase;
    position:relative;
    padding:4px 0;
    transition:color .3s;
  }
  nav.primary-nav a:hover{color:var(--white);}
  nav.primary-nav a::after{
    content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;
    background:var(--gold-light);transition:width .3s;
  }
  nav.primary-nav a:hover::after{width:100%;}
  header .cta-desktop{display:flex;align-items:center;gap:34px;}
  .hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
  .hamburger span{width:24px;height:1.5px;background:var(--white);display:block;transition:.3s;}

  .mobile-menu{
    position:fixed;inset:0;
    background:var(--navy-deep);
    z-index:1100;
    display:flex;flex-direction:column;
    padding:28px 26px;
    transform:translateX(100%);
    transition:transform .45s cubic-bezier(.4,0,.2,1);
  }
  .mobile-menu.open{transform:translateX(0);}
  .mobile-menu-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:60px;}
  .mobile-menu nav{display:flex;flex-direction:column;gap:0;}
  .mobile-menu nav a{
    color:var(--white);font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:500;
    padding:18px 0;border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .mobile-menu .btn{margin-top:36px;width:100%;}
  .close-btn{background:none;border:none;color:var(--white);font-size:28px;cursor:pointer;line-height:1;}

  @media(max-width:920px){
    nav.primary-nav, header .cta-desktop{display:none;}
    .hamburger{display:flex;}
  }

  /* ===== HERO ===== */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    background:
      radial-gradient(ellipse 900px 600px at 82% 18%, rgba(169,129,46,0.14), transparent 60%),
      linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 60%, var(--navy-soft) 100%);
    overflow:hidden;
    padding-top:120px;
  }
  .hero-bg-lines{
    position:absolute;inset:0;pointer-events:none;opacity:0.5;
  }
  .hero .wrap{
    display:grid;
    grid-template-columns:1.05fr 0.85fr;
    gap:60px;
    align-items:center;
    position:relative;
    z-index:2;
  }
  .hero-eyebrow{color:var(--gold-light);}
  .hero-eyebrow::before{background:var(--gold-light);}
  .hero h1{
    color:var(--white);
    font-size:clamp(40px,5.2vw,64px);
    margin-top:22px;
    line-height:1.08;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--gold-light);
  }
  .hero p.lead{
    color:rgba(255,255,255,0.72);
    font-size:17.5px;
    line-height:1.75;
    margin-top:26px;
    max-width:480px;
  }
  .hero-actions{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap;}
  .hero-meta{
    margin-top:56px;
    padding-top:26px;
    border-top:1px solid rgba(255,255,255,0.14);
    color:rgba(255,255,255,0.75);
    font-size:14.5px;
    line-height:1.9;
  }
  .hero-meta strong{color:var(--white);font-weight:600;display:block;font-size:16px;margin-bottom:2px;font-family:'Cormorant Garamond',serif;letter-spacing:0.02em;}

  .hero-visual{
    position:relative;
    display:flex;align-items:center;justify-content:center;
  }
  .hero-emblem-frame{
    position:relative;
    width:100%;
    max-width:420px;
    aspect-ratio: 4/5;
    border:1px solid var(--line);
    padding:22px;
  }
  .hero-emblem-frame::before,.hero-emblem-frame::after{
    content:"";position:absolute;width:34px;height:34px;
    border:1px solid var(--gold-light);
  }
  .hero-emblem-frame::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
  .hero-emblem-frame::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
  .hero-emblem-inner{
    width:100%;height:100%;
    background:linear-gradient(200deg, rgba(255,255,255,0.04), rgba(169,129,46,0.06));
    display:flex;align-items:center;justify-content:center;
    position:relative;
  }

  @media(max-width:920px){
    .hero .wrap{grid-template-columns:1fr;}
    .hero-visual{order:-1;max-width:280px;margin:0 auto 8px;}
    .hero{padding-top:110px;text-align:left;}
  }

  /* thin gold divider used between sections */
  .divider{
    width:100%;height:1px;
    background:linear-gradient(90deg, transparent, var(--line) 50%, transparent);
  }

  /* ===== ABOUT ===== */
  .about{background:var(--white);}
  .about-grid{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:70px;
    align-items:flex-start;
  }
  .about-copy p{
    color:var(--gray);
    font-size:16.5px;
    line-height:1.85;
    margin-bottom:18px;
  }
  .about-stats{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    margin-top:10px;
  }
  .about-stats div{
    background:var(--ivory);
    padding:26px 24px;
  }
  .about-stats h4{
    font-size:15px;color:var(--navy);letter-spacing:0.03em;margin-bottom:8px;
    font-family:'Inter',sans-serif;font-weight:600;text-transform:uppercase;font-size:12.5px;color:var(--gold);
  }
  .about-stats p{color:var(--gray);font-size:14.5px;line-height:1.6;}

  @media(max-width:860px){
    .about-grid{grid-template-columns:1fr;gap:36px;}
    .about-stats{grid-template-columns:1fr;}
  }

  /* ===== PRACTICE AREAS ===== */
  .practice{background:var(--ivory);}
  .practice-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .practice-card{
    background:var(--white);
    padding:44px 36px;
    transition:background .35s;
  }
  .practice-card:hover{background:var(--ivory);}
  .practice-card .icon{
    width:44px;height:44px;
    margin-bottom:26px;
    color:var(--gold);
  }
  .practice-card h3{
    font-size:22px;
    margin-bottom:12px;
    color:var(--navy);
  }
  .practice-card p{
    color:var(--gray);
    font-size:14.8px;
    line-height:1.7;
  }
  @media(max-width:920px){
    .practice-grid{grid-template-columns:1fr 1fr;}
  }
  @media(max-width:600px){
    .practice-grid{grid-template-columns:1fr;}
    .practice-card{padding:36px 26px;}
  }

  /* ===== ATTORNEY ===== */
  .attorney{background:var(--white);}
  .attorney-grid{
    display:grid;
    grid-template-columns:0.75fr 1.25fr;
    gap:70px;
    align-items:center;
  }
  .attorney-portrait{
    position:relative;
    aspect-ratio:4/5;
    background:linear-gradient(155deg, var(--navy) 0%, var(--navy-soft) 100%);
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--line);
  }
  .attorney-portrait .monogram{
    font-family:'Cormorant Garamond',serif;
    font-size:96px;
    color:rgba(201,162,78,0.85);
    font-weight:500;
    letter-spacing:0.02em;
  }
  .attorney-portrait .tag{
    position:absolute;bottom:22px;left:22px;right:22px;
    color:rgba(255,255,255,0.55);
    font-size:11.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    border-top:1px solid rgba(255,255,255,0.15);
    padding-top:12px;
  }
  .attorney-copy h3{
    font-size:34px;margin-top:12px;
  }
  .attorney-copy .role{
    color:var(--gold);
    font-size:14px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    font-weight:600;
    margin-top:6px;
    display:block;
  }
  .attorney-copy p{
    color:var(--gray);
    font-size:16px;
    line-height:1.8;
    margin-top:22px;
  }
  .credential-note{
    margin-top:28px;
    padding:18px 20px;
    background:var(--ivory);
    border-left:2px solid var(--gold);
    font-size:13.5px;
    color:var(--gray);
    line-height:1.7;
  }
  @media(max-width:860px){
    .attorney-grid{grid-template-columns:1fr;gap:38px;}
    .attorney-portrait{max-width:280px;margin:0 auto;}
  }

  /* ===== WHY CHOOSE ===== */
  .why{background:var(--navy-deep);color:var(--white);position:relative;overflow:hidden;}
  .why::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(ellipse 700px 500px at 10% 90%, rgba(169,129,46,0.10), transparent 60%);
  }
  .why .section-head h2{color:var(--white);}
  .why .section-head p{color:rgba(255,255,255,0.62);}
  .why-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:rgba(255,255,255,0.10);
    position:relative;z-index:1;
  }
  .why-card{
    background:var(--navy-deep);
    padding:38px 30px;
  }
  .why-card .num{
    font-family:'Cormorant Garamond',serif;
    font-size:15px;
    color:var(--gold-light);
    letter-spacing:0.1em;
    margin-bottom:18px;
    display:block;
  }
  .why-card h4{
    color:var(--white);
    font-size:20px;
    font-weight:500;
    margin-bottom:10px;
  }
  .why-card p{
    color:rgba(255,255,255,0.58);
    font-size:14.3px;
    line-height:1.7;
  }
  @media(max-width:920px){.why-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:600px){.why-grid{grid-template-columns:1fr;}}

  /* ===== CONSULTATION CTA ===== */
  .cta-section{
    background:linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%);
    color:var(--white);
    text-align:center;
    position:relative;
  }
  .cta-section .eyebrow{justify-content:center;color:var(--gold-light);}
  .cta-section .eyebrow::before{background:var(--gold-light);}
  .cta-section h2{
    color:var(--white);
    font-size:clamp(32px,4.5vw,50px);
    margin:18px auto 0;
    max-width:640px;
  }
  .cta-section p{
    color:rgba(255,255,255,0.68);
    font-size:16.5px;
    max-width:520px;
    margin:20px auto 0;
    line-height:1.75;
  }
  .cta-actions{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:26px;
    margin-top:38px;
    flex-wrap:wrap;
  }
  .cta-phone{
    color:var(--gold-light);
    font-family:'Cormorant Garamond',serif;
    font-size:22px;
    letter-spacing:0.03em;
    border-bottom:1px solid rgba(201,162,78,0.4);
    padding-bottom:2px;
  }

  /* ===== CONTACT ===== */
  .contact{background:var(--ivory);}
  .contact-grid{
    display:grid;
    grid-template-columns:0.8fr 1.2fr;
    gap:70px;
  }
  .contact-info h4{
    font-family:'Inter',sans-serif;
    text-transform:uppercase;
    font-size:12.5px;
    letter-spacing:0.08em;
    color:var(--gold);
    font-weight:600;
    margin-bottom:14px;
  }
  .contact-info .who{
    font-family:'Cormorant Garamond',serif;
    font-size:24px;
    color:var(--navy);
    margin-bottom:4px;
  }
  .contact-info .detail{color:var(--gray);font-size:15px;line-height:1.9;margin-bottom:26px;}
  .contact-info .detail a{color:var(--navy);font-weight:600;border-bottom:1px solid var(--line);}
  .office-hours{
    margin-top:10px;
    padding-top:22px;
    border-top:1px solid var(--line);
    font-size:14px;
    color:var(--gray);
    line-height:2;
  }
  .office-hours span{color:var(--navy);font-weight:600;}

  form.inquiry{
    background:var(--white);
    border:1px solid var(--line);
    padding:44px;
  }
  .form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
  }
  .field{margin-bottom:22px;}
  .field label{
    display:block;
    font-size:12.5px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--navy);
    font-weight:600;
    margin-bottom:9px;
  }
  .field input, .field select, .field textarea{
    width:100%;
    padding:13px 15px;
    border:1px solid rgba(15,30,56,0.18);
    background:var(--white);
    font-family:'Inter',sans-serif;
    font-size:15px;
    color:var(--ink);
    border-radius:var(--radius);
    transition:border-color .25s;
  }
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:none;
    border-color:var(--gold);
  }
  .field textarea{resize:vertical;min-height:120px;}
  form.inquiry .btn{width:100%;margin-top:6px;}
  .form-notice{
    margin-top:20px;
    font-size:12.8px;
    line-height:1.7;
    color:var(--gray);
    padding-top:18px;
    border-top:1px solid var(--line);
  }
  .form-success{
    display:none;
    text-align:center;
    padding:50px 20px;
  }
  .form-success.show{display:block;}
  .form-success h3{font-size:26px;margin-bottom:10px;}
  .form-success p{color:var(--gray);font-size:15px;}

  @media(max-width:860px){
    .contact-grid{grid-template-columns:1fr;gap:40px;}
    form.inquiry{padding:30px 24px;}
    .form-row{grid-template-columns:1fr;}
  }

  /* ===== FOOTER ===== */
  footer{
    background:var(--navy-deep);
    color:rgba(255,255,255,0.55);
    padding:70px 0 34px;
  }
  .footer-top{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr;
    gap:50px;
    padding-bottom:44px;
    border-bottom:1px solid rgba(255,255,255,0.10);
  }
  .footer-brand{
    display:flex;align-items:center;gap:15px;
    margin-bottom:20px;
  }
  .footer-brand .mark{width:50px;height:50px;flex-shrink:0;}
  .footer-brand .brand-text{display:flex;flex-direction:column;line-height:1;}
  .footer-brand .brand-text .label-top{
    font-family:'Inter',sans-serif;
    font-size:9px;
    letter-spacing:0.24em;
    font-weight:600;
    text-transform:uppercase;
    color:rgba(255,255,255,0.4);
    margin-bottom:5px;
  }
  .footer-brand .brand-text .name{
    font-family:'Cormorant Garamond',serif;
    font-size:21px;
    letter-spacing:0.025em;
    font-weight:700;
    color:var(--white);
    text-transform:uppercase;
    white-space:nowrap;
  }
  .footer-brand .brand-text .label-bottom{
    font-family:'Inter',sans-serif;
    font-size:8.5px;
    letter-spacing:0.1em;
    font-weight:500;
    text-transform:uppercase;
    color:var(--gold-light);
    margin-top:5px;
    white-space:nowrap;
  }
  .footer-col h5{
    color:var(--white);
    font-size:13px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    margin-bottom:18px;
    font-weight:600;
    font-family:'Inter',sans-serif;
  }
  .footer-col a, .footer-col p{
    display:block;
    font-size:14.5px;
    line-height:2;
    color:rgba(255,255,255,0.55);
  }
  .footer-col a:hover{color:var(--gold-light);}
  .footer-disclaimer{
    padding-top:34px;
    font-size:12.5px;
    line-height:1.85;
    color:rgba(255,255,255,0.42);
    max-width:900px;
  }
  .footer-bottom{
    display:flex;justify-content:space-between;align-items:center;
    margin-top:30px;
    font-size:12.8px;
    color:rgba(255,255,255,0.4);
    flex-wrap:wrap;
    gap:14px;
  }
  @media(max-width:768px){
    .footer-top{grid-template-columns:1fr;gap:32px;}
  }

  ::selection{background:var(--gold-light);color:var(--navy-deep);}

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important;transition:none !important;scroll-behavior:auto !important;}
  }

  .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}
