:root{
    --navy: #16232E;
    --navy-deep: #0D161E;
    --navy-soft: #1E2E3B;
    --gold: #C9A227;
    --gold-soft: #E4C878;
    --cream: #F1ECE2;
    --cream-dim: #E8E0D0;
    --ink: #202B33;
    --muted: #8C8271;
    --muted-onnavy: #9AA7AE;
    --rule: rgba(201,162,39,0.35);
    --serif-display: "Playfair Display", "Iowan Old Style", "Georgia", serif;
    --serif-italic: "Cormorant Garamond", "Georgia", serif;
    --serif-body: "Lora", "Iowan Old Style", Georgia, serif;
  }

  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;overflow-x:hidden;width:100%;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:var(--serif-body);
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;}
  h1,h2,h3{
    font-family:var(--serif-display);
    font-weight:700;
    margin:0;
    text-wrap:balance;
  }
  .italic{font-family:var(--serif-italic);font-style:italic;font-weight:500;}
  .eyebrow{
    font-family:var(--serif-body);
    font-size:0.72rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:600;
  }
  .wrap{
    max-width:1080px;
    margin:0 auto;
    padding-inline:24px;
  }
  section{position:relative;}
  .section-pad{padding-block:96px;}
  @media (max-width:640px){
    .section-pad{padding-block:64px;}
  }

  /* ---------- decorative seal watermark ---------- */
  .motif{position:absolute;pointer-events:none;opacity:0.14;}
  .motif img{display:block;width:100%;height:100%;}
  .motif.navy-tint{opacity:0.1;}

  .seal-divider{
    display:flex;justify-content:center;padding-block:8px 0;
  }
  .seal-divider img{width:104px;height:104px;opacity:0.92;}

  /* ---------- nav ---------- */
  nav{
    position:sticky;top:0;z-index:40;
    background:rgba(13,22,30,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(201,162,39,0.25);
  }
  .nav-inner{
    max-width:1080px;margin:0 auto;padding-inline:24px;
    display:flex;align-items:center;justify-content:space-between;
    height:64px;
  }
  .nav-logo img{height:26px;width:auto;}
  .nav-links{
    display:flex;align-items:center;gap:32px;
    font-size:0.82rem;letter-spacing:0.12em;text-transform:uppercase;
    color:var(--muted-onnavy);
  }
  .nav-links a{text-decoration:none;transition:color .2s ease;}
  .nav-links a:hover, .nav-links a:focus-visible{color:var(--gold-soft);}
  .btn{
    display:inline-block;
    font-family:var(--serif-body);
    font-size:0.78rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    text-decoration:none;
    padding:11px 22px;
    border:1px solid var(--gold);
    color:var(--gold-soft);
    border-radius:2px;
    transition:background .2s ease, color .2s ease;
    white-space:nowrap;
  }
  .btn:hover, .btn:focus-visible{background:var(--gold);color:var(--navy-deep);}
  .btn-solid{background:var(--gold);color:var(--navy-deep);}
  .btn-solid:hover{background:var(--gold-soft);color:var(--navy-deep);}
  .show-mobile-only{display:none;}
  @media (max-width:640px){
    .nav-links a.hide-mobile{display:none;}
    .nav-links{gap:10px;}
    .btn-review{padding:8px 10px;font-size:0.68rem;letter-spacing:0.06em;}
    .btn-review .hide-mobile{display:none;}
    .btn-review .show-mobile-only{display:inline;}
  }
  @media (max-width:380px){
    .nav-inner{padding-inline:14px;}
    .nav-logo img{height:20px;}
    .btn-review{padding:7px 8px;font-size:0.62rem;}
    .btn{padding:9px 12px;font-size:0.7rem;}
  }

  /* ---------- hero ---------- */
  .hero{
    background:radial-gradient(ellipse at 78% 18%, var(--navy-soft), var(--navy) 55%, var(--navy-deep) 100%);
    color:var(--cream);
    padding-block:120px 108px;
    overflow:hidden;
  }
  .hero .motif{
    top:-8%; right:-10%;
    width:640px; height:640px;
  }
  .hero-inner{
    max-width:1080px;margin:0 auto;padding-inline:24px;
    position:relative;
  }
  .hero-eyebrow{margin-bottom:22px;}
  .hero h1{
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    letter-spacing:0.01em;
    color:var(--cream);
  }
  .hero-sub{
    margin-top:22px;
    max-width:560px;
    font-size:1.28rem;
    color:var(--gold-soft);
    line-height:1.5;
  }
  .hero-desc{
    margin-top:20px;
    max-width:520px;
    color:var(--muted-onnavy);
    font-size:1.02rem;
  }
  .hero-cta{
    margin-top:44px;
    display:flex;gap:18px;flex-wrap:wrap;align-items:center;
  }
  .hero-phone{
    font-size:0.9rem;letter-spacing:0.06em;color:var(--muted-onnavy);
    text-decoration:none;border-bottom:1px solid rgba(201,162,39,0.4);
    padding-bottom:2px;
  }
  .hero-phone:hover{color:var(--gold-soft);}

  /* ---------- section headers ---------- */
  .section-head{max-width:640px;margin-bottom:56px;}
  .section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-top:14px;}
  .on-navy .section-head h2{color:var(--cream);}
  .section-head p{margin-top:16px;color:var(--muted);font-size:1.05rem;max-width:520px;}
  .on-navy .section-head p{color:var(--muted-onnavy);}

  .rule{
    width:64px;height:1px;background:var(--gold);
    border:none;margin:0;
  }

  /* ---------- duo ---------- */
  .duo-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:48px;
  }
  @media (max-width:720px){.duo-grid{grid-template-columns:1fr;}}
  .player{
    background:var(--cream-dim);
    border:1px solid rgba(32,43,51,0.08);
    border-top:2px solid var(--gold);
    overflow:hidden;
  }
  .player .photo{
    aspect-ratio:4/5;overflow:hidden;background:var(--navy);
  }
  .player .photo img{
    width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;
  }
  .player .body{padding:28px 32px 32px;}
  .player h3{font-size:1.5rem;}
  .player .role{
    display:block;margin-top:4px;margin-bottom:18px;
    font-size:0.75rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);
  }
  .player p{font-size:0.98rem;color:var(--ink);}

  /* ---------- live gallery ---------- */
  .live{
    background:var(--navy-deep);
  }
  .live-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:2px;
  }
  @media (max-width:640px){.live-grid{grid-template-columns:1fr;}}
  .live-grid .frame{
    aspect-ratio:3/4;overflow:hidden;
  }
  .live-grid img{
    width:100%;height:100%;object-fit:cover;display:block;
    filter:saturate(0.96);
  }
  .live-credit{
    text-align:center;margin-top:18px;
    font-size:0.72rem;letter-spacing:0.08em;color:var(--muted-onnavy);
  }

  /* ---------- faq ---------- */
  .faq-list{
    margin-top:40px;border-top:1px solid rgba(32,43,51,0.14);
  }
  .faq-item{
    border-bottom:1px solid rgba(32,43,51,0.14);
    padding:22px 0;
  }
  .faq-item summary{
    cursor:pointer;list-style:none;
    display:flex;justify-content:space-between;align-items:center;gap:20px;
    font-family:var(--serif-display);font-size:1.1rem;color:var(--ink);
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{
    content:'+';flex-shrink:0;color:var(--gold);font-size:1.4rem;line-height:1;
  }
  .faq-item[open] summary::after{content:'\2212';}
  .faq-item p{
    margin-top:14px;color:var(--muted);font-size:0.98rem;max-width:640px;
  }

  /* ---------- sound ---------- */
  .sound{
    background:var(--navy-deep);color:var(--cream);
    overflow:hidden;
  }
  .sound .motif{
    bottom:-15%; left:-12%; width:520px;height:520px;
  }
  .sound-inner{
    position:relative;
    max-width:680px;
  }
  .sound-inner p{font-size:1.15rem;color:var(--muted-onnavy);margin-top:4px;}
  .sound-inner p + p{margin-top:18px;}
  .sound-inner strong{color:var(--gold-soft);font-weight:600;}

  /* ---------- services ---------- */
  .services-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:rgba(32,43,51,0.12);
    border:1px solid rgba(32,43,51,0.12);
  }
  @media (max-width:720px){.services-grid{grid-template-columns:1fr;}}
  .service{
    background:var(--cream);
    padding:34px 30px;
  }
  .service .num{
    font-family:var(--serif-italic);font-style:italic;color:var(--gold);font-size:1.1rem;
  }
  .service h3{font-size:1.2rem;margin-top:10px;}
  .service p{font-size:0.96rem;color:var(--muted);margin-top:10px;}
  .booking-line{
    margin-top:52px;
    text-align:center;
    font-family:var(--serif-italic);font-style:italic;font-size:1.3rem;
    color:var(--ink);
  }

  /* ---------- contact ---------- */
  .contact{
    background:var(--navy);color:var(--cream);
  }
  .contact-grid{
    display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:start;
  }
  @media (max-width:720px){.contact-grid{grid-template-columns:minmax(0,1fr);gap:40px;}.contact-card{padding:26px 20px;}.contact-row a{overflow-wrap:anywhere;max-width:100%;}}
  .contact h2{font-size:clamp(1.9rem,3.4vw,2.6rem);color:var(--cream);}
  .contact-lead{margin-top:18px;color:var(--muted-onnavy);font-size:1.05rem;max-width:440px;}
  .contact-card{
    border:1px solid rgba(201,162,39,0.3);
    padding:32px;
  }
  .contact-card .who{font-size:1.2rem;font-family:var(--serif-display);color:var(--cream);}
  .contact-card .what{
    display:block;margin-top:2px;margin-bottom:22px;
    font-size:0.74rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);
  }
  .contact-row{
    display:flex;flex-direction:column;gap:14px;
  }
  .contact-row a{
    text-decoration:none;font-size:1.05rem;color:var(--cream);
    border-bottom:1px solid rgba(201,162,39,0.3);
    padding-bottom:6px;width:fit-content;
    transition:color .2s ease, border-color .2s ease;
  }
  .contact-row a:hover{color:var(--gold-soft);border-color:var(--gold-soft);}
  .contact-row .label{
    font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted-onnavy);
    margin-bottom:-8px;display:block;
  }
  .contact-note{margin-top:22px;font-size:0.9rem;color:var(--muted-onnavy);}
  .review-link{
    display:inline-block;margin-top:14px;
    font-size:0.9rem;color:var(--gold-soft);text-decoration:none;
    border-bottom:1px solid rgba(228,200,120,0.4);padding-bottom:3px;
    transition:color .2s ease, border-color .2s ease;
  }
  .review-link:hover{color:var(--cream);border-color:var(--cream);}

  /* ---------- copy toast ---------- */
  #copy-toast{
    position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);
    background:var(--navy-deep);color:var(--cream);
    border:1px solid var(--gold);
    padding:12px 22px;border-radius:2px;
    font-family:var(--serif-body);font-size:0.88rem;letter-spacing:0.02em;
    box-shadow:0 8px 24px rgba(0,0,0,0.35);
    opacity:0;pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
    z-index:100;
    bottom:calc(28px + env(safe-area-inset-bottom,0px));
  }
  #copy-toast.show{opacity:1;transform:translate(-50%,0);}
  #copy-toast strong{color:var(--gold-soft);}

  /* ---------- footer ---------- */
  footer{
    background:var(--navy-deep);color:var(--muted-onnavy);
    padding-block:40px;
    border-top:1px solid rgba(201,162,39,0.18);
  }
  .footer-inner{
    max-width:1080px;margin:0 auto;padding-inline:24px;
    display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  }
  .footer-inner img{height:20px;width:auto;opacity:0.85;}
  .social-links{display:flex;gap:22px;flex-wrap:wrap;}
  .footer-social{display:flex;gap:20px;flex-wrap:wrap;}
  .footer-social a{color:var(--muted-onnavy);text-decoration:none;font-size:0.8rem;letter-spacing:0.04em;border-bottom:1px solid transparent;padding-bottom:2px;transition:color .2s ease,border-color .2s ease;}
  .footer-social a:hover,.footer-social a:focus-visible{color:var(--gold-soft);border-color:var(--gold-soft);}
  .footer-meta{font-size:0.8rem;letter-spacing:0.04em;text-align:right;}
  .footer-meta .tagline{display:block;font-family:var(--serif-italic);font-style:italic;color:var(--gold-soft);font-size:0.92rem;margin-bottom:2px;}

