/* LOCAL AX · shared editorial system for company, story, services and contact. */
.inner-page { background:#fff; color:#171717; --muted:#53534d; }
.inner-page .page-heading { padding:28px 0 62px; border-bottom:1px solid #c9c9c1; margin-bottom:56px; }
.inner-page .breadcrumbs { margin-bottom:38px; color:#56564e; font-size:12px; flex-wrap:wrap; }
.inner-page .page-heading>.section-label { font:800 clamp(48px,9.5vw,132px)/.95 Arial,sans-serif; letter-spacing:-.055em; margin:0 0 26px; color:#d93716; overflow-wrap:anywhere; }
.inner-page .page-heading h1 { max-width:1040px; font-size:clamp(30px,4vw,54px); font-weight:900; line-height:1.4; letter-spacing:-.045em; margin:0; overflow-wrap:anywhere; }
.inner-page .page-heading .page-lead { max-width:720px; margin-top:22px; font-size:16px; line-height:1.9; color:#45453f; }
.inner-page :is(h2,h3) { letter-spacing:-.025em; }
.inner-page .section-kicker { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 24px; border-top:1px solid #bdbdb4; padding-top:17px; font-size:12px; line-height:1.7; }
.inner-page a:focus-visible,.inner-page button:focus-visible,.inner-page summary:focus-visible { outline:3px solid #d93716; outline-offset:5px; }

/* Company: message, identity, a clear information table, then two paths onward. */
.company-page .page-heading { margin-bottom:0; }
.company-intro { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; padding-block:65px 80px; }
.company-intro .section-label { color:#a93119; font-size:12px; }
.company-intro h2 { font-size:clamp(34px,4.6vw,66px); font-weight:900; line-height:1.4; margin:25px 0; letter-spacing:-.055em; }
.company-intro-copy>p:last-of-type { font-size:16px; line-height:2; }
.company-quicklinks { display:flex; flex-wrap:wrap; gap:12px 26px; margin-top:26px; }
.company-quicklinks a { display:flex; align-items:center; justify-content:space-between; gap:32px; min-height:48px; border-bottom:1px solid #171717; font-size:14px; font-weight:700; }
.company-intro-visual { position:relative; margin:0; padding:25px; background:#eeede7; }
.company-visual-word { position:relative; z-index:1; font:900 clamp(55px,7vw,108px)/.9 Arial,sans-serif; letter-spacing:-.07em; color:#24251f; }
.company-visual-word>span { color:#d93716; }
.company-intro-visual img { display:block; width:77%; height:185px; object-fit:cover; margin:-35px 0 0 auto; }
.company-intro-visual figcaption { font-size:11px; margin-top:14px; color:#55554d; }
.inner-page .company { background:#f5f4ef; padding:40px; margin-bottom:66px; }
.inner-page .company-layout { display:grid; grid-template-columns:.7fr 1.3fr; gap:55px; margin-top:38px; }
.inner-page .company-layout h2 { font-size:34px; }
.inner-page .company-layout>div>p { font-size:14px; line-height:1.9; }
.inner-page .company-layout dl { min-width:0; }
.inner-page .company-layout dl>div { display:grid; grid-template-columns:110px minmax(0,1fr); gap:18px; padding:22px 0; border-bottom:1px solid #d4d3c9; }
.inner-page .company-layout dl>div:first-child { border-top:1px solid #bdbdb2; }
.inner-page .company-layout dt { font-size:14px; font-weight:700; color:#45453d; }
.inner-page .company-layout dt::before { content:""; display:block; width:20px; height:3px; margin-bottom:9px; background:#d93716; }
.inner-page .company-layout dd { min-width:0; margin:0; font-size:15px; line-height:1.9; overflow-wrap:anywhere; }
.inner-page .company-layout dd.about-name { font-size:25px; font-weight:800; }
.inner-page .company-layout dd a { display:inline-block; padding-block:4px; text-decoration:underline; text-underline-offset:5px; }
.company-explore { margin-bottom:80px; }
.company-explore h2 { font-size:36px; margin:28px 0; }
.company-explore>div:last-child { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.company-explore a { display:block; position:relative; padding:30px 65px 30px 30px; background:#f1f0ea; border-top:3px solid #d93716; }
.company-explore a>span { font-size:12px; color:#a42b16; font-weight:700; }
.company-explore h3 { font-size:26px; margin:14px 0; }
.company-explore p { font-size:14px; line-height:1.8; }
.company-explore b { position:absolute; right:25px; bottom:28px; font-size:28px; font-weight:400; }

/* About: indexed chapters with generous, readable text columns. */
.about-index { display:flex; flex-wrap:wrap; gap:15px 35px; margin-bottom:40px; }
.about-index a { display:flex; align-items:center; gap:30px; min-height:48px; border-bottom:1px solid #777; font-size:14px; font-weight:700; }
.about-page .about { padding:50px; margin-bottom:70px; background:#171717; color:#fff; }
.about-page .about .section-kicker { border-color:#66665d; }
.about-page .about-layout.about-message { max-width:none; margin-top:36px; }
.about-page .about-message>div { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:start; }
.about-page .about-message h2 { font-size:34px; line-height:1.6; }
.about-page .about-message p { margin:0; font-size:15px; line-height:2; color:#e1e0d7; }
.inner-page .why-story { display:grid; grid-template-columns:.9fr 1.1fr; padding-block:55px 65px; gap:64px; border-top:1px solid #c6c6bc; }
.story-chapter-number { display:block; margin-bottom:25px; color:#d93716; font:700 46px/1 Arial,sans-serif; letter-spacing:-.05em; }
.inner-page .why-story h2 { font-size:32px; line-height:1.65; margin-top:18px; }
.inner-page .why-story .section-label { font-size:12px; color:#a42b16; }
.inner-page .why-story .story-body p { font-size:16px; line-height:2; }
.inner-page .why-story .story-body p+p { margin-top:22px; }
.inner-page .why-story .story-signature { font-size:13px; color:#59594f; }
.inner-page .proof { background:#f2f1e9; padding-block:60px; margin-block:25px 65px; }
.inner-page .proof>.wrap { grid-template-columns:1fr 1fr; gap:25px 55px; }
.inner-page .proof h2 { font-size:36px; line-height:1.55; }
.inner-page .proof small { display:block; margin-top:16px; font-size:13px; line-height:1.9; color:#56564d; }

/* Services remain visible in reading order, with large explanatory media. */
.inner-page .service-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px 28px; overflow:visible; padding:0; }
.inner-page .service-entry { display:grid; grid-template-columns:38px minmax(0,1fr) 24px; grid-template-rows:auto 1fr; gap:20px 13px; width:auto; min-width:0; flex:none; padding:0 0 25px; border:0; border-bottom:1px solid #bfbfb5; background:#fff; box-shadow:none; border-radius:0; }
.inner-page .service-card-image { grid-column:1/-1; width:100%; margin:0; background:#f0eee5; border:0; border-radius:0; }
.inner-page .service-card-image>img { width:100%; height:260px; object-fit:cover; }
.inner-page .service-card-image.screen>img { object-fit:contain; }
.inner-page .service-card-image figcaption { padding:10px 14px; font-size:12px; line-height:1.7; background:#f3f2ec; color:#505047; }
.inner-page .directory-number { font:700 24px/1.4 Arial,sans-serif; color:#ac3019; }
.inner-page .service-entry>div { min-width:0; }
.inner-page .service-entry h3 { font-size:23px; line-height:1.6; }
.inner-page .service-entry p { margin-top:13px; font-size:14px; line-height:1.9; }
.inner-page .directory-arrow { font-size:26px; color:#a42b16; }
.inner-page .service-hub { margin-bottom:75px; }
.inner-page :is(.map-story,.line-story,.social-story) { padding-block:15px 65px; }
.inner-page :is(.map-layout,.line-layout,.social-intro) { gap:55px; }
.inner-page :is(.story-copy h3,.social-intro h3,.web-copy h3) { font-size:clamp(28px,3vw,40px); line-height:1.55; }
.inner-page :is(.story-copy>p,.social-intro>div>p,.web-copy>p) { font-size:16px; line-height:2; }
.inner-page .service-detail-photo { margin:0; padding:0; background:#f1f0ea; }
.inner-page .service-detail-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.inner-page .service-detail-photo figcaption { margin:0; padding:14px 18px; font-size:12px; color:#505047; }
.inner-page .web-story { background:#f3f2ed; padding-block:55px; }
.inner-page .web-image { margin-top:35px; border:1px solid #ccc9bf; box-shadow:none; }
.inner-page .web-points { gap:20px; }
.inner-page .web-points p { min-width:0; font-size:14px; line-height:1.8; }
.inner-page .related-services { padding-block:45px 65px; border-top:1px solid #c4c4b9; }
.inner-page .related-services h2 { font-size:28px; margin-bottom:26px; }
.inner-page .related-services>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; }
.inner-page .related-services>div>a { display:flex; align-items:center; justify-content:space-between; gap:20px; min-width:0; padding:22px 0; border-bottom:1px solid #cccac0; font-size:14px; line-height:1.8; }

/* A consistent four-step pattern, including on lower pages. */
.inner-page .process { background:#171717; color:#fff; padding:42px; margin-block:30px 65px; }
.inner-page .process .section-kicker { border-color:#73736a; }
.inner-page .process h2 { margin:28px 0; font-size:34px; line-height:1.6; }
.inner-page .process .process-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:28px 0 0; padding:0; }
.inner-page .process-steps li { display:flex; flex-direction:column; min-width:0; padding:22px 18px; border:1px solid #5d5d54; border-top:3px solid #ff805f; }
.inner-page .process-steps li>span { display:grid; place-items:center; width:52px; height:52px; flex:0 0 52px; padding:0; background:#ff805f; border:0; border-radius:50%; color:#171717; font:700 25px/1 Arial,sans-serif; }
.inner-page .process-steps h3 { font-size:19px; line-height:1.6; margin:20px 0 10px; }
.inner-page .process-steps p { font-size:14px; color:#deded3; line-height:1.9; margin:0; }
.inner-page .process-steps p br { display:none; }

/* Consultation: clear choice, readable memo, existing behavior preserved. */
.inner-page .contact-channels { grid-template-columns:.85fr 1.15fr; gap:60px; padding-bottom:60px; }
.inner-page .contact-channel-intro h2 { font-size:34px; }
.inner-page .contact-channel-intro p { font-size:15px; line-height:1.9; }
.inner-page .contact-method { border-radius:0; box-shadow:none; padding:25px 28px; min-width:0; }
.inner-page .contact-method--phone { background:#171717; color:#fff; }
.inner-page .contact-method--email { background:#f3f1e9; color:#171717; }
.inner-page .contact-method strong { font-size:23px; }
.inner-page .contact-method-value { font-size:clamp(17px,2.2vw,26px); overflow-wrap:anywhere; }
.inner-page .contact-section { background:#f3f2ec; padding:65px 0; }
.inner-page .contact-heading h2 { font-size:clamp(28px,3.6vw,46px); max-width:850px; line-height:1.55; }
.inner-page .contact-heading>p:last-child { max-width:770px; font-size:15px; line-height:1.9; }
.inner-page .contact-layout { grid-template-columns:.65fr 1.35fr; gap:50px; max-width:none; margin-top:40px; }
.inner-page .contact-aside { min-width:0; }
.inner-page .contact-aside p { font-size:14px; line-height:1.9; }
.inner-page .contact-form { padding:32px; border:1px solid #d3d0c4; border-radius:0; background:#fff; box-shadow:none; min-width:0; }
.inner-page .contact-form :is(input,select,textarea) { min-width:0; width:100%; background:#f8f7f3; border:1px solid #a4a499; border-radius:2px; font-size:16px; color:#222; }
.inner-page .contact-form label { font-size:14px; color:#25251f; }
.inner-page .faq { padding-block:55px 65px; }
.inner-page .faq h2 { font-size:32px; line-height:1.6; }
.inner-page .faq summary { font-size:16px; line-height:1.8; padding-block:22px; }
.inner-page .faq details p { font-size:15px; line-height:1.95; }
.inner-page .journal-entry--empty { min-height:240px; border:1px solid #d5d3c8; padding:35px; background:#f5f4ee; }

/* Shared close: a strong next action, then simple site navigation. */
.inner-page .page-contact { display:grid; grid-template-columns:1fr auto; gap:45px; padding:45px; margin-bottom:60px; background:#ff805f; color:#171717; border:0; }
.inner-page .page-contact h2 { font-size:32px; line-height:1.55; }
.inner-page .page-contact p { font-size:15px; line-height:1.9; color:#28241f; margin-top:16px; }
.inner-page .page-contact .button { min-width:230px; min-height:64px; background:#171717; color:#fff; box-shadow:none; border:1px solid #171717; border-radius:0; padding:18px 24px; }
.inner-page .site-footer { background:#171717; color:#fff; padding-block:48px; }
.inner-page .site-footer .brand { font-size:42px; }
.inner-page .site-footer .brand span { color:#ff805f; }
.inner-page .footer-nav { display:flex; flex-wrap:wrap; gap:10px 30px; border-color:#5d5d53; }
.inner-page .footer-nav a { display:flex; align-items:center; min-height:44px; color:#e5e4db; font-size:14px; }
.inner-page .footer-bottom { color:#cecec2; border-color:#5d5d53; }
@media(hover:hover) {
 .company-explore a:hover { background:#ffede4; }
 .inner-page .service-entry:hover { background:#fff7f0; }
}
@media(max-width:1050px) {
 .company-intro { gap:35px; }
 .inner-page .company-layout { grid-template-columns:.6fr 1.4fr; gap:30px; }
 .inner-page .process .process-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .inner-page .page-contact { grid-template-columns:1fr; gap:25px; }
 .inner-page .page-contact .button { justify-self:start; }
}
@media(max-width:800px) {
 .inner-page .page-heading { padding-block:20px 35px; margin-bottom:35px; }
 .inner-page .page-heading>.section-label { font-size:clamp(46px,11vw,78px); margin-bottom:20px; }
 .inner-page .page-heading h1 { font-size:32px; }
 .inner-page .page-heading .page-lead { font-size:15px; }
 .inner-page .breadcrumbs { margin-bottom:30px; }
 .company-intro { grid-template-columns:1fr 1fr; gap:24px; padding-block:15px 45px; }
 .company-intro h2 { font-size:36px; }
 .company-intro-visual { padding:20px; }
 .company-intro-visual img { height:145px; margin-top:-20px; }
 .inner-page .company { padding:28px; }
 .inner-page .company-layout { grid-template-columns:1fr; gap:25px; }
 .inner-page .company-layout>div>p { margin-top:10px; }
 .about-page .about { padding:30px; margin-bottom:45px; }
 .about-page .about-message>div { grid-template-columns:1fr; gap:24px; }
 .about-page .about-message h2 { font-size:30px; }
 .inner-page .why-story { grid-template-columns:1fr; gap:25px; padding-block:35px 45px; }
 .inner-page .why-story h2 { font-size:30px; }
 .inner-page .proof>.wrap { grid-template-columns:1fr; gap:25px; }
 .inner-page .proof h2 { font-size:30px; }
 .inner-page .service-card-image>img { height:210px; }
 .inner-page .service-entry h3 { font-size:21px; }
 .inner-page :is(.map-layout,.line-layout,.social-intro) { gap:30px; }
 .inner-page .contact-channels,.inner-page .contact-layout { grid-template-columns:1fr; gap:28px; }
 .inner-page .contact-section { padding-block:40px; }
 .inner-page .process { padding:28px; }
 .inner-page .process h2 { font-size:28px; }
 .inner-page .page-contact { padding:30px; }
 .inner-page .page-contact h2 { font-size:28px; }
}
@media(max-width:560px) {
 .inner-page .page-heading h1 { font-size:29px; }
 .company-intro { grid-template-columns:1fr; padding-top:0; }
 .company-intro h2 { font-size:39px; margin-block:18px; }
 .company-intro-visual { display:grid; grid-template-columns:.7fr 1fr; align-items:center; gap:15px; }
 .company-visual-word { font-size:57px; }
 .company-intro-visual img { width:100%; height:145px; margin:0; }
 .company-intro-visual figcaption { grid-column:1/-1; margin:0; }
 .inner-page .company { padding:24px 20px; margin-bottom:45px; }
 .inner-page .company-layout dl>div { grid-template-columns:1fr; gap:9px; padding-block:20px; }
 .inner-page .company-layout dt::before { display:inline-block; vertical-align:middle; margin:0 9px 3px 0; width:13px; }
 .inner-page .company-layout dd { font-size:15px; }
 .company-explore { margin-bottom:45px; }
 .company-explore h2 { font-size:28px; }
 .company-explore>div:last-child { grid-template-columns:1fr; gap:16px; }
 .company-explore a { padding:24px 55px 24px 22px; }
 .company-explore h3 { font-size:24px; }
 .about-index { gap:8px 25px; }
 .about-index a { font-size:13px; gap:20px; }
 .about-page .about { padding:25px 20px; }
 .about-page .about-message h2 { font-size:26px; }
 .inner-page .why-story h2 { font-size:27px; }
 .inner-page .why-story .story-body p { font-size:15px; }
 .inner-page .service-directory { grid-template-columns:1fr; gap:30px; }
 .inner-page .service-entry { grid-template-columns:32px minmax(0,1fr) 22px; gap:18px 10px; }
 .inner-page .service-card-image>img { height:220px; }
 .inner-page .service-entry h3 { font-size:21px; }
 .inner-page .related-services>div { grid-template-columns:1fr; }
 .inner-page .related-services>div>a { padding-block:18px; }
 .inner-page .process { padding:25px 20px; }
 .inner-page .process .process-steps { grid-template-columns:1fr; }
 .inner-page .process-steps li { display:grid; grid-template-columns:52px minmax(0,1fr); gap:9px 15px; padding:20px 15px; }
 .inner-page .process-steps li>span { grid-row:1/3; }
 .inner-page .process-steps h3 { margin:0; font-size:19px; }
 .inner-page .process-steps p { grid-column:2; font-size:14px; }
 .inner-page .contact-method { padding:23px 20px; }
 .inner-page .contact-method-value { font-size:18px; }
 .inner-page .contact-form { padding:25px 20px; }
 .inner-page .faq h2 { font-size:27px; }
 .inner-page .faq summary { font-size:15px; }
 .inner-page .page-contact { padding:28px 23px; margin-bottom:35px; }
 .inner-page .page-contact h2 { font-size:26px; }
 .inner-page .page-contact .button { width:100%; min-width:0; justify-self:stretch; }
 .inner-page .site-footer .brand { font-size:34px; }
 .inner-page .footer-nav { gap:7px 20px; }
 .inner-page .footer-bottom { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
}
.inner-page .directory-arrow { font-size:21px; line-height:1.2; text-align:center; }

.inner-page :is(h1,h2,h3) { text-wrap:balance; }
.inner-page .balanced-phrase { display:inline-block; max-width:100%; }
.inner-page .contact-channels { background:none; border:0; border-radius:0; box-shadow:none; padding:0 0 60px; }
.inner-page .contact-methods { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.inner-page .contact-method { text-align:left; align-items:flex-start; }
.inner-page .contact-method--phone .contact-method-value { color:#fff; }
.inner-page .contact-method--phone .contact-method-kicker { color:#ffad95; }
.inner-page .contact-method--phone .contact-method-arrow { color:#ffad95; }
.inner-page .contact-method--email .contact-method-value { color:#33352d; }
.inner-page .contact-heading,.inner-page .contact-heading h2 { text-align:left; }
.inner-page .contact-heading h2,.inner-page .contact-heading>p:last-child { margin-inline:0; }
