
:root{
  --blue:#1f4e79;
  --blue-600:#1a3f61;
  --blue-700:#0f2b40;
  --tan:#d9c4a5;
  --tan-100:#f7f3ea;
  --tan-200:#efe6d7;
  --tan-300:#e8dcc8;
  --ink:#1a1a1a;
  --muted:#667085;
  --bg:#fffdf8;
  --surface:#ffffff;
  --shadow: 0 10px 30px rgba(0,0,0,.06);
  --ring: 0 0 0 4px rgba(31, 78, 121, .25);
}
.theme-night{
  --bg:#0f151a; --surface:#141b22; --ink:#e8edf2; --muted:#a8b3bd; --tan-200:#18222b; --tan-300:#1c2730; --shadow: 0 20px 40px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
html:focus-within{scroll-behavior:smooth}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue)}a:hover{color:var(--blue-600)}
a.btn, .btn{display:inline-flex;gap:.5rem;align-items:center;background:var(--blue);color:#fff;text-decoration:none;border-radius:.75rem;padding:.85rem 1.2rem;font-weight:600;box-shadow:0 8px 20px rgba(31,78,121,.15)}
.btn:hover{background:var(--blue-600)}.btn.ghost{background:transparent;color:var(--blue);border:2px solid var(--blue)}.btn.small{padding:.55rem .8rem;border-radius:.6rem}
.wrap{max-width:1180px;margin:0 auto;padding:0 1.2rem}
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.skip:focus{left:1rem;top:1rem;width:auto;height:auto;padding:.5rem 1rem;background:var(--surface);border-radius:.5rem;box-shadow:var(--ring)}

.site-header{position:sticky;top:0;z-index:50;background:rgba(255,253,248,.85);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--tan-300)}
.theme-night .site-header{background:rgba(20,27,34,.75);border-color:#1f2a33}
.site-header .wrap{display:flex;align-items:center;gap:1rem;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;color:var(--ink);text-decoration:none;font-family:'Playfair Display',serif}
#site-nav{display:flex;gap:1rem;align-items:center}
#site-nav a{text-decoration:none;color:var(--ink);font-weight:600}
#site-nav a:hover{color:var(--blue)}
.header-right{display:flex;align-items:center;gap:.75rem}
.email-link{font-weight:600;color:var(--blue-700);text-decoration:none}
.email-link:hover{text-decoration:underline}
.nav-toggle{display:none}
.nav-btn{display:none;cursor:pointer;padding:.5rem}
.nav-btn span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.2s}
@media (max-width:940px){
  #site-nav{position:absolute;inset:68px 0 auto 0;background:var(--surface);border-bottom:1px solid var(--tan-300);display:none;flex-direction:column;padding:1rem 1.2rem}
  .nav-btn{display:block}
  .nav-toggle:checked ~ .nav-btn + #site-nav{display:flex}
  .email-link{display:none}
}

