/* Local additions to FRANCO_WEBSITE_PRODUCTION_V2; original style remains inline. */
section, #home { scroll-margin-top: calc(var(--header-h) + 1rem); }
.section-title { font-size: clamp(3.4rem, 7.3vw, 8.3rem); }
.page-heading .section-title { max-width: 12ch; margin: 0; }
.page-heading > div { grid-column: 1 / -1; }
.page-heading h1, .page-heading .section-title { overflow-wrap: anywhere; }
.page-grid > *, .service-details > * { min-width: 0; }
.phone-cta { display: inline-block; margin-top: 1.25rem; border-bottom: 1px solid var(--copper); padding: .7rem 0; font-size: 1rem; font-weight: 600; text-decoration: none; line-height: 1.45; }
.hair-editorial { width: 100%; height: auto; }
.page figure { margin: 0; }
figcaption { margin-top: .8rem; font-size: .9rem; line-height: 1.55; }
.service-intro { max-width: 50rem; margin-bottom: 3rem; }
.image-series { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.image-series img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
.men-series img { filter: saturate(.88) contrast(1.04) brightness(1.03); aspect-ratio: auto; object-fit: contain; }
.image-note { max-width: 55rem; color: var(--muted); font-size: .95rem; margin: 2rem 0 4rem; }
.service-details { display: grid; grid-template-columns: 1fr 1.2fr; gap: 5vw; margin-top: 4rem; }
.service-details h3 { line-height: 1.12; }
header nav { gap: clamp(.6rem,1.4vw,1.6rem); }
header nav a { font-size: .72rem; letter-spacing: .06em; }
.menu-toggle { display: none; font: inherit; border: 1px solid var(--line); color: var(--ink); background: transparent; padding: .55rem .8rem; min-height: 44px; cursor: pointer; }
.brand img { object-fit: cover; }
@media(max-width:1150px) {
  .menu-toggle { display: block; }
  header nav { position: fixed; inset: var(--header-h) 0 auto 0; height: calc(100dvh - var(--header-h)); min-height: 0; overflow-y: auto; padding: 1rem 5vw 2rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .25rem; background: var(--paper); transform: translateY(-120%); opacity: 0; visibility: hidden; transition: none; }
  header nav a { display: block; padding: .6rem 0; min-height: 44px; font-size: .85rem; }
  header nav.is-open { transform: none; opacity: 1; visibility: visible; }
}
@media(max-width:980px) {
  .page-heading .section-title { max-width: 16ch; }
  .service-details { grid-template-columns: 1fr; }
  .image-series { gap: 1.25rem; }
}
@media(max-width:560px) {
  .section-title { font-size: clamp(2.6rem,12vw,4.5rem); }
  .image-series { grid-template-columns: 1fr; gap: 2.5rem; }
  .image-series img { aspect-ratio: auto; object-fit: contain; }
  .brand span { display: inline; font-size: .58rem; }
  .page-heading { margin-bottom: 3rem; }
}
@media(max-width:360px) { .section-title { font-size: clamp(2.2rem,10vw,3.5rem); } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } }

/* Local SEO additions; original typefaces and colour palette retained. */
.local-intro { max-width: 42rem; margin: 1.6rem 0 0; font-size: clamp(1rem,1.3vw,1.17rem); line-height: 1.6; }
.detail-link { margin: 3rem 0 0; }
.detail-link a { display: inline-block; padding: .7rem 0; font-size: 1rem; }
.faq-section { border-top: 1px solid var(--line); }
.faq-section h2 { max-width: 16ch; }
.faq-list { max-width: 58rem; }
.faq-list details { border-top: 1px solid var(--line); padding: 1rem 0; }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; font-size: 1.05rem; line-height: 1.5; padding: .45rem 1.5rem .45rem 0; }
.faq-list p { max-width: 48rem; padding-right: 1rem; }

.service-page .page-heading h1, .service-page .page-heading .section-title { max-width:20ch; font-size:clamp(2.2rem,5.4vw,5.8rem); line-height:1.02; overflow-wrap:normal; hyphens:auto; }
.moat-copy { border-top:1px solid var(--line); margin-top:2.2rem; padding-top:2rem; }
.moat-copy h3, .care-subtitle { font-size:clamp(1.7rem,2.4vw,2.5rem); line-height:1.1; }
.moat-copy p { font-size:1rem; font-weight:400; text-transform:none; letter-spacing:normal; }
@media(max-width:560px) { :root { --page:calc(100% - 2rem); } }
.moat-copy h2 { font-size:clamp(1.7rem,2.4vw,2.5rem); line-height:1.1; }

/* Local fashion entrance; working portrait remains in Herren. */
#hair .home-signature-photo { width:100%; height:auto; object-fit:contain; }
@media(min-width:981px) {
 #hair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:7vw; align-items:start; }
 #hair .page-heading { grid-column:1; grid-row:1; margin-bottom:2.5rem; }
 #hair .page-grid { display:contents; }
 #hair .page-grid > article { grid-column:1; grid-row:2; }
 #hair .page-grid > aside { grid-column:2; grid-row:1 / span 2; width:100%; }
 #hair h1 { font-size:clamp(3.4rem,6vw,6rem); }
}
@media(max-width:980px) { #hair .page-heading { margin-bottom:1.8rem; } }