.letter{background:var(--navy);color:var(--cream);text-align:center}
.letter .wrap{max-width:640px;margin:0 auto}
.letter .eyebrow{font-family:var(--serif-body);letter-spacing:.22em;font-size:.78rem;color:var(--gold-soft);text-transform:uppercase}
.letter h2{font-family:var(--serif-display);color:var(--gold);font-size:clamp(1.8rem,4vw,2.6rem);margin:.4em 0 .3em}
.letter p.lede{font-family:var(--serif-italic);font-style:italic;font-size:1.25rem;color:var(--cream);margin:0 auto 1.4em;max-width:34ch}
.letter form{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.letter input{flex:1 1 170px;min-width:0;padding:14px 16px;border:1px solid var(--rule);background:var(--navy-deep);color:var(--cream);font-family:var(--serif-body);font-size:1rem;border-radius:2px}
.letter input::placeholder{color:var(--muted-onnavy)}
.letter input:focus{outline:2px solid var(--gold);outline-offset:1px}
.letter button{flex:0 0 auto;padding:14px 26px;border:0;background:var(--gold);color:var(--navy-deep);font-family:var(--serif-body);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.85rem;cursor:pointer;border-radius:2px}
.letter button:hover{background:var(--gold-soft)}
.letter .fine{font-family:var(--serif-body);font-size:.8rem;color:var(--muted-onnavy);margin-top:14px}
.letter .thanks{display:none;font-family:var(--serif-italic);font-style:italic;font-size:1.3rem;color:var(--gold-soft)}
.inline-link{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:3px}
.inline-link:hover{color:var(--gold);}

.catering-card{max-width:880px;margin:40px auto 8px;background:var(--navy);border:1px solid var(--gold);outline:1px solid var(--rule);outline-offset:-10px;padding:40px 44px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;color:var(--cream)}
.catering-card .eyebrow{font-family:var(--serif-body);letter-spacing:.22em;font-size:.74rem;color:var(--gold-soft);text-transform:uppercase;margin:0 0 8px}
.catering-card h3{font-family:var(--serif-display);color:var(--gold);font-size:clamp(1.5rem,3vw,2rem);margin:0 0 10px;line-height:1.15}
.catering-card p{font-family:var(--serif-body);color:var(--cream);margin:0;line-height:1.6}
.catering-card p em{font-family:var(--serif-italic);font-size:1.12em;color:var(--gold-soft)}
.catering-card .btn{white-space:nowrap;padding:14px 24px;font-size:.8rem}
@media (max-width:700px){.catering-card{grid-template-columns:minmax(0,1fr);padding:32px 22px;margin:32px 0 8px;text-align:center}.catering-card>*{min-width:0}.catering-card .btn{justify-self:stretch;white-space:normal;text-align:center;line-height:1.4}}

.live-weekly{padding:56px 20px;background:var(--cream-dim);text-align:center}
.live-weekly .card{max-width:760px;margin:0 auto;background:var(--cream);border:1px solid var(--gold);outline:1px solid var(--rule);outline-offset:-10px;padding:40px 36px}
.live-weekly .eyebrow{font-family:var(--serif-body);letter-spacing:.22em;font-size:.76rem;color:var(--gold);text-transform:uppercase;margin:0 0 10px}
.live-weekly h2{font-family:var(--serif-display);color:var(--ink);font-size:clamp(1.7rem,4vw,2.4rem);margin:0 0 6px}
.live-weekly .when{font-family:var(--serif-display);color:var(--gold);font-size:clamp(1.2rem,3vw,1.5rem);margin:0 0 14px;letter-spacing:.04em}
.live-weekly .where{font-family:var(--serif-body);color:var(--ink);font-size:1.05rem;line-height:1.6;margin:0 0 22px}
.live-weekly .where em{font-family:var(--serif-italic);font-size:1.15em}
.live-weekly .note{font-family:var(--serif-italic);font-style:italic;color:var(--muted);font-size:1.05rem;margin:18px 0 0}
.live-weekly .note a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}

