
:root { --ink:#162c40; --muted:#4e5e69; --gold:#896437; --cream:#f6f0e5; --paper:#fdfbf7; --line:#dbd1c2; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:18px; }
body { margin:0; background:var(--paper); color:var(--ink); font:17px/1.55 Arial,Helvetica,sans-serif; overflow-wrap:anywhere; }
a { color:inherit; text-underline-offset:4px; }
button,input { font:inherit; }
button,summary { cursor:pointer; }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible { outline:3px solid #ae813f; outline-offset:4px; }
.wrap { width:min(1160px,calc(100% - 48px)); margin-inline:auto; }
h1,h2,h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; line-height:1.1; margin:0; }
h1 { font-size:clamp(44px,5.3vw,76px); letter-spacing:-.055em; }
h2 { font-size:clamp(30px,3.5vw,44px); letter-spacing:-.025em; }
h3 { font-size:24px; }
p { margin:0 0 14px; }
.eyebrow { color:var(--gold); font-size:16px; font-weight:700; margin-bottom:10px; }
.sr-only,.skip:not(:focus) { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
.skip:focus { position:fixed; z-index:10; inset:8px auto auto 8px; padding:12px; background:white; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:46px; padding:10px 18px; background:var(--ink); color:white; text-decoration:none; font-size:16px; font-weight:700; border-radius:4px; transition:background .16s ease; }
.button:hover { background:#29485f; }
.button.small { min-height:42px; }
.top { background:#fff; border-bottom:1px solid var(--line); }
.nav { display:flex; align-items:center; justify-content:space-between; gap:clamp(12px,2vw,24px); min-height:102px; }
.nav-links { flex:1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; font-size:17px; }
.nav-links a { display:grid; place-items:center; min-height:44px; padding-inline:2px; text-decoration:none; font-weight:600; }
.nav-links a:hover { text-decoration:underline; }
.logo-crop { display:block; position:relative; overflow:hidden; width:148px; height:96px; }
.logo-crop img { position:absolute; width:174px; height:174px; left:-12px; top:-37px; }
.hero { padding:28px 0 34px; background:linear-gradient(112deg,#faf7f0,#eee4d2); }
.hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:58px; align-items:center; }
.intro>.eyebrow { font-size:clamp(18px,2.05vw,20px); }
.lead { font-size:20px; max-width:36ch; margin:18px 0 16px; }
.zone { color:var(--muted); font-size:16px; }
.zone strong { color:var(--ink); }
.hero-actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:21px; }
.price-link { font-weight:700; font-size:17px; }
.portrait { margin:0; position:relative; }
.portrait-crop { aspect-ratio:1.02; overflow:hidden; background:#ddd5c8; }
.portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 3%; }
.portrait figcaption { display:flex; gap:4px 14px; flex-wrap:wrap; align-items:baseline; padding:10px 14px; background:#fff; border-left:3px solid #c7a474; }
.portrait figcaption span { color:var(--muted); font-size:16px; }
.pricing { background:var(--ink); color:#fff; padding:20px 0 16px; }
.price-strip { display:grid; grid-template-columns:1fr minmax(270px,1fr) auto; align-items:center; gap:28px; }
.price-title .eyebrow { color:#e9cfa8; margin-bottom:4px; }
.price-title h2 { font-size:28px; }
.price-control input { display:block; width:100%; margin:0 0 5px; min-height:24px; accent-color:#e0c097; }
.choices { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.choices button { min-height:39px; padding:4px 3px; font-size:16px; border:1px solid #81909d; border-radius:3px; background:transparent; color:white; }
.choices button[aria-pressed=true] { background:#e7c99e; color:var(--ink); border-color:#e7c99e; font-weight:700; }
.price-result { white-space:nowrap; }
.price-result output { font:42px/1 Georgia,serif; }
.price-result p { margin:5px 0 0; color:#e1e7ec; font-size:16px; }
.pricing-foot { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:2px 18px; margin-top:10px; }
.pricing-foot>p { font-size:16px; color:#e1e7ec; margin:0; }
.section { padding-block:52px; }
.service-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; margin-top:20px; }
.disclosure { border:1px solid var(--line); border-radius:6px; background:#fff; }
.disclosure>summary { list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 18px; min-height:48px; transition:background .16s ease; }
.disclosure>summary::-webkit-details-marker { display:none; }
.disclosure>summary::after { content:'+' / ''; flex:none; display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:var(--cream); color:var(--ink); font-size:22px; line-height:1; }
.disclosure[open]>summary::after { content:'−' / ''; }
.disclosure>summary:hover,.disclosure[open]>summary { background:#f8f3ea; }
.disclosure>summary strong { display:block; font:28px/1.2 Georgia,serif; }
.disclosure small { display:block; font-size:16px; color:var(--muted); margin-top:5px; }
.service-label { display:block; color:var(--gold); font-size:16px; font-weight:700; margin-bottom:5px; }
.detail-body { padding:4px 18px 17px; font-size:16px; color:var(--muted); }
.disclosure[open]>.detail-body { animation:reveal .2s ease-out both; }
@keyframes reveal { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
.detail-body ul { margin:8px 0 14px; padding-left:20px; }
.detail-body li { margin-bottom:9px; }
.detail-body b { display:block; color:var(--ink); }
.detail-body p:last-child { margin-bottom:0; }
.help { background:var(--cream); }
.help-wrap { max-width:920px; }
.faq-list { margin-top:20px; border-bottom:1px solid var(--line); }
.faq-item { border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; }
.faq-item>summary { display:grid; grid-template-columns:25px minmax(0,1fr) auto; font-weight:600; padding:9px 4px; }
.faq-no { color:var(--gold); font-weight:400; }
.faq-item .detail-body { margin:0; padding:4px 42px 14px 41px; }
.contact { padding:40px 0; background:#e9deca; }
.contact-grid { display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:25px; }
.contact-grid h2 { margin-bottom:12px; }
.contact-grid p { margin-bottom:7px; }
#contact-budget { font-size:16px; color:var(--muted); }
.contact-links { display:grid; gap:9px; width:min(100%,350px); justify-self:end; }
.contact-action { display:flex; align-items:center; gap:12px; min-height:48px; padding:9px 14px; border:1px solid #d2c4ac; border-radius:6px; background:#fff; color:var(--ink); font-size:16px; font-weight:700; text-decoration:none; transition:background .16s ease; }
.contact-action:hover { background:#faf5eb; }
.contact-action :is(svg,img) { flex:none; }
.contact-action-primary { border-color:var(--ink); background:var(--ink); color:#fff; }
.contact-action-primary:hover { background:#29485f; }
.review-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.review { display:flex; flex-direction:column; gap:10px; margin:0; padding:clamp(16px,2.3vw,28px); border:1px solid var(--line); border-radius:6px; background:#fff; }
.review h3 { margin-bottom:2px; }
.review blockquote { margin:0; color:var(--muted); font-size:16px; }
.review figcaption { margin-top:auto; font-size:16px; }
.review figcaption span { display:block; margin-top:3px; color:var(--muted); }
.stars { color:var(--gold); font-size:18px; }
footer { background:var(--ink); color:#e9edf0; padding:22px 0; font-size:16px; }
.footer-row,.footer-toplinks { display:flex; flex-wrap:wrap; gap:10px 22px; justify-content:space-between; }
.footer-toplinks { justify-content:flex-start; margin-top:13px; }
.footer-preferences { border:0; padding:0; color:inherit; background:none; text-decoration:underline; text-underline-offset:4px; }
.audience-notice { background:#f1e8d8; border-block:1px solid var(--line); }
.audience-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 22px; padding-block:14px; }
.audience-inner h2 { font-size:23px; }
.audience-inner p { margin:4px 0 0; font-size:16px; color:var(--muted); }
.audience-inner a { color:var(--ink); }
.audience-actions { display:flex; flex-wrap:wrap; gap:8px; }
.audience-actions button { min-height:44px; min-width:108px; padding:7px 14px; border:1px solid var(--ink); border-radius:4px; background:#fff; color:var(--ink); font-size:16px; font-weight:700; }
.audience-actions button:hover { background:#e7dac4; }
.legal { margin-top:14px; border-top:1px solid #8795a1; padding-top:12px; }
.legal summary { min-height:32px; }
.legal-content { max-width:80ch; padding-top:10px; }
.legal-content h2,.legal-content h3 { margin:16px 0 10px; }
.legal-content dt { font-weight:700; margin-top:8px; }
.legal-content dd { margin-left:0; }
@media(601px <= width < 1000px) {
  .review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .review-grid > :last-child { grid-column:1/-1; }
}
@media(max-width:850px) {
  .hero-grid { gap:28px; }
  .price-strip { grid-template-columns:1fr auto; gap:10px 18px; }
  .price-control { grid-column:1/-1; grid-row:2; }
}
@media(max-width:600px) {
  .wrap { width:calc(100% - 32px); }
  .nav { min-height:84px; gap:8px; }
  .nav-links { display:none; }
  .logo-crop { width:126px; height:81px; }
  .logo-crop img { width:148px; height:148px; left:-10px; top:-31px; }
  .button.small { padding-inline:10px; white-space:nowrap; }
  .hero { padding:20px 0 22px; }
  .hero-grid,.service-grid,.contact-grid { grid-template-columns:1fr; gap:13px; }
  h1 { font-size:clamp(39px,10vw,54px); }
  .lead { font-size:18px; margin:12px 0; }
  .hero-actions { margin:12px 0 3px; gap:9px 14px; }
  .portrait-crop { aspect-ratio:1.04; }
  .portrait figcaption { gap:2px 10px; padding:7px 10px; }
  .pricing { padding:14px 0; }
  .price-title h2 { font-size:24px; }
  .price-result output { font-size:34px; }
  .price-result { white-space:normal; }
  .price-result p { white-space:nowrap; }
  .pricing-foot { display:block; }
  .section { padding-block:32px; }
  .contact { padding:28px 0; }
  .contact-links { justify-self:start; }
  .disclosure>summary { padding:12px 14px; }
  .faq-item>summary { gap:8px; padding:8px 2px; }
  .faq-item .detail-body { padding-inline:35px 8px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
