/* Public copy additions share the existing theme palette. */
.exw-contact-guidance { margin: 2rem 0; padding: clamp(20px, 4vw, 32px); border-left: 4px solid #00a85a; border-radius: 12px; background: #e7f4ee; color: #00273d; }
.exw-contact-guidance h3 { font-size: 1.2rem; line-height: 1.6; margin: 0 0 1rem; }
.exw-contact-guidance p { font-size: .95rem; line-height: 1.9; margin: 1rem 0; }
.exw-contact-guidance .main-btn { max-width: 100%; box-sizing: border-box; white-space: normal; }
.about__youtube-item .exw-video-role { display: block; color: #00273d; font-weight: 700; font-size: .9rem; line-height: 1.7; margin: 0 0 .75rem; }
.line-floating-wrap .line-floating-banner { width: 240px; padding: 16px 20px; box-sizing: border-box; background: #087a45; color: #fff; border-radius: 14px; box-shadow: 0 4px 16px #00273d26; }
.line-floating-banner .exw-line-kicker { display: block; font-size: 13px; line-height: 1.5; }
.line-floating-banner .exw-line-label { display: block; font-size: 18px; line-height: 1.6; }
.line-floating-wrap .line-floating-banner::before, .line-floating-wrap .line-floating-banner::after { display: none; }
.line-floating-wrap .line-floating-close { width: 32px; height: 32px; left: -14px; top: -20px; }
@media (max-width: 600px) {
    .line-floating-wrap { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); }
    .line-floating-wrap .line-floating-banner { width: 172px; padding: 9px 14px; border-radius: 12px; }
    .line-floating-banner .exw-line-kicker { font-size: 11px; }
    .line-floating-banner .exw-line-label { font-size: 14px; }
    .line-floating-wrap .line-floating-close { left: -36px; top: 6px; width: 36px; height: 36px; }
}

.exw-home-intro { padding: 28px 6%; background: #f5fbff; color: #00273d; text-align: center; }
.exw-home-intro p { margin: 0 auto; max-width: 900px; font-size: clamp(17px, 2vw, 24px); font-weight: 700; line-height: 1.8; }
.exw-business-label { display: none; }
.home .about__text-title > h3 > .exw-profile-person { color: inherit; }
.home .about__text-title > h3 > .exw-copy-chunk,
.cta__title > h2 > .exw-copy-chunk,
.service-intro__text > p > .exw-copy-chunk { color: inherit; }

/* Inline on desktop; phones wrap between phrases instead of inside a short word. */
@media (max-width: 600px) {
    .container .exw-copy-chunk { display: inline-block; max-width: 100%; vertical-align: baseline; word-break: normal; overflow-wrap: break-word; }
    .container br.exw-soft-break { display: none; }
    .service-intro__text > h3 { font-size: clamp(16px, 4.6vw, 19.6px); line-height: 1.7; }
    .service-intro__text > h3 > .exw-copy-chunk:first-child { color: #00b4d2; }
}

/* Give mobile copy quieter emphasis and remove only the confirmed desktop break. */
@media (max-width: 600px) {
    .home .exw-home-intro { padding: 20px 6% 22px; background: #00273d; color: #f5fbff; text-align: left; }
    .home .exw-business-label { display: block; margin: 0 0 8px; color: #e6c36a; font-size: 11px; font-weight: 500; line-height: 1.5; letter-spacing: .08em; }
    .home .exw-home-intro p { font-size: 14px; font-weight: 500; line-height: 1.9; }
    .home .about__img-name { flex-direction: column; align-items: center; gap: 6px; white-space: normal; text-align: center; }
    .home .about__img-name > span { font-size: 12px; line-height: 1.6; }
    .home .about__img-name > p { font-size: 21px; line-height: 1.5; }
    .home .about__text-title > h3 { font-size: 14px; line-height: 1.9; font-weight: 500; line-break: strict; }
    .home .about__text-title > h3 > .exw-profile-person { display: inline-block; white-space: nowrap; }
    .home .top-youtube > p { font-size: 14px; line-height: 1.9; }
    .home .top-youtube > p br { display: none; }
    .home .about__youtube-item h3 { line-break: strict; line-height: 1.8; }
    .cta .cta__title > .cta__lead { font-size: 14px; font-weight: 400; line-height: 1.9; text-align: left; line-break: strict; }
}

/* A quiet guide between customer stories and the existing consultation links. */
.exw-consultation-flow { padding: clamp(48px, 7vw, 96px) 6%; background: #f5fbff; color: #00273d; }
.exw-consultation-flow__inner { max-width: 960px; margin: 0 auto; }
.exw-consultation-flow__eyebrow { font-size: 13px; font-weight: 700; letter-spacing: .08em; margin: 0 0 12px; }
.exw-consultation-flow h2 { font-size: clamp(25px, 3.2vw, 38px); line-height: 1.5; margin: 0 0 16px; }
.exw-consultation-flow__lead { font-size: clamp(14px, 1.6vw, 17px); line-height: 1.9; margin: 0 0 36px; }
.exw-consultation-flow__steps { list-style: none; padding: 0; margin: 0; }
.exw-consultation-flow__steps li { display: grid; grid-template-columns: 52px 1fr; gap: 24px; position: relative; padding: 0 0 28px; }
.exw-consultation-flow__steps li:not(:last-child)::before { content: ""; position: absolute; top: 52px; bottom: 0; left: 25px; width: 2px; background: #c8ded9; }
.exw-consultation-flow__steps li:last-child { padding-bottom: 0; }
.exw-consultation-flow__number { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #e0efe9; font-size: 18px; font-weight: 700; color: #087a45; }
.exw-consultation-flow__steps h3 { font-size: clamp(17px, 2vw, 21px); line-height: 1.6; margin: 8px 0; }
.exw-consultation-flow__steps p { font-size: 15px; line-height: 1.9; margin: 0; }
@media (max-width: 600px) {
    .exw-consultation-flow__steps li { grid-template-columns: 40px 1fr; gap: 16px; padding-bottom: 24px; }
    .exw-consultation-flow__number { width: 40px; height: 40px; font-size: 15px; }
    .exw-consultation-flow__steps li:not(:last-child)::before { left: 19px; top: 40px; }
    .exw-consultation-flow__steps h3 { margin-top: 4px; }
    .exw-consultation-flow__steps p { font-size: 14px; }
}

/* Preserve the original hamburger geometry while using a native button. */
button.openbtn[data-exw-menu] {
    appearance: none;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    color: inherit;
    font: inherit;
}
button.openbtn[data-exw-menu]:focus-visible {
    outline: 2px solid #ffd600;
    outline-offset: 6px;
}
button.openbtn[data-exw-menu].active span {
    background-color: #fff;
}
#g-nav[data-exw-menu-panel] {
    transition: right .5s ease, visibility 0s;
}
#g-nav[data-exw-menu-panel][aria-hidden="true"] {
    visibility: hidden;
    transition: right .5s ease, visibility 0s .5s;
}
#g-nav[data-exw-menu-panel] a:focus-visible {
    outline: 2px solid #ffd600;
    outline-offset: 4px;
}

/* Keep neutral word wrappers from inheriting the theme's decorative span styles. */
.container .exw-word { all: unset !important; display: inline !important; }
@media (max-width: 600px) {
    .container .exw-word { display: inline-block !important; max-width: 100% !important; vertical-align: baseline !important; word-break: normal !important; overflow-wrap: break-word !important; }
    .container :is(p, dd, h1, h2, h3, h4, h5, summary) { text-wrap: pretty; line-break: strict; }
    :is(.philosophy__text, .profile-summary, .profile-thought, .service-intro__text, .service-detail, .recruit-message, .recruit-job, .recruit-faq, .contact__lead, .thanks__text, .news-single__content, .beginner-guide) p br.exw-prose-break { display: none; }
    .philosophy__inner { width: calc(100% - 32px); padding: 28px 20px; gap: 24px; }
    .philosophy__text h3 { margin-top: 8px; }
    .philosophy__text p:empty { display: none; }
    .philosophy__text p, .profile-thought p, .recruit-faq p { line-height: 1.95; }
    .beginner-guide__head { grid-template-columns: 1fr; gap: 16px; }
    .beginner-guide__head-image { width: 100px; margin: 0 auto; }
    .beginner-guide__head-text p, .beginner-guide .guide-card p, .beginner-guide .guide-card li p { font-size: 14px; line-height: 1.9; }
    .beginner-guide h5 { font-size: 15px; line-height: 1.8; }
    .contact__form { padding-left: 16px; padding-right: 16px; }
    .exw-contact-guidance { margin-top: 0; padding: 20px 14px; }
    .exw-contact-guidance p { font-size: 14px; }
    .service-contact > p { font-size: 18px; line-height: 1.8; }
    .news-single__head h1 { font-size: clamp(20px, 5.3vw, 24px); line-height: 1.7; }
    .news-single-page .breadcrumb { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; }
    .news-single-page .breadcrumb > span { flex-basis: 100%; font-size: 12px; line-height: 1.7; }
    .news-single__content a { overflow-wrap: anywhere; }
    .lower-hero h1 { text-wrap: balance; }
}
