/* Shared editorial typography, based on the existing Georgia/Arial design. */
:root {
  --copy-size: clamp(16px, 1.25vw, 18px);
  --copy-leading: 1.75;
  --copy-heading: clamp(34px, 4vw, 58px);
  --copy-subheading: clamp(24px, 2.4vw, 30px);
}
:is(.page-intro, .seo-copy, .detail-content, .about-copy, .home-teaser,
    .blog-article__content, .blog-guide__content, .blog-final-cta, .booking-live)
    p:not(.eyebrow):not(.seo-primary):not(.seo-subline):not(.blog-byline):not(.form-hint) {
  font-size: var(--copy-size);
  line-height: var(--copy-leading);
}
:is(.seo-copy, .detail-content, .about-copy, .home-teaser,
    .blog-article__content, .blog-guide__content, .booking-live) h2 {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: var(--copy-heading);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.035em;
}
:is(.seo-copy, .detail-content, .blog-article__content, .blog-guide__content) h3 {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: var(--copy-subheading);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -.02em;
  margin: 2rem 0 1rem;
}
:is(.seo-copy, .blog-article__content, .blog-guide__content) p { margin: 0 0 1.25rem; }
:is(.detail-content, .blog-article__content, .blog-guide__content) li {
  font-size: var(--copy-size);
  line-height: var(--copy-leading);
}
:is(.page-intro, .contact-intro, .blog-article__header) h1:not(.seo-primary) {
  font-size: clamp(40px, 5.5vw, 80px);
  line-height: 1.08;
  letter-spacing: -.04em;
  overflow-wrap: break-word;
}
.blog-card h3, .related-articles__grid h3 {
  font: 400 clamp(25px, 2.5vw, 34px)/1.2 Georgia, 'Times New Roman', serif;
  letter-spacing: -.025em;
}
.blog-card > div > p:not(.blog-card__meta), .related-articles__grid p {
  font-size: var(--copy-size);
  line-height: var(--copy-leading);
}
.eyebrow { line-height: 1.5; text-transform: uppercase; }
.button, .text-link, .config-nav button { font-family: Arial, Helvetica, sans-serif; line-height: 1.5; }
/* Let longer formal labels fit without changing their controls or interactions. */
:is(.hero-copy, .page-intro, .small-cta, .config-step, .blog-card, .related-articles__grid) { min-width: 0; }
.config-step label, .config-summary dd { overflow-wrap: anywhere; }
@media (max-width: 700px) {
  :is(.seo-copy, .detail-content, .about-copy, .home-teaser, .blog-article__content, .blog-guide__content, .booking-live) h2 { letter-spacing: -.025em; }
}

/* Requested contrast, portfolio controls and existing card layout. */
.hero-copy .seo-subline em{color:var(--text)}
.portfolio-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.portfolio-filters button{font:inherit;color:var(--ink);background:transparent;border:1px solid var(--line);padding:10px 16px;cursor:pointer}
.portfolio-filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.portfolio-grid figure[hidden]{display:none!important}
.inquiry-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.service-area{color:var(--muted);font-size:inherit;line-height:inherit}
.contact .service-area,.blog-hero .service-area{color:inherit}
.price-cards .service-image{height:240px}
#inquiry-form button[disabled]{opacity:.65;cursor:wait}
.inquiry-result [hidden]{display:none!important}
.nav-services{position:relative;z-index:30}.nav-services summary{cursor:pointer;list-style:none;white-space:nowrap}.nav-services summary::-webkit-details-marker{display:none}.nav-services summary::after{content:' ▾';font-size:.75em}.nav-services summary:focus-visible{outline:2px solid var(--text);outline-offset:6px}.nav-services__menu{position:absolute;top:calc(100% + 12px);left:0;min-width:245px;display:flex;flex-direction:column;gap:0;padding:12px;background:var(--paper);border:1px solid var(--line);box-shadow:0 8px 20px #1e292214}.nav-services__menu a{display:block;padding:9px 12px;font-size:14px;white-space:normal}.nav-services__menu a:hover{background:var(--cream)}
@media(max-width:700px){.nav-services__menu{max-width:calc(100vw - 40px);min-width:230px}}
