/* Shared typography, original branding and geometry across all public pages. */
:root { --photo-radius:32px; }
body { font-size:18px; }
main p, main li, main label, main select, main input, main textarea { font-size:1.0625rem; line-height:1.75; }
main p { overflow-wrap:break-word; }
main .hero-intro, main .intro, .heading-row>p, .service>p, .service.featured>p,
.about-copy>p:not(.lead):not(.eyebrow), .steps p, .energy-copy>p:not(.eyebrow),
.energy-note>p:not(.eyebrow), .bott-intro, .bott-offers p, .filz-copy>p, .filz-offers p,
.service-extras p, .contact-copy>p:not(.eyebrow), .detail-text p, .offer>p:not(.label),
.section-heading>p, .planning-note, .idea-text p, .participate-copy>p:not(.eyebrow),
.faq-list p, .faq p { font-size:1.0625rem; line-height:1.75; }
main .eyebrow, main .label, .service-label, .tag, .hero-foot, .hero-foot>span:last-child,
.photo-grid figcaption>span, .workshop-caption span, .footer-bottom, .legal-date,
main .form-note, main .hero-note, .choices>label, .field>label { font-size:.875rem; line-height:1.6; }
.service ul, .button, .text-link, .service-link, .energy-tabs button,
.energy-note .text-link, .about-copy .text-link, .faq summary, .faq-list summary,
.form-title, .back-top, .survey legend, .copy-button { font-size:1rem; }
.service>p { min-height:0; }
.service ul { flex:1; }
.header, .site-header.wrap { width:100%; max-width:1600px; margin:0 auto; padding:20px 5.5%; min-height:126px; display:flex; justify-content:space-between; align-items:center; gap:24px; border-bottom:1px solid #d9cdb6; box-sizing:border-box; }
.header .brand, .site-header .brand, footer .brand { display:block; flex:0 0 auto; }
.brand img.original-logo { width:176px!important; height:auto!important; max-width:100%; display:block; filter:none!important; opacity:1!important; mix-blend-mode:multiply!important; }
.header nav, .site-header nav { display:flex; gap:28px; align-items:center; font:500 1rem/1.4 'Segoe UI',Arial,sans-serif; }
.header nav a, .site-header nav a { color:#344f4b!important; }
.header .nav-cta, .header .nav-button, .site-header .nav-button { display:flex; align-items:center; justify-content:center; gap:14px; padding:13px 18px; border:1px solid #788e84; border-radius:8px; font-size:1rem; }
.header .menu-toggle, .site-header .menu-toggle { display:none; }
.header nav a[aria-current=page] { text-decoration:underline; text-underline-offset:6px; }
.hero-photo, [data-theme] .hero-photo, .about .workshop-photo, [data-theme] .about .workshop-photo,
.bott-section .bott-visual, [data-theme] .bott-section .bott-visual,
.filz-visual, [data-theme] .filz-visual, .detail-image, [data-theme] .detail-image,
.photo-open, [data-theme] .photo-open, .place-photo, .project figure { border-radius:var(--photo-radius)!important; overflow:hidden; }
.hero-mood, [data-theme] .hero-mood { display:flex; flex-wrap:wrap; gap:8px 20px; font-size:.8125rem; line-height:1.5; letter-spacing:.06em; }
.hero-mood>span { white-space:nowrap; display:block; }
.hero-mood>span:last-child { margin-left:0; }
.slogan { color:#814025; font-size:1.125rem; font-weight:650; line-height:1.5; margin:0 0 22px; }
.cta-stack, .bott-actions { display:flex; flex-direction:column; align-items:center; width:fit-content; max-width:100%; gap:12px; }
.cta-stack>.button, .bott-actions>.button { text-align:center; justify-content:center; max-width:100%; }
.cta-stack>.text-link, .bott-actions>.text-link { text-align:center; justify-content:center; max-width:100%; margin:0; }
.cta-stack>.hero-note { text-align:center; margin:0; max-width:35ch; }
[data-theme="sommer"] .service.featured>p { color:#414638!important; }
[data-theme="sommer"] .service>p, [data-theme="sommer"] .heading-row>p,
[data-theme="sommer"] .about-copy>p:not(.lead):not(.eyebrow), [data-theme="sommer"] .steps p { color:#4f5748; }
.detail-toc { display:flex; gap:12px; flex-wrap:wrap; margin:30px 0 0; padding:0; list-style:none; }
.detail-toc a { display:block; padding:9px 15px; border:1px solid #a6b7ad; border-radius:7px; font-size:1rem; color:#24565a; }
.detail-text section { scroll-margin-top:30px; }
.detail-text ul { padding-left:1.3em; }
.detail-text li { margin:10px 0; }
.detail-callout { padding:24px; background:#e5ece2; border-radius:16px; margin:28px 0; }
.detail-callout p:last-child { margin-bottom:0; }
.photo-viewer { width:min(1100px,95vw); max-height:94dvh; padding:48px 20px 20px; }
.photo-viewer .gallery-stage { display:flex; justify-content:center; align-items:center; min-height:160px; }
.photo-viewer #large-photo { max-height:60dvh; border-radius:8px; }
.gallery-controls { display:flex; justify-content:center; align-items:center; gap:18px; margin-top:18px; }
.gallery-controls button { min-width:48px; min-height:48px; border:1px solid #c5cfc5; color:#fff; background:transparent; border-radius:8px; }
.gallery-controls button:hover { background:#384c41; }
.gallery-controls output { min-width:75px; text-align:center; color:#fff; font-size:1rem; }
.gallery-thumbs { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:18px; }
.gallery-thumbs button { padding:3px; background:transparent; border:2px solid transparent; border-radius:7px; }
.gallery-thumbs button[aria-current=true] { border-color:#f1b66e; }
.gallery-thumbs img { width:70px; height:50px; object-fit:cover; }
.photo-viewer #photo-caption { font-size:1rem; }
.inquiry .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.inquiry label { display:block; margin:16px 0 6px; font-size:1rem; }
.inquiry input, .inquiry select, .inquiry textarea { width:100%; min-width:0; padding:12px; font-size:1rem; }
.inquiry textarea { min-height:150px; }
.inquiry .button { margin-top:20px; }
.inquiry [role=status] { font-size:1rem; }
.inquiry .preview-notice { padding:12px 16px; border-left:3px solid #814025; background:#fbefdc; color:#503e2f; }
@media(max-width:950px) {
  .header, .site-header.wrap { min-height:110px; padding:16px 6%; position:relative; z-index:20; background:#f9efd9; }
  .header .brand img.original-logo, .site-header .brand img.original-logo { width:136px!important; }
  .header .menu-toggle, .site-header .menu-toggle { display:flex; align-items:center; gap:12px; min-height:44px; padding:8px 0; border:0; background:none; color:#3c4135; font-size:1rem; }
  .header .menu-toggle span, .site-header .menu-toggle span { font-size:23px; }
  .header nav, .site-header nav { display:none; position:absolute; top:100%; left:0; right:0; padding:24px 6%; background:#f9efd9; border-bottom:1px solid #cdbfa7; flex-direction:column; align-items:stretch; gap:20px; }
  .header nav.open, .site-header nav.open { display:flex; }
  .header nav>a, .site-header nav>a { display:block!important; }
}
@media(max-width:760px) {
  :root { --photo-radius:24px; }
  .hero-mood, [data-theme] .hero-mood { display:grid; grid-template-columns:1fr; gap:4px; margin-bottom:22px; font-size:.8125rem; }
  .hero-photo .art-top { font-size:.75rem!important; left:10%!important; right:10%!important; }
  .hero-photo .art-bottom { font-size:.75rem!important; }
  .hero-photo .art-bottom a { font-size:.75rem!important; }
  .cta-stack, .bott-actions { width:100%; align-items:stretch; }
  .cta-stack .text-link, .bott-actions .text-link { align-self:center; }
  .inquiry .form-grid { grid-template-columns:1fr; gap:0; }
  .service-grid { gap:24px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *:before, *:after { transition:none!important; animation:none!important; } }
/* Override legacy section-specific small type, without resizing h1/h2/h3. */
main p:not(.eyebrow):not(.hero-mood):not(.slogan):not(.lead):not(.large):not(.form-title) { font-size:1.0625rem!important; }
main .eyebrow, main .label { font-size:.875rem!important; }
main .button, main .text-link, main .service-link, main .service-detail-links a,
main .energy-tabs button, main summary, main input, main textarea, main select,
main label, main .copy-button { font-size:1rem!important; }
main .art-bottom, main .art-bottom a, main .bott-visual p, main .hero-note,
main .form-note, main .photo-tag { font-size:.875rem!important; }
main .workshop-caption p { font-size:32px!important; }
main #form-status, main .contact-copy .address { font-size:1rem!important; }
footer .footer-top>p, footer .back-top { font-size:1rem!important; }
.offer.featured p:not(.label) { color:#414638!important; }
.offer.featured .label { color:#814025!important; }
/* Round the photo itself; keep its caption outside the clipping area. */
.filz-visual, [data-theme] .filz-visual { border-radius:0!important; overflow:visible; }
.filz-visual img, [data-theme] .filz-visual img { border-radius:var(--photo-radius)!important; }
.filz-visual figcaption { margin:12px 0 0; padding:0 4px; font-size:.875rem; line-height:1.6; }
.campus-preview .cta-stack { display:flex; flex-direction:column; align-items:center; }

/* Center call-to-action buttons on phones; preserve desktop alignment. */
@media(max-width:800px) {
  main .button {
    display:flex;
    width:fit-content;
    max-width:100%;
    margin-inline:auto;
    justify-content:center;
    text-align:center;
  }
  main .cta-stack, main .bott-actions { align-items:center; }
}