.hero{position:relative;padding:4.5rem 0 2.2rem;background:linear-gradient(180deg, var(--tan-200), transparent)}
.theme-night .hero{background:linear-gradient(180deg, #111821, transparent)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}
.hero h1{font-family:'Playfair Display',serif;font-size:clamp(2.2rem, 2.5vw + 1rem, 3.6rem);line-height:1.05;margin:.2rem 0 1rem}
.hero p{font-size:1.12rem;max-width:48ch;color:var(--muted)}
.hero .badges{display:flex;gap:.75rem;flex-wrap:wrap;padding:0;margin:1rem 0 0;list-style:none}
.hero .badges li{background:var(--surface);border:1px solid var(--tan-300);padding:.4rem .7rem;border-radius:999px;font-weight:600;color:var(--blue-600)}
.hero-card{border-radius:1rem;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.12), 0 10px 20px rgba(0,0,0,.06)}
.hero .divider{height:24px;background:linear-gradient(180deg, transparent, rgba(0,0,0,.04));margin-top:2rem}
.section{padding:3.2rem 0}
.section.alt{background:var(--surface);position:relative}
.section-head h2{font-family:'Playfair Display',serif;font-size:clamp(1.6rem,1.2vw+1rem,2.2rem);margin:0 0 .3rem}
.section-head p{color:var(--muted);margin:.2rem 0 0}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media(max-width:900px){.grid-3{grid-template-columns:1fr}}
.card{border:1px solid var(--tan-300);border-radius:1rem;padding:1.2rem;background:var(--surface);box-shadow:var(--shadow)}

.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media(max-width:900px){.pricing{grid-template-columns:1fr}}
.price-card .price{font-weight:800;font-size:1.05rem;color:var(--blue-700)}
.price-card .tag{display:inline-block;background:var(--tan);color:var(--blue-700);padding:.2rem .6rem;border-radius:.4rem;margin:.2rem 0 .8rem;font-weight:700}
.price-card.featured{border-width:2px;transform:translateY(-3px);}

.fine{font-size:.92rem;color:var(--muted)}

.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
@media(max-width:1000px){.team-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.team-grid{grid-template-columns:repeat(2,1fr)}}
.teammate{background:var(--surface);border:1px solid var(--tan-300);border-radius:1rem;overflow:hidden;box-shadow:var(--shadow);text-align:center}
.teammate h3{margin:.6rem 0 .1rem}
.teammate p{margin:0 0 .9rem;color:var(--muted);font-size:.95rem}
.teammate img{aspect-ratio: 3/4; object-fit: cover; width:100%}

.slider{position:relative;border-radius:1rem;border:1px solid var(--tan-300);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}
.slides{display:flex;transition:transform .45s ease}
.slides img{width:100%;flex:0 0 100%;object-fit:cover;aspect-ratio:16/9}
.slide-btn{position:absolute;top:50%;transform:translateY(-50%);border:none;background:rgba(0,0,0,.15);color:#fff;font-size:2rem;line-height:1;width:44px;height:44px;border-radius:999px;cursor:pointer;display:grid;place-items:center}
.slide-btn:hover{background:rgba(0,0,0,.25)}
.slide-btn.prev{left:.6rem}.slide-btn.next{right:.6rem}

.quote-slider .slides{align-items:center}
.quote{flex:0 0 100%;padding:2rem 1.2rem;text-align:center}
.quote blockquote{font-family:'Playfair Display',serif;font-size:1.35rem;line-height:1.4;margin:0 0 .6rem}
.quote figcaption{color:var(--muted)}

.about{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
@media(max-width:900px){.about{grid-template-columns:1fr}}

.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1.2rem}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.form .row{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.form .row.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:700px){.form .row.two{grid-template-columns:1fr}}
input, select, textarea{padding:.85rem;border:1px solid var(--tan-300);border-radius:.6rem;background:var(--surface);color:var(--ink);font:inherit}
input:focus,select:focus,textarea:focus{outline:none;box-shadow:var(--ring);border-color:var(--blue)}
.form-note{font-size:.95rem;color:var(--muted)}

.site-footer{border-top:1px solid var(--tan-300);padding:2rem 0;background:var(--tan-200)}
.theme-night .site-footer{background:#121820;border-color:#1b2630}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
.foot-brand{display:flex;align-items:center;gap:.6rem}
small, .copy{color:var(--muted)}


/* --- Team cards: hover/tap bios --- */
.teammate{position:relative;cursor:pointer;transition:transform .15s ease}
.teammate:hover{transform:translateY(-2px)}
.teammate .meta{padding:.6rem .8rem 1rem}
.teammate h3{margin:.4rem 0 .1rem}
.teammate p.role{margin:0;color:var(--muted);font-size:.95rem}
.teammate .bio{
  position:absolute;inset:auto .7rem .7rem .7rem;
  background:rgba(20,27,34,.9); color:#fff;
  border-radius:.8rem; padding:.9rem;
  opacity:0; transform:translateY(6px); transition:.2s ease;
  pointer-events:none; font-size:.95rem; line-height:1.4;
}
.theme-day .teammate .bio{background:rgba(0,0,0,.76)}
.teammate:hover .bio, .teammate.expanded .bio{opacity:1; transform:translateY(0); pointer-events:auto}
@media (hover:none){
  .teammate .bio{position:static; opacity:1; transform:none; background:transparent; color:var(--muted); padding:.4rem .8rem .9rem}
  .teammate{cursor:auto}
}