/* ---------- added: subpages ---------- */
.hero{position:relative;}
html,body{overflow-x:clip;}
.nav-logo img{height:26px;width:auto;}
.page-hero{background:radial-gradient(ellipse at 78% 18%, var(--navy-soft), var(--navy) 55%, var(--navy-deep) 100%);color:var(--cream);padding-block:88px 80px;overflow:hidden;position:relative;}
.page-hero .motif{top:-20%;right:-12%;width:520px;height:520px;}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);color:var(--cream);max-width:760px;}
.page-hero .hero-sub{margin-top:18px;}
.crumbs{font-size:.78rem;letter-spacing:.08em;color:var(--muted-onnavy);margin-bottom:22px;}
.crumbs a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(228,200,120,.35);}
.prose{max-width:700px;}
.prose h2{font-size:clamp(1.6rem,3vw,2.1rem);margin:56px 0 14px;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-size:1.2rem;margin:28px 0 8px;}
.prose p{margin:0 0 16px;font-size:1.04rem;}
.prose ul{margin:0 0 18px;padding-left:1.2em;}
.prose li{margin-bottom:8px;}
.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:3px;}
.prose a:hover{color:var(--gold);}
.split{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:56px;align-items:start;}
@media (max-width:820px){.split{grid-template-columns:minmax(0,1fr);gap:36px;}}
.side-photo{border-top:2px solid var(--gold);background:var(--navy);}
.side-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;}
.side-photo figcaption{font-size:.78rem;color:var(--muted);padding:10px 2px;background:var(--cream);}
.songs{columns:2;column-gap:32px;list-style:none;padding:0!important;margin:0 0 18px;}
.songs li{break-inside:avoid;font-family:var(--serif-italic);font-style:italic;font-size:1.12rem;}
@media (max-width:520px){.songs{columns:1;}}
.cta-band{background:var(--navy);color:var(--cream);text-align:center;}
.cta-band h2{color:var(--cream);font-size:clamp(1.7rem,3.4vw,2.4rem);}
.cta-band p{color:var(--muted-onnavy);max-width:520px;margin:14px auto 30px;font-size:1.05rem;}
.cta-band .hero-cta{justify-content:center;margin-top:0;}
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:rgba(32,43,51,.12);border:1px solid rgba(32,43,51,.12);margin-top:28px;}
.related a{display:block;background:var(--cream);padding:22px 22px;text-decoration:none;transition:background .2s ease;}
.related a:hover{background:var(--cream-dim);}
.related .t{font-family:var(--serif-display);font-size:1.08rem;font-weight:700;display:block;}
.related .d{font-size:.9rem;color:var(--muted);display:block;margin-top:4px;}
.service a.more{display:inline-block;margin-top:12px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);}
.footer-areas{max-width:1080px;margin:0 auto 22px;padding-inline:24px;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.8rem;}
.footer-areas a{color:var(--muted-onnavy);text-decoration:none;border-bottom:1px solid transparent;}
.footer-areas a:hover{color:var(--gold-soft);border-color:var(--gold-soft);}

