/* Approved A: true-white editorial architecture, 2026-09-14. */
:root {
    --bg-color: #fff;
    --text-color: #000;
    --accent-color: #000;
    --accent-rgb: 0, 0, 0;
    --gray-text: #666;
    --border-color: #c8c8c8;
    --header-height: 86px;
    --display-font: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    --public-width: 1680px;
    --public-gutter: clamp(32px,4.22vw,80px);
}
body { background:#fff; color:#000; font:400 17px/1.7 var(--display-font); }
body[data-page] h1, body[data-page] h2, body[data-page] h3, body[data-page] h4,
button, input, textarea, select, nav a, .site-footer { font-family:var(--display-font); }
button, input, textarea, select { font-size:16px; line-height:1.5; }
button, a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
:focus-visible { outline:2px solid #176b99; outline-offset:5px; }
.public-width, .site-header__inner, .site-footer__inner, .site-footer__bottom,
.content-container, .services-section, main > .section-header { width:min(calc(100% - var(--public-gutter) * 2),var(--public-width)); margin-left:auto; margin-right:auto; }
body[data-page] .site-header { position:sticky; top:0; background:#fff; border:0; backdrop-filter:none; transform:none; padding:0; }
.site-header__inner { min-height:var(--header-height); }
body[data-page] .site-brand, body[data-page] .site-nav__link { color:#000; text-shadow:none; }
.site-brand { flex-direction:column; align-items:flex-start; gap:0; justify-content:center; line-height:1.2; min-height:44px; }
.site-brand__ko { font:380 28px/1.2 var(--display-font); letter-spacing:-.06em; }
.site-brand__en { font:500 10px/1.5 var(--display-font); letter-spacing:.62em; padding-left:3px; }
.site-nav { gap:clamp(26px,3.2vw,52px); }
.site-nav__link { font-size:17px; font-weight:400; padding:0; }
body[data-page] .site-nav__link:hover, body[data-page] .site-nav__link.is-current { color:#000; background:transparent; text-decoration:underline; text-underline-offset:8px; }
.site-nav__link::after { display:none; }
body[data-page] main { padding-top:0; }
.public-arrow { width:22px; height:22px; flex:none; vertical-align:middle; }
.public-actions { display:flex; align-items:center; flex-wrap:wrap; gap:32px; margin-top:36px; }
.public-button { display:inline-flex; justify-content:center; align-items:center; gap:20px; min-height:52px; padding:12px 24px; border:1px solid #000; border-radius:0; background:#000; color:#fff; font-size:16px; line-height:1.4; font-weight:450; white-space:nowrap; transition:background .18s,color .18s; }
.public-button:hover { background:#222; color:#fff; }
.public-button--outline { background:#fff; color:#000; }
.public-button--outline:hover { background:#000; color:#fff; }
.public-text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:26px; min-height:44px; padding:8px 0; border-bottom:1px solid #777; color:#000; font-size:16px; font-weight:400; line-height:1.4; white-space:nowrap; }
.public-text-link:hover { border-color:#000; }
.public-button .public-arrow, .public-text-link .public-arrow { transition:transform .18s; }
.public-button:hover .public-arrow, .public-text-link:hover .public-arrow { transform:translateX(3px); }
.home-intro { display:grid; grid-template-columns:29% minmax(0,1fr); align-items:center; margin:0 auto 32px; max-width:2000px; }
.home-intro__copy { padding:26px 34px 0 var(--public-gutter); }
.home-intro__copy h1 { font-size:clamp(50px,4.65vw,70px); line-height:1.23; font-weight:250; letter-spacing:-.045em; white-space:pre-line; }
.home-intro__rule { display:block; width:46px; border-top:1px solid #bbb; margin:34px 0; }
.home-intro__subtitle { font-size:clamp(18px,1.65vw,25px); line-height:1.43; font-weight:350; letter-spacing:-.035em; white-space:pre-line; }
.home-intro .public-actions { margin-top:56px; gap:32px; }
.home-intro .public-button { font-size:17px; gap:16px; padding:12px 24px; }
.home-intro .public-text-link { font-size:17px; gap:22px; }
.home-intro__figure { min-width:0; margin:0; }
.home-intro__media { display:block; width:100%; height:min(47.6vw,850px); }
.home-intro__media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; filter:none; }
.home-intro__figure figcaption, .about-intro__figure figcaption { font-size:12px; color:#333; margin-top:10px; }
.home-work { border-top:1px solid var(--border-color); padding-top:44px; padding-bottom:100px; }
.public-section-heading { display:flex; justify-content:space-between; align-items:center; gap:28px; margin-bottom:48px; }
.public-section-heading__copy { position:relative; padding-left:54px; }
.public-section-heading__copy::before { content:''; position:absolute; left:0; top:8px; height:46px; border-left:1px solid #000; }
.public-section-heading h2 { font-size:40px; line-height:1.4; font-weight:350; letter-spacing:-.05em; }
.public-section-heading p { color:#666; font-size:20px; line-height:1.6; font-weight:350; margin-top:2px; letter-spacing:-.035em; }
.project-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.project-gallery--featured { grid-template-columns:1.72fr 1fr; gap:24px; }
.project-figure { margin:0; min-width:0; }
.project-photo-link { display:block; }
.project-media { display:block; width:100%; height:480px; overflow:hidden; }
.project-gallery--featured .project-media { height:clamp(340px,41.5vw,680px); }
.project-media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.project-photo-link:hover img { transform:scale(1.015); }
.project-figure figcaption { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding-top:16px; }
.project-figure h3 { font-size:27px; line-height:1.45; font-weight:390; letter-spacing:-.04em; }
.project-figure figcaption p { font-size:17px; color:#666; line-height:1.6; }
.project-figure .public-text-link { font-size:15px; margin-top:3px; gap:24px; }
.completed-projects { margin:48px 0 64px; }
.home-services { padding:64px 0 110px; }
.home-services .public-section-heading h2 { font-size:60px; font-weight:300; }
.home-services .public-section-heading { margin-bottom:58px; }
.service-index { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 52px; padding:0; }
.service-index li { display:flex; align-items:flex-start; gap:42px; border-bottom:1px solid var(--border-color); padding:30px 0 36px; min-width:0; }
.service-index li:nth-last-child(-n+2) { border-bottom:0; }
.service-index__number { color:#777; font-size:22px; line-height:1.8; font-weight:300; width:34px; flex:none; }
.service-index h3 { font-size:40px; line-height:1.4; font-weight:300; letter-spacing:-.045em; }
.service-index p { color:#555; font-size:22px; line-height:1.65; margin-top:5px; letter-spacing:-.025em; font-weight:350; }
.public-section-end { display:flex; justify-content:flex-end; margin-top:22px; }
.public-invitation { display:grid; grid-template-columns:1.22fr 1fr; gap:64px; align-items:center; border-top:1px solid #777; padding:72px 0 90px; }
.public-invitation h2 { font-size:clamp(38px,4.8vw,72px); line-height:1.4; font-weight:250; letter-spacing:-.05em; }
.public-invitation p { font-size:clamp(19px,1.9vw,28px); line-height:1.6; font-weight:350; letter-spacing:-.03em; }
.public-invitation .public-actions { margin-top:42px; gap:36px; }
.public-invitation .public-button, .public-invitation .public-text-link { font-size:22px; min-height:66px; }
.public-invitation .public-button { padding:15px 28px; font-weight:350; }
.public-invitation--contact { min-height:360px; }
.public-invitation--contact > .public-actions { margin:0; }
body[data-page] .site-footer { padding:0; background:#fff; border:0; color:#000; }
.site-footer__inner { border-top:1px solid #777; padding:38px 0 24px; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.site-footer__address { color:#333; font-size:16px; margin:0; }
.site-footer__contact { display:flex; flex-direction:row; gap:24px; font-size:16px; color:#000; }
.site-footer__bottom { justify-content:center; border:0; padding:0 0 28px; margin-top:0; text-align:center; font-size:13px; color:#666; }
.site-footer__bottom p { margin:0; }
.section-header { padding:58px 0 36px; text-align:left; margin-top:0; margin-bottom:22px; }
.section-header h1 { color:#000; font-size:clamp(38px,4vw,58px); line-height:1.4; font-weight:350; letter-spacing:-.05em; }
.section-subtitle, .section-subtitle p { font-size:19px; line-height:1.7; color:#666; margin-left:0; font-weight:350; }
.section-subtitle { margin-top:10px; }
.section-divider { display:none; }
.services-section { padding-bottom:80px; }
.services-section .section-header { width:100%; }
.portfolio-tabs { width:100%; justify-content:flex-start; gap:28px; margin:0; padding:0 0 20px; border-bottom:1px solid var(--border-color); }
.portfolio-tabs a { border:0; border-radius:0; padding:8px 0; min-height:44px; background:transparent; color:#666; font-weight:400; }
.portfolio-tabs a.is-current { background:transparent; color:#000; text-decoration:underline; text-underline-offset:8px; }
.cases-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px 32px; }
.case-card { height:auto; overflow:visible; background:transparent; border:0; border-radius:0; box-shadow:none; }
.case-card:hover { transform:none; box-shadow:none; }
.case-card:hover img { transform:none; }
.case-card > a { display:block; height:100%; }
.case-card img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:0; }
.case-info { position:static; padding:16px 0 0; color:#000; background:none; }
.case-info .case-title, .case-info h2 { color:#000; font-size:25px; line-height:1.5; font-weight:400; letter-spacing:-.035em; }
.case-summary { font-size:16px; color:#666; margin-top:8px; line-height:1.7; }
.case-meta { font-size:13px; color:#666; margin-top:10px; opacity:1; }
.case-type { display:inline-block; margin-right:12px; color:#555; }
.portfolio-toolbar { display:flex; justify-content:space-between; align-items:center; gap:24px; margin:28px 0; }
.portfolio-sort { display:flex; align-items:center; gap:10px; }
.portfolio-sort label, .portfolio-count { font-size:14px; color:#666; }
.portfolio-sort select { min-height:44px; font-size:14px; padding:8px 12px; border:1px solid #aaa; border-radius:0; background:#fff; color:#000; }
.portfolio-sort button { min-height:44px; padding:8px 16px; background:#000; border:1px solid #000; color:#fff; font-size:14px; }
.pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:48px; }
.pagination a, .pagination span { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:6px 12px; border:1px solid #ccc; font-size:14px; }
.pagination [aria-current] { background:#000; color:#fff; border-color:#000; }
.empty-state { padding:54px 0; border-top:1px solid #ccc; }
.empty-state h2 { font-size:28px; font-weight:400; line-height:1.6; }
.empty-state p { margin-top:12px; color:#666; }
.blog-article .gallery-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr)); }
.blog-content { overflow-wrap:anywhere; }
.blog-content > *, .blog-content .img-wrapper { min-width:0; max-width:100%; }
.blog-content table { display:block; max-width:100%; overflow-x:auto; }
.project-consult { margin-top:48px; padding:32px 0; border-top:1px solid #aaa; background:transparent; }
.project-consult h2 { font-size:28px; line-height:1.5; font-weight:400; margin-bottom:10px; }
.project-consult p { color:#666; font-size:16px; }
.project-consult .public-actions { margin-top:22px; }
.contact-container { gap:72px; padding-bottom:90px; }
.contact-form { box-shadow:none; border:0; border-radius:0; padding:0; background:transparent; }
.contact-info-box { padding:32px 0 32px 40px; border:0; border-left:1px solid #ccc; border-radius:0; background:transparent; text-align:left; }
.contact-form h3, .contact-info-box h3 { font-size:27px; line-height:1.5; font-weight:450; }
.form-group input, .form-group textarea { border-radius:0; border:1px solid #bbb; background:#fff; font:400 16px/1.6 var(--display-font); color:#000; }
.submit-btn { border-radius:0; background:#000; min-height:52px; letter-spacing:0; box-shadow:none; }
.submit-btn:hover { background:#222; transform:none; box-shadow:none; }
.contact-process { margin-top:32px; padding-top:24px; border-top:1px solid #ccc; }
.contact-process ol { padding-left:22px; margin-top:16px; }
.contact-process li { font-size:15px; margin-bottom:12px; }
.privacy-notice { border-radius:0; background:transparent; }
.about-intro { display:grid; grid-template-columns:30.8% minmax(0,1fr); align-items:start; margin:34px 0 54px; padding-right:32px; max-width:2000px; }
.about-intro__copy { padding:20px 38px 0 var(--public-gutter); }
.about-intro h1 { font-size:clamp(34px,4vw,60px); line-height:1.35; font-weight:250; letter-spacing:-.045em; }
.about-intro__lead { font-size:20px; line-height:1.5; margin-top:12px; letter-spacing:-.04em; }
.about-intro .home-intro__rule { margin:100px 0 30px; }
.about-intro h2 { font-size:clamp(25px,2.8vw,42px); line-height:1.5; font-weight:300; letter-spacing:-.045em; }
.about-intro h2 + p { font-size:20px; line-height:1.75; margin-top:24px; color:#333; letter-spacing:-.035em; }
.about-intro .public-text-link { margin-top:32px; font-size:20px; }
.about-intro__figure { margin:0; min-width:0; }
.about-intro__media { display:block; width:100%; height:min(44vw,780px); }
.about-intro__media img { display:block; width:100%; height:100%; object-fit:cover; filter:none; }
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; border-top:1px solid #ccc; margin-top:0; padding:46px 0 90px; }
.team-box { min-width:0; border:0; padding:0; box-shadow:none; border-radius:0; background:transparent; }
.team-box:hover { transform:none; }
.team-box h2 { font-size:36px; line-height:1.5; font-weight:300; letter-spacing:-.045em; border-left:1px solid #000; padding-left:54px; }
.team-box__lead { font-size:19px; color:#666; margin:8px 0 30px 55px; }
.team-box dl > div { margin:0 0 22px 55px; }
.team-box dt { font-size:18px; color:#000; font-weight:450; }
.team-box dd { font-size:15px; color:#666; line-height:1.7; margin-top:3px; }
.team-box ul { list-style:none; margin-left:55px; padding:0; }
.team-box li { font-size:15px; color:#555; margin-bottom:14px; line-height:1.7; }
.team-box .public-text-link { margin-left:55px; }
.service-overview { padding-bottom:72px; }
.service-photo-section { padding-bottom:100px; }
body[data-page="services"] .services-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px 32px; }
body[data-page="services"] .service-card { height:auto; background:transparent; border:0; border-radius:0; box-shadow:none; overflow:visible; transform:none; }
body[data-page="services"] .service-media { display:block; width:100%; height:auto; aspect-ratio:4/3; overflow:hidden; }
body[data-page="services"] .service-media img { display:block; width:100%; height:100%; object-fit:cover; }
body[data-page="services"] .service-info { position:static; padding:18px 0 0; transform:none; opacity:1; color:#000; background:none; }
body[data-page="services"] .service-info h3 { color:#000; font-size:26px; font-weight:400; letter-spacing:-.035em; }
body[data-page="services"] .service-info p { color:#666; font-size:16px; line-height:1.7; }
body[data-page="services"] .service-info .service-image-note { font-size:13px; margin-top:8px; color:#555; }
body[data-page="services"] .service-zoom-button { top:14px; right:14px; bottom:auto; background:#fff; color:#000; border:1px solid #aaa; border-radius:0; }
.photo-viewer { width:min(1120px,calc(100% - 48px)); height:min(92svh,980px); max-width:none; max-height:95svh; padding:20px 28px; margin:auto; border:1px solid #aaa; border-radius:0; color:#000; background:#fff; overflow:hidden; }
.photo-viewer::backdrop { background:rgba(0,0,0,.78); }
.photo-viewer__bar { display:flex; justify-content:space-between; align-items:center; gap:24px; height:50px; }
.photo-viewer__bar strong { font-size:20px; font-weight:450; }
.photo-viewer__bar span { margin-left:18px; font-size:14px; color:#666; }
.photo-viewer button { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid #ccc; background:#fff; color:#000; border-radius:0; }
.photo-viewer svg { width:24px; height:24px; }
.photo-viewer__stage { position:relative; height:calc(100% - 114px); padding:12px 0; }
.photo-viewer__stage img { width:100%; height:100%; object-fit:contain; display:block; }
.photo-viewer__error { position:absolute; left:0; right:0; bottom:20px; text-align:center; background:#fff; }
.photo-viewer__controls { height:54px; display:flex; justify-content:center; align-items:center; gap:20px; }
.photo-viewer [data-prev] svg { transform:rotate(180deg); }
.mobile-contact-bar { display:none; }
@media(max-width:1100px) {
    :root { --public-gutter:32px; }
    .home-intro { grid-template-columns:39% minmax(0,1fr); }
    .home-intro__copy { padding-right:28px; }
    .home-intro__copy h1 { font-size:44px; }
    .home-intro__media { height:560px; }
    .home-intro .public-actions { gap:20px; margin-top:34px; }
    .home-intro .public-button { padding:12px 17px; }
    .home-intro__rule { margin:24px 0; }
    .home-intro__subtitle { font-size:19px; }
    .public-invitation { gap:40px; grid-template-columns:1.1fr 1fr; padding:60px 0; }
    .public-invitation .public-actions { gap:20px; }
    .public-invitation .public-button, .public-invitation .public-text-link { font-size:18px; min-height:52px; }
    .public-invitation .public-button { padding:12px 20px; }
    .public-invitation h2 { font-size:42px; }
    .service-index { gap:0 36px; }
    .service-index li { gap:22px; }
    .service-index h3 { font-size:27px; }
    .service-index p { font-size:17px; }
    .site-footer__inner { flex-wrap:wrap; gap:24px; }
    .site-footer__contact { flex-wrap:wrap; }
    .about-intro { grid-template-columns:42% minmax(0,1fr); padding-right:32px; }
    .about-intro__copy { padding-top:0; padding-right:28px; }
    .about-intro .home-intro__rule { margin:40px 0 24px; }
    .about-intro__media { height:620px; }
    .about-intro .public-text-link { margin-top:32px; }
    .team-grid { gap:24px; }
    .team-box h2 { font-size:24px; padding-left:18px; }
    .team-box__lead, .team-box dl > div, .team-box ul, .team-box .public-text-link { margin-left:19px; }
    .project-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .project-gallery--featured { grid-template-columns:1.5fr 1fr; }
    .project-figure figcaption { flex-wrap:wrap; gap:4px; }
}
@media(max-width:1080px) {
    .site-header__inner { min-height:76px; }
    .nav-toggle { border:0; border-radius:0; background:#fff; gap:7px; }
    .nav-toggle span { width:24px; height:1.5px; border-radius:0; }
    .site-nav { top:100%; left:calc(-1 * var(--public-gutter)); right:calc(-1 * var(--public-gutter)); padding:12px var(--public-gutter) 24px; border:0; border-bottom:1px solid #000; border-radius:0; background:#fff; box-shadow:none; gap:0; }
    .site-nav__link { border:0; border-radius:0; padding:8px 0; min-height:50px; font-size:18px; }
}
@media(max-width:767px) {
    :root { --public-gutter:24px; --header-height:72px; }
    .site-header__inner { min-height:72px; }
    .site-brand__ko { font-size:24px; }
    .site-brand__en { font-size:9px; }
    .home-intro { display:block; margin:0 0 20px; }
    .home-intro__copy { padding:24px 24px 20px; }
    .home-intro__copy h1 { font-size:clamp(40px,11.3vw,48px); line-height:1.23; font-weight:250; letter-spacing:-.045em; }
    .home-intro__rule { display:none; }
    .home-intro__subtitle { font-size:20px; line-height:1.45; margin-top:14px; }
    .home-intro .public-actions { margin-top:22px; gap:32px; }
    .public-button { min-height:44px; font-size:14px; gap:14px; padding:10px 18px; }
    .home-intro .public-button { font-size:16px; gap:16px; padding:10px 18px; }
    .public-text-link, .home-intro .public-text-link { min-height:44px; font-size:15px; gap:18px; }
    .home-intro__media { height:auto; aspect-ratio:4/3; }
    .home-intro__figure figcaption { margin:10px 24px 0; font-size:12px; }
    .home-work { padding:20px 0 54px; }
    .public-section-heading { gap:12px; margin-bottom:28px; }
    .public-section-heading__copy { padding-left:26px; }
    .public-section-heading__copy::before { top:7px; height:30px; }
    .public-section-heading h2, .home-services .public-section-heading h2 { font-size:30px; line-height:1.4; }
    .public-section-heading p { font-size:15px; line-height:1.6; margin-top:3px; }
    .public-section-heading > .public-text-link { gap:14px; font-size:14px; }
    .public-section-heading > .public-text-link .public-arrow { width:18px; }
    .project-gallery, .project-gallery--featured { display:grid; grid-template-columns:minmax(0,1fr); gap:34px; }
    .project-media, .project-gallery--featured .project-media { height:auto; aspect-ratio:4/3; }
    .project-figure:nth-child(2) .project-media, .project-figure:nth-child(3) .project-media { aspect-ratio:4/5; }
    .project-figure figcaption { flex-wrap:nowrap; padding-top:12px; }
    .project-figure h3 { font-size:23px; }
    .project-figure figcaption p { font-size:14px; }
    .project-figure .public-text-link { font-size:14px; gap:18px; margin-top:0; }
    .home-services { padding:34px 0 64px; }
    .home-services .public-section-heading { margin-bottom:24px; }
    .service-index { grid-template-columns:minmax(0,1fr); gap:0; }
    .service-index li { gap:18px; padding:22px 0 26px; }
    .service-index li:nth-last-child(-n+2) { border-bottom:1px solid var(--border-color); }
    .service-index li:last-child { border-bottom:0; }
    .service-index__number { font-size:17px; width:24px; }
    .service-index h3 { font-size:25px; }
    .service-index p { font-size:16px; line-height:1.7; }
    .public-section-end { margin-top:14px; }
    .public-invitation { grid-template-columns:minmax(0,1fr); gap:26px; padding:42px 0 48px; min-height:0; }
    .public-invitation h2 { font-size:32px; line-height:1.5; }
    .public-invitation p { font-size:18px; line-height:1.7; }
    .public-invitation .public-actions { gap:24px; margin-top:26px; }
    .public-invitation .public-button, .public-invitation .public-text-link { font-size:16px; min-height:46px; }
    .public-invitation .public-button { padding:10px 18px; }
    .public-invitation--contact > .public-actions { margin:0; }
    .site-footer__inner { display:flex; align-items:flex-start; flex-direction:column; gap:20px; padding:30px 0 24px; }
    .site-footer__address { font-size:14px; }
    .site-footer__contact { align-items:flex-start; flex-direction:column; gap:8px; font-size:15px; }
    .site-footer__bottom { padding-bottom:26px; text-align:left; font-size:12px; }
    .section-header { padding:32px 0 20px; margin-bottom:18px; }
    .section-header h1 { font-size:36px; }
    .section-subtitle, .section-subtitle p { font-size:16px; }
    .cases-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
    .case-info .case-title, .case-info h2 { font-size:23px; }
    .portfolio-toolbar { flex-direction:column; align-items:flex-start; gap:12px; }
    .portfolio-sort { width:100%; flex-wrap:wrap; }
    .portfolio-sort select { flex:1; }
    .project-consult { padding:24px 0; }
    .contact-container { width:calc(100% - 48px); gap:40px; padding-bottom:60px; }
    .contact-form { padding:0; }
    .contact-info-box { padding:28px 0 0; border-left:0; border-top:1px solid #bbb; }
    .contact-form h3, .contact-info-box h3 { font-size:24px; }
    .blog-article .v2-summary { padding:22px 18px; }
    .about-intro { display:block; padding:0; margin:20px 0 36px; }
    .about-intro__copy { padding:0 24px 32px; }
    .about-intro h1 { font-size:36px; }
    .about-intro__lead { font-size:16px; margin-top:10px; }
    .about-intro .home-intro__rule { display:block; margin:30px 0 24px; }
    .about-intro h2 { font-size:28px; }
    .about-intro h2 + p { font-size:16px; margin-top:20px; }
    .about-intro .public-text-link { margin-top:22px; }
    .about-intro__media { height:auto; aspect-ratio:4/3; }
    .about-intro__figure figcaption { margin:10px 24px 0; }
    .team-grid { display:block; padding:30px 0 50px; }
    .team-box + .team-box { border-top:1px solid #ccc; padding-top:28px; margin-top:30px; }
    .team-box h2 { font-size:26px; }
    .team-box__lead { font-size:16px; }
    .team-box dl > div { margin-bottom:18px; }
    .service-overview { padding-bottom:42px; }
    .service-photo-section { padding-bottom:56px; }
    body[data-page="services"] .services-grid { grid-template-columns:minmax(0,1fr); gap:34px; }
    body[data-page="services"] .service-info h3 { font-size:24px; }
    .photo-viewer { width:calc(100% - 24px); padding:12px; height:90svh; }
    .photo-viewer__bar { gap:12px; }
    .photo-viewer__bar strong { font-size:18px; }
    .photo-viewer__bar span { font-size:13px; margin-left:10px; }
    body:not([data-page="contact"]) { padding-bottom:calc(52px + env(safe-area-inset-bottom,0px)); }
    .mobile-contact-bar { display:flex; position:fixed; inset:auto 0 0; z-index:90; min-height:52px; padding:0 0 env(safe-area-inset-bottom,0px); gap:0; background:#fff; border-top:1px solid #000; }
    .mobile-contact-bar a { display:flex; flex:1; align-items:center; justify-content:center; min-height:52px; font:400 16px/1.4 var(--display-font); background:#fff; color:#000; }
    .mobile-contact-bar a:last-child { background:#000; color:#fff; }
    .mobile-contact-bar a::after { display:none; }
    body.lightbox-open .mobile-contact-bar { display:none; }
}
@media(prefers-reduced-motion:reduce) {
    .fade-in-up { opacity:1; transform:none; animation:none; }
    *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