.review-qr{display:flex;align-items:center;gap:14px;margin-top:16px;text-decoration:none;color:var(--muted-onnavy,#9AA7AE);font-size:.9rem;line-height:1.35;}
.review-qr img{width:140px;height:140px;border-radius:6px;background:#F1ECE2;flex:none;}
.review-qr:hover span{color:var(--gold,#C9A227);}
@media (max-width:600px){.review-qr{display:none;}}

.gala-title{text-align:center;margin:0 0 14px;font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold,#C9A227);}
.gala-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;}
.gala-grid .frame{aspect-ratio:4/3;overflow:hidden;}
.gala-grid img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(0.96);}
@media (max-width:800px){.gala-grid{grid-template-columns:1fr 1fr;}}
.letter .thanks[hidden],.letter .letter-err[hidden]{display:none}
.letter .thanks:not([hidden]){display:block;outline:none}
.letter .letter-err{font-family:var(--serif-body);font-size:.95rem;color:var(--cream);background:rgba(0,0,0,.25);border-left:3px solid var(--gold);padding:10px 14px;margin:14px auto 0;max-width:36rem;text-align:left}
.letter .letter-err a{color:var(--gold-soft)}
.letter button[disabled]{opacity:.7;cursor:wait}
.letter-perks{list-style:none;padding:0;margin:0 auto 1.6em;max-width:30rem;text-align:left;font-family:var(--serif-body);color:var(--cream)}
.letter-perks li{padding:8px 0 8px 26px;position:relative;border-bottom:1px solid rgba(255,255,255,.08)}
.letter-perks li:before{content:"\2726";position:absolute;left:0;color:var(--gold)}
.letter form[hidden]{display:none}

.live-weekly .gigs{margin:30px auto 0;max-width:34rem;text-align:left;border-top:1px solid var(--rule);padding-top:22px}
.live-weekly .gigs h3{font-family:var(--serif-body);letter-spacing:.2em;text-transform:uppercase;font-size:.76rem;color:var(--gold);text-align:center;margin:0 0 12px}
.live-weekly .gigs ul{list-style:none;margin:0;padding:0}
.live-weekly .gigs li{display:grid;grid-template-columns:7.2em 6.4em 1fr;gap:4px 10px;padding:9px 0;border-bottom:1px solid var(--rule);font-family:var(--serif-body);color:var(--ink);font-size:1rem}
.live-weekly .gigs .g-date{font-weight:600}
.live-weekly .gigs .g-time{color:var(--muted)}
.live-weekly .gigs em{font-family:var(--serif-italic);color:var(--muted)}
@media (max-width:560px){.live-weekly .gigs li{grid-template-columns:auto 1fr}.live-weekly .gigs .g-where{grid-column:1/-1}}
