/* style.css */
/*
Theme Name: Suntec
Description: Custom WordPress theme for Suntec Co., Ltd.
Version: 1.0.0
*/

/* 1. Variables / Reset */
:root {
    --color-accent: #CD4225;
    --color-text: #333333;
    --color-black: #000000;
    --color-white: #FFFFFF;
    --color-muted: #666666;
    --color-border: #E5E5E5;
    --color-background: #F7F7F7;
    --font-japanese: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    --font-english: Roboto, Arial, sans-serif;
    --container-width: 1120px;
    --header-height: 120px;
    --space-1: 8px;
    --space-2: 16px;
    --space-3: 24px;
    --space-4: 32px;
    --space-5: 40px;
    --space-6: 48px;
    --space-8: 64px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    color: var(--color-text);
    background: var(--color-white);
    font-family: var(--font-japanese);
    font-size: 16px;
    line-height: 1.8;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

a {
    color: inherit;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

button,
input,
textarea,
select {
    font: inherit;
}

:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 3px;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* 2. Base Typography */
h1,
h2,
h3,
p {
    margin-top: 0;
}

h1,
h2,
h3,
.site-branding__name,
.site-footer__partner-name {
    font-weight: 700;
    line-height: 1.4;
}

h1 {
    margin-bottom: var(--space-4);
    font-size: clamp(1.75rem, 1.45rem + 1.2vw, 2.5rem);
}

h2 {
    margin-bottom: var(--space-3);
    font-size: clamp(1.5rem, 1.3rem + 0.8vw, 2rem);
}

h3 {
    margin-bottom: var(--space-1);
    font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.375rem);
}

p {
    margin-bottom: var(--space-2);
}

/* 3. Layout */
.site {
    min-height: 100vh;
    overflow-x: clip;
}

.layout-container {
    width: min(100% - 32px, var(--container-width));
    margin-inline: auto;
}

.site-main {
    padding: calc(var(--header-height) + var(--space-8)) 0 var(--space-8);
}

/* 4. Header */
.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    width: 100%;
    min-height: var(--header-height);
    color: var(--color-white);
    background: #000000;
}

.site-header--solid {
    color: var(--color-text);
    background: var(--color-white);
    box-shadow: none;
}

.site-header--transparent {
    position: absolute;
    color: var(--color-white);
    background: linear-gradient(to bottom,
            rgba(0, 0, 0, 1) 0%,
            rgba(0, 0, 0, 0.5) 86.9518%,
            rgba(0, 0, 0, 0) 100%);
    box-shadow: none;
}

.site-header__inner {
    display: flex;
    width: calc(100% - 54px);
    max-width: none;
    min-height: var(--header-height);
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

.site-branding {
    display: inline-flex;
    align-items: center;
    gap: 17px;
    min-width: 403px;
    color: inherit;
    text-decoration: none;
}

.site-branding__logo {
    display: block;
    width: 273px;
    height: auto;
}

.site-branding__group-logo {
    display: block;
    width: 113px;
    height: auto;
    background: var(--color-white);
}

/* 5. Navigation */
.site-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 38px;
}

.site-nav__list {
    display: flex;
    align-items: center;
    gap: 38px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.site-nav__link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: inherit;
    font-size: 0.9375rem;
    font-weight: 400;
    letter-spacing: 0.18em;
    line-height: 1.4;
    text-decoration: none;
}

.site-nav__link:hover {
    color: var(--color-accent);
}

.site-nav__contact {
    display: inline-flex;
    width: 210px;
    height: 50px;
    align-items: center;
    justify-content: center;
    gap: 11px;
    padding: 0 22px;
    color: var(--color-white);
    background: var(--color-accent);
    border-radius: 999px;
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.site-nav__contact i {
    flex: 0 0 auto;
    font-size: 1.1765em;
    line-height: 1;
    transform: translateY(1px);
}

.site-nav__contact span {
    white-space: nowrap;
}

.site-nav__contact:hover {
    background: #B9361D;
}

.site-nav-toggle {
    display: none;
    position: relative;
    width: 48px;
    height: 48px;
    padding: 0;
    color: inherit;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.site-nav-toggle__bar,
.site-nav-toggle__bar::before,
.site-nav-toggle__bar::after {
    position: absolute;
    left: 10px;
    width: 28px;
    height: 2px;
    background: currentColor;
    content: "";
}

.site-nav-toggle__bar {
    top: 23px;
}

.site-nav-toggle__bar::before {
    top: -9px;
    left: 0;
}

.site-nav-toggle__bar::after {
    top: 9px;
    left: 0;
}

/* 6. Shared Contact Block */
.footer-contact {
    position: relative;
    min-height: 588px;
    padding-top: 14px;
    overflow: hidden;
    background: var(--color-white);
}

.footer-contact__background {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    top: 115px;
    background: linear-gradient(rgba(0, 0, 0, 0.56), rgba(0, 0, 0, 0.56)), url("assets/images/shared/contact-section-bg.jpg") center 37% / auto;
    filter: none;
}

@media (min-width: 1367px) {
    .footer-contact__background {
        background-size: auto, cover;
    }
}

.footer-contact__panel {
    position: relative;
    z-index: 2;
    display: block;
    overflow: hidden;
    width: min(1000px, calc(100% - 48px));
    height: 377px;
    min-height: 0;
    padding: 0;
    background: #ECECEC;
    border-radius: 30px;
    box-shadow: none;
    text-align: center;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.footer-contact__heading {
    margin-bottom: 0;
    text-align: center;
}

.footer-contact__subtitle {
    margin: 23px 0 0;
    color: var(--color-accent);
    font-family: var(--font-english), var(--font-japanese);
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
}

.footer-contact__title {
    margin: 29px 0 0;
    font-size: 36px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: center;
    text-indent: 0.1em;
    font-feature-settings: "palt";
}

.footer-contact__lead {
    max-width: none;
    margin: 27px 0 0;
    color: var(--color-text);
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.04em;
}

.footer-contact__grid {
    display: flex;
    justify-content: center;
    margin-top: 44px;
}

.footer-contact__item {
    position: relative;
    display: block;
    width: 275px;
    min-height: auto;
    padding: 10px 0 0;
    text-align: center;
}

.footer-contact__item+.footer-contact__item {
    border-left: 0;
}

.footer-contact__item+.footer-contact__item::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 148px;
    background: #CCCCCC;
    content: "";
}

.footer-contact__method-icon {
    display: block;
    width: auto;
    height: 38px;
    margin: 0 auto;
    object-fit: contain;
}

.footer-contact__method-icon--phone,
.footer-contact__method-icon--mail,
.footer-contact__method-icon--chat {
    flex: 0 0 auto;
}

.footer-contact__method-icon.footer-contact__method-icon--phone {
    height: 34.5px;
}

.footer-contact__method-icon.footer-contact__method-icon--mail {
    height: 30px;
}

.footer-contact__item-title {
    margin: 16px 0 0;
    color: var(--color-text);
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.04em;
}

.footer-contact__item--mail .footer-contact__item-title {
    margin-top: 21px;
}

.footer-contact__text {
    margin-bottom: 0;
    color: var(--color-text);
    font-size: 14px;
    line-height: 1;
}

.footer-contact__tel {
    display: inline-block;
    margin-top: 15.5px;
    color: var(--color-text);
    font-family: var(--font-english), var(--font-japanese);
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.031em;
}

.footer-contact__link {
    position: relative;
    display: inline-flex;
    width: 210px;
    height: 50px;
    min-width: 0;
    min-height: 0;
    align-items: center;
    justify-content: center;
    margin-top: 16.3px;
    padding: 0 25.2px 0 0;
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid var(--color-text);
    border-radius: 25px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.11em;
    text-decoration: none;
    text-indent: 0.11em;
    white-space: nowrap;
}

.footer-contact__link[href]:hover {
    filter: brightness(0.94);
}

.footer-contact__link--static {
    cursor: default;
    pointer-events: none;
}

.footer-contact__link::after {
    content: none;
}

.footer-contact__arrow {
    position: absolute;
    top: 50%;
    right: 30px;
    width: 25.8px;
    height: 14px;
    flex: 0 0 auto;
    transform: translateY(-50%);
}

.footer-contact__arrow-top {
    fill: #D71522;
}

.footer-contact__arrow-bottom {
    fill: #9D1F24;
}

.footer-contact__item--static .footer-contact__text {
    color: var(--color-text);
    font-weight: 700;
}

.footer-contact__partners {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    gap: 30px;
    margin-top: 65px;
}

.footer-contact__partner-link {
    display: grid;
    min-width: 240px;
    min-height: 64px;
    place-items: center;
    padding: 5px 24px;
    background: var(--color-white);
    text-decoration: none;
}

.footer-contact__partner-link:hover {
    opacity: 0.72;
}

.footer-contact__partner-link--kimura {
    width: 240px;
    padding: 5px 10px;
}

.footer-contact__partner-logo {
    display: block;
    width: auto;
    max-width: 148px;
    height: auto;
    max-height: 52px;
    object-fit: contain;
}

/* 7. Footer */
.footer-contact__partner-logo--kimura {
    max-width: 226px;
    max-height: unset;
}

.site-footer {
    color: var(--color-text);
    background: var(--color-white);
}

.site-footer__main {
    color: var(--color-text);
    background: var(--color-white);
}

.site-footer__inner {
    display: grid;
    grid-template-columns: 330px 1fr;
    gap: 80px;
    align-items: center;
    width: min(1090px, calc(100% - 48px));
    max-width: none;
    min-height: 0;
    padding: 33px 0 34px;
}

.site-footer__logo {
    display: block;
    width: 272px;
    height: auto;
    margin-bottom: 16px;
    filter: none;
}

.site-footer__address {
    margin-bottom: 0;
    color: #777777;
    font-style: normal;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 28px;
    letter-spacing: 0.06em;
}

.site-footer__address-line {
    display: block;
}

.site-footer__address-line--postal {
    letter-spacing: 0.04em;
}

.site-footer__address-line--location {
    letter-spacing: 0.055em;
}

.site-footer__address-line--contact {
    display: flex;
    flex-wrap: wrap;
    gap: 0 14.5px;
}

.site-footer__address-tel {
    letter-spacing: 0.037em;
}

.site-footer__address-fax {
    letter-spacing: 0.062em;
}

.site-footer__nav-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 28px 36px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.site-footer__nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    line-height: 1.4;
    text-decoration: none;
}

.site-footer__nav-link--contact {
    min-width: 210px;
    min-height: 50px;
    gap: 3px;
    padding: 10px 28px;
    color: var(--color-white);
    background: var(--color-accent);
    border-radius: 999px;
    font-size: 1.0625rem;
    font-weight: 500;
    letter-spacing: 0.17em;
    line-height: 1;
    white-space: nowrap;
}

.site-footer__nav-link--contact::after {
    content: none;
}

.site-footer__nav-link--contact i {
    flex: 0 0 auto;
    font-size: 1.1765em;
    line-height: 1;
    transform: translateY(1px);
}

.site-footer__nav-link--contact span {
    white-space: nowrap;
}

.site-footer__nav-link:hover {
    color: var(--color-accent);
}

.site-footer__nav-link--contact:hover {
    color: var(--color-white);
    background: #B9361D;
}

.site-footer__copyright {
    display: flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    color: #666666;
    background: #E8E8E8;
    font-family: var(--font-japanese), var(--font-english);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1.5;
    text-align: center;
}

.site-footer__copyright small {
    font: inherit;
    letter-spacing: inherit;
}

/* 8. Responsive Rules */
@media (max-width: 1100px) {
    :root {
        --header-height: 86px;
    }

    .site-header__inner {
        width: calc(100% - 40px);
    }

    .site-branding {
        min-width: 0;
        position: relative;
        z-index: 2;
    }

    .site-branding__logo {
        width: 230px;
    }

    .site-branding__group-logo {
        width: 96px;
    }

    .site-nav-toggle {
        display: inline-flex;
        flex: 0 0 auto;
        z-index: 2;
    }

    .site-nav {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        max-height: 0;
        padding: var(--header-height) 20px 0;
        overflow: hidden;
        color: var(--color-white);
        background: var(--color-black);
        border-top: 0;
        box-shadow: 0 16px 40px rgba(0, 0, 0, 0.24);
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
        transition:
            max-height 300ms ease,
            padding-bottom 300ms ease,
            opacity 180ms ease,
            visibility 0s linear 300ms;
    }

    .has-open-site-nav .site-nav {
        max-height: 100vh;
        padding-bottom: 20px;
        opacity: 1;
        pointer-events: auto;
        visibility: visible;
        transition:
            max-height 300ms ease,
            padding-bottom 300ms ease,
            opacity 180ms ease,
            visibility 0s;
    }

    .site-nav__list {
        display: grid;
        gap: 0;
        padding: 0;
    }

    .site-nav__link {
        width: 100%;
        padding: 14px 0;
        color: #EAEAEA;
    }

    .site-header--solid .site-nav {
        color: var(--color-text);
        background: var(--color-white);
        border-top-color: var(--color-border);
        box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
    }

    .site-header--solid .site-nav__link {
        color: var(--color-text);
    }

    .site-nav__contact {
        width: min(100%, 260px);
        height: auto;
        min-height: 50px;
        margin-top: 12px;
    }

    .footer-contact {
        min-height: 0;
        padding: 80px 0 72px;
    }

    .footer-contact__background {
        height: 58%;
    }

    .footer-contact__panel {
        height: auto;
        min-height: 0;
        padding: 38px 28px 34px;
        border-radius: 28px;
    }

    .footer-contact__grid {
        flex-direction: column;
        align-items: center;
    }

    .footer-contact__item {
        width: min(100%, 275px);
        min-height: 150px;
        padding: 24px 18px;
    }

    .footer-contact__item+.footer-contact__item {
        border-top: 1px solid #CCCCCC;
        border-left: 0;
    }

    .footer-contact__item+.footer-contact__item::before {
        display: none;
    }

    .footer-contact__partners {
        margin-top: 40px;
    }

    .site-footer__inner {
        grid-template-columns: 1fr;
        gap: var(--space-4);
        padding: 48px 0;
    }

    .site-footer__company {
        order: 2;
        justify-self: start;
    }

    .site-footer__nav {
        order: 1;
        justify-self: end;
    }

    .site-footer__nav-list {
        justify-content: flex-end;
        gap: 18px 32px;
    }

    @media (prefers-reduced-motion: reduce) {

        .site-nav,
        .has-open-site-nav .site-nav {
            transition: none;
        }
    }
}

@media (max-width: 767px) {
    :root {
        --header-height: 76px;
    }

    body {
        font-size: 15px;
    }

    .layout-container {
        width: min(100% - 24px, var(--container-width));
    }

    .site-header__inner {
        width: calc(100% - 24px);
    }

    .site-branding {
        gap: 10px;
    }

    .site-branding__logo {
        width: 164px;
    }

    .site-branding__group-logo {
        width: 76px;
    }

    .site-main {
        padding: calc(var(--header-height) + var(--space-5)) 0 var(--space-6);
    }

    .footer-contact {
        padding: 56px 0 48px;
    }

    .footer-contact__panel {
        width: min(100% - 24px, 1000px);
        padding: 32px 18px 28px;
        border-radius: 24px;
    }

    .footer-contact__title {
        margin-bottom: 0;
    }

    .footer-contact__lead {
        font-size: 0.875rem;
        line-height: 1.7;
    }

    .footer-contact__tel {
        font-size: 1.625rem;
    }

    .footer-contact__link {
        min-width: 0;
        width: 100%;
        max-width: 240px;
    }

    .footer-contact__partners {
        display: grid;
        gap: 18px;
        justify-items: center;
        margin-top: 32px;
    }

    .footer-contact__partner-link {
        width: min(100%, 260px);
    }

    .footer-contact__partner-link--kimura {
        width: 240px;
        padding: 10px;
    }

    .site-footer__inner {
        width: min(100% - 24px, 1090px);
        gap: var(--space-3);
        padding: var(--space-5) 0;
    }

    .site-footer__logo {
        width: min(100%, 260px);
    }

    .site-footer__nav-list {
        display: grid;
        justify-content: end;
        gap: 14px;
    }
}

/* Home — Shared */
.home-main {
    background: var(--color-white);
}

.home-section-label {
    margin-bottom: var(--space-1);
    color: var(--color-accent);
    font-family: var(--font-english), var(--font-japanese);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4;
}

.home-section-title {
    margin-bottom: 17px;
    font-size: clamp(1.75rem, 1.42rem + 1vw, 2.25rem);
}

.home-lead {
    font-size: clamp(1rem, 0.94rem + 0.25vw, 1.125rem);
    line-height: 2.15;
}

.home-lead strong {
    color: var(--color-accent);
    font-weight: 700;
}

.home-pill {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    min-width: 220px;
    min-height: 52px;
    padding: 12px 18px 12px 22px;
    color: var(--color-white);
    background: var(--color-accent);
    font-weight: 700;
    text-decoration: none;
    border-radius: 999px;
}

.home-pill:hover {
    background: #B9361E;
}

.home-pill__arrow {
    display: block;
    width: 25.8px;
    height: 14px;
    flex: none;
}

.home-pill__arrow-part {
    transition: fill 0.35s ease;
}

.home-pill__arrow-part--1 {
    fill: #D71522;
}

.home-pill__arrow-part--2 {
    fill: #9D1F24;
}

/* Home — Hero */
.home-hero {
    position: relative;
    display: grid;
    align-items: center;
    min-height: 767px;
    overflow: hidden;
    color: var(--color-white);
    background: var(--color-black);
}

.home-hero__media,
.home-hero__media::after {
    position: absolute;
    inset: 0;
}

.home-hero__media::after {
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.58), rgba(0, 0, 0, 0.18) 55%, rgba(0, 0, 0, 0.22));
    content: "";
}

.home-hero__image,
.home-hero__video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-hero__inner {
    position: relative;
    z-index: 1;
    padding-top: calc(var(--header-height) + 330px);
}

.home-hero__catch {
    max-width: 720px;
    margin: 0;
    font-size: clamp(2.25rem, 1.35rem + 3.2vw, 4.5rem);
    line-height: 1.34;
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.3);
    padding-left: 56px;
    letter-spacing: 0.205em;
}

/* Home — Strengths */
.home-strengths {
    position: relative;
    height: 1709.807px;
    overflow: hidden;
    background: var(--color-white);
}

.home-strengths__inner {
    position: relative;
    width: 100%;
    max-width: 1366px;
    height: 1709.807px;
    margin-inline: auto;
}

.home-strengths__art {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.home-strengths__lead {
    position: absolute;
    z-index: 2;
    top: 110.5px;
    left: 182px;
    width: 820px;
    max-width: none;
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 2.3333;
    letter-spacing: 0.093em;
    font-feature-settings: "palt" 1;
    text-align: left;
}

.home-strengths__lead strong,
.home-strengths__body strong {
    color: var(--color-accent);
    font-weight: 700;
}

.home-strengths__wordmark {
    position: absolute;
    z-index: 1;
    top: 274px;
    left: 0px;
    display: block;
    width: max-content;
    max-width: none;
    margin: 0;
    color: #F0F0F0;
    font-family: "Roboto Condensed", sans-serif;
    font-size: 167px;
    font-weight: 700;
    line-height: 0.56;
    letter-spacing: 0.197em;
    text-transform: uppercase;
    pointer-events: none;
}

.home-strengths__photo {
    position: absolute;
    display: block;
    max-width: none;
    object-fit: cover;
}

.home-strengths__photo--line {
    top: 381.883px;
    left: 0;
    width: 1145px;
    height: 500px;
    object-position: left top;
    clip-path: polygon(0 0, 1141.758px 0, 641.758px 500px, 0 500px);
}

.home-strengths__photo--drill {
    top: 948.132px;
    left: 613.412px;
    width: 1174.228px;
    height: 783.201px;
    clip-path: polygon(1638.003px 21.613px, 509.756px 21.613px, -230.219px 761.588px, 898.028px 761.588px);
    mask-image: linear-gradient(90deg, transparent 0, #000 20%, #000 80%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20%, #000 80%, transparent 100%);
}

.home-strengths__title {
    position: absolute;
    top: 1000.13px;
    left: 170px;
    width: 575px;
    margin: 0;
    font-size: 71px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.0838em;
    font-feature-settings: "palt" 1;
    font-style: italic;
}

.home-strengths__body {
    position: absolute;
    top: 1122px;
    left: 181px;
    width: 640px;
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 2.3333;
    letter-spacing: 0.042em;
    font-feature-settings: "palt" 1;
}

.home-strengths__cta {
    position: absolute;
    top: 1519.5px;
    left: 182px;
    width: 210px;
    min-width: 0;
    height: 50px;
    min-height: 0;
    justify-content: center;
    padding: 0 25.2px 0 0;
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid var(--color-text);
    border-radius: 25px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.11em;
    text-indent: 0.11em;
    white-space: nowrap;
}

.home-strengths__cta:hover {
    color: var(--color-white);
    border-color: var(--color-accent);
    background: var(--color-accent);
}

.home-strengths__cta:hover .home-pill__arrow-part {
    fill: var(--color-white);
}

.home-strengths__cta .home-pill__arrow {
    position: absolute;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
}


/* Home — Products */
.home-products {
    padding: 112px 0 128px;
    background-color: #333333;
}

.home-products .home-section-title {
    letter-spacing: 0.12em;
    font-weight: 500;
}

.home-products .home-section-label,
.home-products .home-section-title {
    text-align: center;
}

.home-products .home-section-title {
    color: var(--color-white);
}

.home-products .home-section-label {
    color: #CD4225;
    font-family: var(--font-english), var(--font-japanese);
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.21em;
}

.home-products__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4) var(--space-3);
    padding: 0;
    margin: 0;
    list-style: none;
}

.home-card {
    display: grid;
    grid-template-rows: auto 1fr;
    min-height: 100%;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    overflow: hidden;
}

.home-card__figure {
    aspect-ratio: 620 / 496;
    margin: 0;
    background: #F0F0F0;
}

.home-card__figure--dark {
    background: #000000;
}

.home-card__figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-card__body {
    display: flex;
    flex-direction: column;
    padding: 19px 0 0;
}

.home-card__title {
    margin-bottom: var(--space-2);
    font-size: 1.125rem;
}

.home-card__text {
    margin-bottom: 0;
    color: var(--color-muted);
    font-size: 0.9375rem;
    line-height: 1.85;
}

.home-card__line {
    display: block;
}

.home-card__badge {
    display: inline-flex;
    width: 310px;
    height: 35.5px;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    color: #F03A1E;
    background: var(--color-white);
    font-family: var(--font-japanese), var(--font-english);
    font-size: 16px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.045em;
    text-indent: 0.045em;
    border-radius: 8px;
}

/* Home — Recruitment */
.home-recruit {
    position: relative;
    overflow: hidden;
    padding: 120px 0;
    color: var(--color-white);
    background: var(--color-accent);
}

.home-recruit__inner {
    position: relative;
    width: min(1000px, calc(100% - 80px));
    margin-inline: auto;
}

.home-recruit__art {
    display: none;
}

.home-recruit__photo {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1600 / 1067;
    object-fit: cover;
}

.home-recruit__head {
    margin-bottom: 64px;
    text-align: center;
}

.home-recruit .home-section-title {
    color: var(--color-white);
}

.home-recruit .home-section-label {
    margin-top: 22px;
    color: var(--color-white);
    font-family: var(--font-english), var(--font-japanese);
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
}

.home-recruit__catch {
    margin-top: 64px;
    font-size: min(71px, 6vw);
    font-weight: 600;
    line-height: 1.4085;
    letter-spacing: 0.103em;
    font-feature-settings: "palt" 1;
}

.home-recruit__body {
    width: min(520px, 100%);
    margin-top: 40px;
    margin-bottom: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 2.3333;
    letter-spacing: 0.042em;
}

/* Home — News */
.home-news {
    padding: 123px 0 112px;
    background: var(--color-white);
}

.home-news__inner {
    display: block;
}

.home-news__heading {
    margin-bottom: 62px;
    text-align: center;
}

.home-news__heading .home-section-title {
    margin-bottom: 18px;
    font-size: 2.3rem;
    font-weight: 700;
    line-height: 1.2;
}

.home-news__heading .home-section-label {
    margin-bottom: 0;
    color: var(--color-accent);
    font-family: var(--font-english), var(--font-japanese);
    line-height: 1;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.home-news__list {
    position: relative;
    width: min(100%, 770px);
    padding: 0;
    margin: 0 0 0 190px;
    list-style: none;
    border-top: 1px solid #D9D9D9;
}

.home-news__item {
    position: relative;
    border-bottom: 1px solid #D9D9D9;
}

.home-news__item::before {
    position: absolute;
    top: -1px;
    bottom: -1px;
    left: -31px;
    width: 3px;
    background: var(--color-accent);
    content: "";
}

.home-news__row {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 0;
    align-items: center;
    min-height: 74px;
    padding: 0;
    color: inherit;
    text-decoration: none;
}

.home-news__date {
    color: #555555;
    font-family: var(--font-english), var(--font-japanese);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.4;
}

.home-news__title {
    color: var(--color-text);
    font-size: 16px;
    line-height: 28px;
    letter-spacing: 0.06em;
    font-weight: 600;
}

/* Home — Responsive */
@media (max-width: 1024px) {
    .home-hero {
        min-height: 680px;
    }

    .home-products,
    .home-recruit,
    .home-news {
        padding-top: 88px;
        padding-bottom: 96px;
    }

    .home-strengths {
        height: auto;
        padding: 120px 0;
    }

    .home-strengths__inner {
        width: min(1000px, calc(100% - 80px));
        height: auto;
    }

    .home-strengths__art {
        display: none;
    }

    .home-strengths__lead,
    .home-strengths__wordmark,
    .home-strengths__photo,
    .home-strengths__title,
    .home-strengths__body,
    .home-strengths__cta {
        position: static;
        top: auto;
        left: auto;
        width: auto;
        height: auto;
        max-width: 100%;
        clip-path: none;
        mask-image: none;
        -webkit-mask-image: none;
    }

    .home-strengths__lead {
        width: min(820px, 100%);
        margin-inline: auto;
    }

    .home-strengths__wordmark {
        width: max-content;
        max-width: 100%;
        margin-top: 56px;
        font-size: clamp(5rem, 20vw, 13.25rem);
        line-height: 0.56;
    }

    .home-strengths__photo--line {
        width: 100%;
        margin-top: 24px;
    }

    .home-strengths__title {
        margin-top: 88px;
        font-size: min(71px, 6vw);
    }

    .home-strengths__body {
        width: min(640px, 100%);
        margin-top: 40px;
    }

    .home-strengths__cta {
        position: relative;
        display: inline-flex;
        width: 210px;
        height: 50px;
        margin-top: 48px;
    }

    .home-strengths__photo--drill {
        display: block;
        width: 100%;
        margin-top: 56px;
    }

    .home-products__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }


    .home-news__inner {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 1025px) and (max-width: 1100px) {
    .home-strengths {
        height: auto;
        padding: 120px 0;
    }

    .home-strengths__inner {
        width: min(1000px, calc(100% - 80px));
        height: auto;
    }

    .home-strengths__art {
        display: none;
    }

    .home-strengths__lead,
    .home-strengths__wordmark,
    .home-strengths__photo,
    .home-strengths__title,
    .home-strengths__body,
    .home-strengths__cta {
        position: static;
        top: auto;
        left: auto;
        width: auto;
        height: auto;
        max-width: 100%;
        clip-path: none;
        mask-image: none;
        -webkit-mask-image: none;
    }

    .home-strengths__lead {
        width: min(820px, 100%);
        margin-inline: auto;
    }

    .home-strengths__wordmark {
        width: max-content;
        max-width: 100%;
        margin-top: 56px;
        font-size: clamp(5rem, 20vw, 13.25rem);
        line-height: 0.56;
    }

    .home-strengths__photo--line {
        width: 100%;
        margin-top: 24px;
    }

    .home-strengths__title {
        margin-top: 88px;
        font-size: min(71px, 6vw);
    }

    .home-strengths__body {
        width: min(640px, 100%);
        margin-top: 40px;
    }

    .home-strengths__cta {
        position: relative;
        display: inline-flex;
        width: 210px;
        height: 50px;
        margin-top: 48px;
    }

    .home-strengths__photo--drill {
        display: block;
        width: 100%;
        margin-top: 56px;
    }
}

@media (max-width: 767px) {
    .home-section-title {
        margin-bottom: var(--space-3);
    }

    .home-lead {
        font-size: 0.9375rem;
        line-height: 1.9;
    }

    .home-hero {
        min-height: 560px;
    }

    .home-hero__catch {
        font-size: clamp(2rem, 1.32rem + 7vw, 3rem);
    }

    .home-products,
    .home-recruit,
    .home-news {
        padding-top: 64px;
        padding-bottom: 72px;
    }

    .home-strengths {
        padding: 72px 0;
    }

    .home-strengths__inner {
        width: calc(100% - 40px);
    }

    .home-strengths__lead,
    .home-strengths__body {
        font-size: 15px;
        line-height: 2.1;
    }

    .home-strengths__lead br,
    .home-strengths__body br {
        display: none;
    }

    .home-strengths__wordmark {
        width: max-content;
        max-width: 100%;
        margin-top: 40px;
        font-size: clamp(4rem, 22vw, 8rem);
        line-height: 0.56;
    }

    .home-strengths__title {
        font-size: 32px;
    }

    .home-products__grid {
        grid-template-columns: 1fr;
        gap: var(--space-3);
    }

    .home-card__body {
        padding: var(--space-2);
    }


    .home-card__title {
        font-size: 1.125rem;
    }

    .home-recruit__inner {
        gap: var(--space-4);
    }

    .home-recruit__catch {
        font-size: clamp(2rem, 1.4rem + 6vw, 3rem);
    }

    .home-news__list {
        width: 100%;
        margin-left: 0;
    }

    .home-news__item::before {
        left: 0;
    }

    .home-news__row {
        grid-template-columns: 1fr;
        gap: 4px;
        min-height: 0;
        padding: var(--space-2) 0 var(--space-2) 18px;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .home-news__list {
        width: 100%;
        margin-left: 0;
    }

    .home-news__item::before {
        left: 0;
    }

    .home-news__row {
        padding-left: 18px;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .home-news__list {
        width: 100%;
        margin-left: 0;
    }

    .home-news__item::before {
        left: 0;
    }

    .home-news__row {
        padding-left: 18px;
    }
}

@media (min-width: 1025px) {
    .home-products {
        padding-top: 118px;
        padding-bottom: 127.8px;
        color: var(--color-white);
        background-color: #333333;
    }

    .home-products__grid {
        grid-template-columns: repeat(3, 310px);
        justify-content: center;
        gap: 28px 35px;
        margin-top: 62px;
    }

    .home-card {
        background: transparent;
        border: 0;
        border-radius: 0;
        overflow: visible;
    }

    .home-card__figure {
        width: 310px;
        height: 248px;
        aspect-ratio: auto;
    }

    .home-card__body {
        padding: 19.3px 0 0;
    }

    .home-card__title {
        margin-bottom: 12.6px;
        font-size: 1.125rem;
        line-height: 1.35;
        letter-spacing: 0.014em;
        white-space: nowrap;
    }

    .home-card__text {
        color: rgba(255, 255, 255, 0.86);
        font-size: 0.875rem;
        font-weight: 500;
        line-height: 1.857;
        letter-spacing: 0.055em;
        font-feature-settings: "halt" 1;
        text-align: justify;
    }

    .home-recruit {
        height: 1298px;
        min-height: 0;
        padding: 0;
    }

    .home-recruit__inner {
        width: 100%;
        max-width: 1366px;
        height: 1298px;
    }

    .home-recruit__art {
        position: absolute;
        inset: 0;
        z-index: 2;
        display: block;
        width: 100%;
        height: 100%;
        pointer-events: none;
    }

    .home-recruit__photo {
        position: absolute;
        z-index: 1;
        top: -189.442px;
        left: -127.279px;
        width: 2229.527px;
        height: 1487.094px;
        max-width: none;
        aspect-ratio: auto;
        object-fit: cover;
        clip-path: polygon(965.809px 400.809px, 1838.76px 400.809px, 910.128px 1329.442px, 37.176px 1329.442px);
    }

    .home-recruit__head {
        position: absolute;
        z-index: 3;
        top: 126.193px;
        left: 0;
        width: 100%;
        margin: 0;
    }

    .home-recruit .home-section-title {
        margin: 0;
        font-size: 36px;
        font-weight: 600;
        line-height: 1;
        letter-spacing: 0.1em;
        text-align: center;
        text-indent: 0.1em;
        font-feature-settings: "palt" 1;
    }

    .home-recruit .home-section-label {
        margin: 10px 0 0;
        font-size: 18px;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0.2em;
        text-align: center;
        font-family: "Roboto", Arial, sans-serif;
        line-height: 42px;
    }

    .home-recruit__catch {
        position: absolute;
        z-index: 3;
        top: 311.523px;
        left: 181px;
        margin: 0;
        font-size: 71px;
        line-height: 1.4085;
        text-indent: 17px;
        font-style: italic;
    }

    .home-recruit__body {
        position: absolute;
        z-index: 3;
        top: 549.193px;
        left: 183px;
        width: 520px;
        margin: 0;
        font-weight: 300;
        letter-spacing: .055em;
    }

}

/* Strengths Page */
.strengths-main {
    padding: 0;
    background: var(--color-white);
    position: relative;
    margin-top: -120px;
}

.strengths-stage {
    position: relative;
    width: min(100%, 1366px);
    height: 100%;
    margin-inline: auto;
}

.strengths-section-heading {
    text-align: center;
}

.strengths-section-title {
    margin: 32px 0 0;
    font-size: 2.25rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 2.1px;
}

.strengths-section-en {
    margin: 24px 0 0;
    color: var(--color-accent);
    font-family: var(--font-english), var(--font-japanese);
    font-size: 1.125rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
}

.strengths-lead {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 2.333;
    letter-spacing: 0.067em;
}

.strengths-hero {
    height: 888px;
    overflow: hidden;
    background: var(--color-white);
}

.strengths-hero__visual,
.strengths-takumi__art {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.strengths-hero__visual {
    overflow: hidden;
}

.strengths-hero__visual-canvas {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1366px;
    height: 888px;
    transform: translateX(-50%);
    transform-origin: top center;
}

.strengths-hero__image,
.strengths-hero__stripe {
    position: absolute;
    inset: 0;
}

.strengths-hero__image {
    overflow: hidden;
}

.strengths-hero__image img {
    position: absolute;
    display: block;
    max-width: none;
    height: auto;
    user-select: none;
}

.strengths-hero__image--main {
    clip-path: polygon(762.635px 288.154px,
            165.576px 888.213px,
            1365.694px 888.213px);
}

.strengths-hero__image--main img {
    top: 212.837px;
    left: 150.074px;
    width: 1379.536px;
    height: 920.140px;
}

.strengths-hero__image--right {
    clip-path: polygon(1365.517px 888.213px,
            762.458px 288.154px,
            1965.576px 288.154px);
}

.strengths-hero__image--right img {
    top: 200.295px;
    left: 861.876px;
    width: 1055.239px;
    height: 703.836px;
}

.strengths-hero__image--top {
    clip-path: polygon(1360.517px -311.906px,
            762.458px 288.154px,
            1965.576px 288.154px);
}

.strengths-hero__image--top img {
    top: -109.276px;
    left: 757.17px;
    width: 851.661px;
    height: 568.051px;
}

.strengths-hero__stripe--pale {
    background: linear-gradient(90deg, #FCF6F4 0%, #F5D9D3 100%);
    clip-path: polygon(-76.193px 709.785px,
            -180.765px 709.785px,
            324.424px 204.596px,
            428.996px 204.596px);
}

.strengths-hero__stripe--medium {
    background: #EBB3A8;
    clip-path: polygon(435.711px 241.076px,
            350.262px 241.076px,
            471.124px 120.213px,
            556.574px 120.213px);
}

.strengths-hero__stripe--coral {
    background: #D76851;
    clip-path: polygon(133.695px 802.089px,
            81.248px 802.089px,
            232.305px 651.031px,
            284.752px 651.031px);
}

.strengths-hero__band {
    position: absolute;
    top: 335.791px;
    left: 0;
    display: flex;
    align-items: center;
    width: 990px;
    height: 172.8px;
    padding-left: 8.5px;
    background-image: linear-gradient(90deg, #CD4225 0%, #A51105 100%);
}

.strengths-hero__title {
    position: relative;
    top: -5.5px;
    margin: 0;
    color: var(--color-white);
    font-size: 8rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -1.30px;
    white-space: nowrap;
    font-feature-settings: "palt" 1;
    font-style: italic;
}

.strengths-hero__sub {
    position: absolute;
    top: 538.591px;
    left: 179.865px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 960px;
    height: 80px;
    margin: 0;
    padding: 0 12px 8px;
    color: var(--color-accent);
    background: var(--color-white);
    border: 2px solid var(--color-accent);
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.097em;
    text-align: center;
    text-indent: 0.097em;
    font-feature-settings: "palt" 1;
}

.strengths-breadcrumb {
    height: 45px;
    color: var(--color-white);
    background: var(--color-accent);
}

.strengths-breadcrumb__inner {
    display: flex;
    align-items: center;
    height: 45px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.06em;
}

.strengths-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.strengths-breadcrumb__sep {
    margin: 0 16px;
    font-size: 0.6875rem;
}

.strengths-intro {
    height: 743.282px;
    overflow: hidden;
}

.strengths-intro__art {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.strengths-intro__shape {
    position: absolute;
    inset: 0;
}

.strengths-intro__shape--left-pale {
    background: linear-gradient(90deg, #FCF6F4 0%, #F5D9D3 100%);
    clip-path: polygon(276px 0,
            521px 0,
            291px 230px,
            47px 230px);
}

.strengths-intro__shape--right-pale {
    background: linear-gradient(90deg, #FCF6F4 0%, #F5D9D3 100%);
    clip-path: polygon(1149.572px 690.785px,
            1045px 690.785px,
            1550.189px 185.596px,
            1654.761px 185.596px);
}

.strengths-intro__shape--right-coral {
    background: #D76851;
    clip-path: polygon(1225.447px 648.058px,
            1173px 648.058px,
            1324.057px 497px,
            1376.504px 497px);
}

.strengths-intro__head {
    position: absolute;
    top: 93px;
    left: 0;
    width: 100%;
}

.strengths-intro__body {
    position: absolute;
    top: 250px;
    left: 180px;
    width: 640px;
}

.strengths-intro__figure {
    position: absolute;
    top: 263.105px;
    left: 833px;
    width: 350px;
    margin: 0;
}

.strengths-intro__figure::before {
    position: absolute;
    top: -30px;
    left: 30px;
    z-index: 0;
    width: 350px;
    height: 350px;
    background: transparent;
    border: 2px solid #D76851;
    content: "";
}

.strengths-intro__figure img {
    position: relative;
    z-index: 1;
    display: block;
    width: 350px;
    height: 350px;
    object-fit: cover;
}

.strengths-takumi {
    height: 799.125px;
    overflow: hidden;
    color: var(--color-white);
    background: var(--color-black);
}

.strengths-takumi__mark {
    position: absolute;
    top: 103.718px;
    left: 78px;
    width: 572px;
    height: auto;
}

.strengths-takumi__body {
    position: absolute;
    top: 369px;
    left: 180px;
    width: 520px;
    letter-spacing: 0.037em;
}

.strengths-process {
    height: 3128.38px;
    overflow: hidden;
    background: var(--color-white);
}

.strengths-process__item,
.strengths-process__figure,
.strengths-process__content {
    position: absolute;
    margin: 0;
}

.strengths-process__figure {
    width: 680px;
    height: 510px;
    overflow: hidden;
}

.strengths-process__figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.strengths-process__content {
    width: 419.5px;
}

.strengths-process__title {
    margin: 0;
    font-size: 2.25rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.06em;
    text-align: center;
}

.strengths-process__rule {
    display: block;
    width: 30px;
    height: 6px;
    margin: 0 auto;
    margin-top: 20px;
    background: var(--color-accent);
}

.strengths-process__text {
    margin: 28px 0 0;
    font-size: 1rem;
    font-weight: 500;
    line-height: 38px;
    letter-spacing: 0.0453em;
    text-align: justify;
}

.strengths-process__item--1 .strengths-process__figure {
    top: 130.38px;
    left: 3.46px;
}

.strengths-process__item--1 .strengths-process__content {
    top: 192px;
    left: 760px;
}

.strengths-process__item--2 .strengths-process__figure {
    top: 719.875px;
    left: 682.664px;
}

.strengths-process__item--2 .strengths-process__content {
    top: 775px;
    left: 180px;
}

.strengths-process__item--3 .strengths-process__figure {
    top: 1310.38px;
    left: 3.46px;
}

.strengths-process__item--3 .strengths-process__content {
    top: 1353px;
    left: 763.5px;
    width: 485px;
}

.strengths-process__item--4 .strengths-process__figure {
    top: 1899.875px;
    left: 682.664px;
}

.strengths-process__item--4 .strengths-process__content {
    top: 1954px;
    left: 180px;
}

.strengths-process__item--5 .strengths-process__figure {
    top: 2490.38px;
    left: 3.46px;
}

.strengths-process__item--5 .strengths-process__content {
    top: 2552px;
    left: 763.5px;
}

@media (max-width: 1200px) {

    .strengths-hero,
    .strengths-hero .strengths-stage,
    .strengths-intro,
    .strengths-intro .strengths-stage,
    .strengths-takumi,
    .strengths-takumi .strengths-stage,
    .strengths-process,
    .strengths-process .strengths-stage {
        height: auto;
    }

    .strengths-hero {
        padding-top: var(--header-height);
    }

    .strengths-hero__visual {
        position: relative;
        display: block;
        height: min(500px, 44vw);
    }

    .strengths-hero__visual-canvas {
        transform: translateX(-50%) scale(calc(100vw / 1366px));
    }

    .strengths-hero__band {
        position: relative;
        top: auto;
        left: auto;
        width: min(990px, 94%);
        height: auto;
        margin-top: -88px;
        padding: 20px 20px 20px 34px;
    }

    .strengths-hero__title {
        font-size: min(8rem, 9.6vw);
    }

    .strengths-hero__sub {
        position: relative;
        top: auto;
        left: auto;
        width: min(960px, 94%);
        height: auto;
        min-height: 80px;
        margin: 24px auto 40px;
        padding: 18px 12px;
        font-size: min(2.5rem, 3.4vw);
    }

    .strengths-intro,
    .strengths-takumi {
        padding: 96px 0;
    }

    .strengths-intro__head,
    .strengths-intro__body,
    .strengths-intro__figure,
    .strengths-takumi__mark,
    .strengths-takumi__body,
    .strengths-process__item,
    .strengths-process__figure,
    .strengths-process__content {
        position: static;
        width: auto;
    }

    .strengths-intro__art {
        display: none;
    }

    .strengths-intro__body {
        width: min(640px, calc(100% - 32px));
        margin: 72px auto 0;
    }

    .strengths-intro__figure {
        width: min(350px, 80%);
        margin: 56px auto 0;
    }

    .strengths-intro__figure::before {
        display: none;
    }

    .strengths-intro__figure img {
        width: 100%;
        height: auto;
        aspect-ratio: 1;
    }

    .strengths-takumi .strengths-stage {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: min(100% - 32px, var(--container-width));
    }

    .strengths-takumi__art {
        position: relative;
        order: 3;
        height: min(560px, 52vw);
        margin-top: 56px;
    }

    .strengths-takumi__mark {
        width: min(572px, 82%);
    }

    .strengths-takumi__body {
        width: min(520px, 100%);
        margin-top: 40px;
    }

    .strengths-process {
        padding-bottom: 36px;
    }

    .strengths-process__stage {
        display: flex;
        flex-direction: column;
        width: min(100% - 32px, var(--container-width));
    }

    .strengths-process__item {
        display: contents;
    }

    .strengths-process__figure {
        width: min(680px, 100%);
        height: auto;
        margin: 96px auto 0;
    }

    .strengths-process__figure img {
        height: auto;
        aspect-ratio: 4 / 3;
    }

    .strengths-process__content {
        width: min(680px, 100%);
        margin: 40px auto 0;
    }

    .strengths-process__item--3 .strengths-process__content {
        width: min(680px, 100%);
    }

    .strengths-process__rule {
        margin: 28px auto 0;
    }

    .strengths-process__text {
        margin-top: 32px;
    }
}

@media (max-width: 767px) {
    .strengths-main {
        margin-top: 0px;
    }

    .strengths-hero {
        padding-top: 0;
    }

    .strengths-hero__visual {
        height: 65vw;
    }

    .strengths-hero__band {
        margin-top: -56px;
        padding: 16px 18px;
    }

    .strengths-hero__title {
        font-size: 2.125rem;
    }

    .strengths-hero__sub {
        font-size: 1rem;
        line-height: 1.7;
        letter-spacing: 0.05em;
    }

    .strengths-section-title,
    .strengths-process__title {
        font-size: 1.625rem;
    }

    .strengths-section-en {
        margin-top: 16px;
        font-size: 0.875rem;
    }

    .strengths-lead,
    .strengths-process__text {
        font-size: 0.9375rem;
        line-height: 2.1;
        text-align: left;
    }

    .strengths-intro,
    .strengths-takumi {
        padding: 64px 0;
    }

    .strengths-intro__body {
        margin-top: 48px;
    }

    .strengths-process {
        padding-bottom: 12px;
    }

    .strengths-process__figure {
        margin-top: 72px;
    }
}

/* Contact Page */
.contact-main {
    padding: 0;
    background: var(--color-white);
}

.contact-hero {
    padding: 104px 0 82px;
    color: var(--color-white);
    background: var(--color-black);
}

.contact-hero__inner {
    display: grid;
    gap: 10px;
}

.contact-hero__label {
    margin-bottom: 0;
    color: var(--color-accent);
    font-family: var(--font-english), var(--font-japanese);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.4;
    text-transform: uppercase;
}

.contact-hero__title {
    margin-bottom: 0;
    font-size: 2.5rem;
    line-height: 1.35;
}

.contact-breadcrumb {
    padding: 14px 0;
    color: var(--color-muted);
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border);
    font-size: 0.875rem;
}

.contact-breadcrumb .layout-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.contact-breadcrumb a {
    color: var(--color-text);
    font-weight: 700;
    text-decoration: none;
}

.contact-breadcrumb a:hover {
    color: var(--color-accent);
}

.contact-content {
    padding: 96px 0 120px;
    background: #F7F7F7;
}

.contact-content__grid {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}

.contact-info,
.contact-form {
    background: var(--color-white);
}

.contact-info {
    display: grid;
    justify-items: center;
    padding: 48px 32px;
    text-align: center;
}

.contact-info__icon {
    display: inline-grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin-bottom: 24px;
    color: var(--color-white);
    background: var(--color-accent);
    border-radius: 50%;
    font-size: 1.65rem;
}

.contact-info__title {
    margin-bottom: 18px;
    font-size: 1.25rem;
}

.contact-info__tel,
.contact-info__fax {
    margin-bottom: 0;
    font-family: var(--font-english), var(--font-japanese);
    font-weight: 700;
    line-height: 1.8;
}

.contact-info__tel {
    font-size: 1.25rem;
}

.contact-info__fax {
    color: var(--color-muted);
}

.contact-form {
    padding: 48px;
}

.contact-form__title {
    margin-bottom: 32px;
    font-size: 1.75rem;
}

.contact-form__notice,
.contact-form__errors {
    margin-bottom: 28px;
    padding: 18px 20px;
    border-left: 4px solid var(--color-accent);
    background: #FFF5F2;
}

.contact-form__notice {
    color: var(--color-accent);
    font-weight: 700;
}

.contact-form__errors p,
.contact-form__errors ul,
.contact-form__errors li {
    margin-bottom: 0;
}

.contact-form__errors ul {
    padding-left: 1.3em;
}

.contact-form__row {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    padding: 22px 0;
    border-top: 1px solid var(--color-border);
}

.contact-form__row:last-of-type {
    border-bottom: 1px solid var(--color-border);
}

.contact-form__label {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    min-height: 52px;
    font-weight: 700;
    line-height: 1.5;
}

.contact-form__required {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 8px;
    color: var(--color-white);
    background: var(--color-accent);
    font-size: 0.75rem;
    line-height: 1.3;
}

.contact-form__control {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid #CFCFCF;
    border-radius: 0;
}

.contact-form__control--textarea {
    min-height: 220px;
    resize: vertical;
}

.contact-form__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    min-height: 56px;
    margin-top: 36px;
    padding: 12px 28px;
    color: var(--color-white);
    background: var(--color-accent);
    border: 0;
    border-radius: 0;
    font-weight: 700;
    cursor: pointer;
}

.contact-form__submit:hover {
    background: #B9361E;
}

/* Company Page */
.company-main {
    padding: 0;
}

.company-hero {
    padding: 104px 0 82px;
    color: var(--color-white);
    background: var(--color-black);
}

.company-hero__inner {
    display: grid;
    gap: 10px;
}

.company-hero__label {
    margin-bottom: 0;
    color: var(--color-accent);
    font-family: var(--font-english), var(--font-japanese);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.4;
    text-transform: uppercase;
}

.company-hero__title {
    margin-bottom: 0;
    font-size: 2.5rem;
    line-height: 1.35;
}

.company-breadcrumb {
    padding: 14px 0;
    color: var(--color-muted);
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border);
    font-size: 0.875rem;
}

.company-breadcrumb .layout-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.company-breadcrumb a {
    color: var(--color-text);
    font-weight: 700;
    text-decoration: none;
}

.company-breadcrumb a:hover {
    color: var(--color-accent);
}

.company-content {
    padding: 96px 0 120px;
    background: #F7F7F7;
}

.company-content__inner {
    display: grid;
    gap: 72px;
}

.company-section {
    background: var(--color-white);
}

.company-section__heading {
    padding: 42px 48px 30px;
    border-bottom: 1px solid var(--color-border);
}

.company-section__label {
    margin-bottom: 8px;
    color: var(--color-accent);
    font-family: var(--font-english), var(--font-japanese);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.4;
    text-transform: uppercase;
}

.company-section__title {
    margin-bottom: 0;
    font-size: 1.75rem;
    line-height: 1.45;
}

.company-table {
    margin: 0;
}

.company-table__row {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    border-bottom: 1px solid var(--color-border);
}

.company-table__row:last-child {
    border-bottom: 0;
}

.company-table__label,
.company-table__value {
    margin: 0;
    padding: 24px 32px;
    line-height: 1.8;
}

.company-table__label {
    background: #F7F7F7;
    font-weight: 700;
}

.company-table__value {
    display: grid;
    gap: 4px;
    background: var(--color-white);
}

.company-table__value span {
    display: block;
}

@media (max-width: 1024px) {
    .contact-hero {
        padding: 84px 0 68px;
    }

    .company-hero {
        padding: 84px 0 68px;
    }

    .contact-content {
        padding: 80px 0 96px;
    }

    .company-content {
        padding: 80px 0 96px;
    }

    .contact-content__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .company-content__inner {
        gap: 56px;
    }

    .company-section__heading {
        padding: 36px 32px 26px;
    }

    .company-table__row {
        grid-template-columns: 180px minmax(0, 1fr);
    }

    .company-table__label,
    .company-table__value {
        padding: 22px 26px;
    }

    .contact-info {
        grid-template-columns: auto minmax(0, 1fr);
        justify-items: start;
        gap: 0 24px;
        text-align: left;
    }

    .contact-info__icon {
        grid-row: span 3;
        margin-bottom: 0;
    }
}

@media (max-width: 767px) {
    .contact-hero {
        padding: 64px 0 52px;
    }

    .company-hero {
        padding: 64px 0 52px;
    }

    .contact-hero__title {
        font-size: 2rem;
    }

    .company-hero__title {
        font-size: 2rem;
    }

    .contact-content {
        padding: 56px 0 72px;
    }

    .company-content {
        padding: 56px 0 72px;
    }

    .company-content__inner {
        gap: 40px;
    }

    .company-section__heading {
        padding: 30px 20px 22px;
    }

    .company-section__title {
        font-size: 1.45rem;
    }

    .company-table__row {
        grid-template-columns: 1fr;
    }

    .company-table__label,
    .company-table__value {
        padding: 16px 20px;
    }

    .company-table__label {
        padding-bottom: 8px;
    }

    .company-table__value {
        padding-top: 12px;
    }

    .contact-info,
    .contact-form {
        padding: 28px 20px;
    }

    .contact-info {
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .contact-info__icon {
        grid-row: auto;
        width: 58px;
        height: 58px;
        margin-bottom: 18px;
        font-size: 1.3rem;
    }

    .contact-form__title {
        margin-bottom: 20px;
        font-size: 1.45rem;
    }

    .contact-form__row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 18px 0;
    }

    .contact-form__label {
        min-height: 0;
    }

    .contact-form__submit {
        width: 100%;
    }
}

/* Contact Form 7 integration */
.contact-form .wpcf7 {
    margin: 0;
}

.contact-form .wpcf7 form {
    margin: 0;
}

.contact-form .wpcf7 p {
    margin: 0;
}

.contact-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.contact-form .wpcf7 input[type="text"],
.contact-form .wpcf7 input[type="email"],
.contact-form .wpcf7 input[type="tel"],
.contact-form .wpcf7 textarea {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid #CFCFCF;
    border-radius: 0;
    font: inherit;
}

.contact-form .wpcf7 textarea {
    min-height: 220px;
    resize: vertical;
}

.contact-form .wpcf7 input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    min-height: 56px;
    margin-top: 36px;
    padding: 12px 28px;
    color: var(--color-white);
    background: var(--color-accent);
    border: 0;
    border-radius: 0;
    font-weight: 700;
    cursor: pointer;
}

.contact-form .wpcf7 input[type="submit"]:hover {
    background: #B9361E;
}

.contact-form .wpcf7-spinner {
    margin: 36px 0 0 16px;
    vertical-align: middle;
}

.contact-form .wpcf7-not-valid-tip {
    margin-top: 8px;
    color: var(--color-accent);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.6;
}

.contact-form .wpcf7 form .wpcf7-response-output {
    margin: 28px 0 0;
    padding: 18px 20px;
    border: 0;
    border-left: 4px solid var(--color-accent);
    background: #FFF5F2;
    color: var(--color-text);
    line-height: 1.7;
}

.contact-form .wpcf7 form.sent .wpcf7-response-output {
    border-left-color: #238636;
    background: #F0FFF4;
}

.contact-form__setup-note {
    margin-bottom: 0;
    padding: 18px 20px;
    border-left: 4px solid var(--color-accent);
    background: #FFF5F2;
    font-weight: 700;
}

@media (max-width: 767px) {
    .contact-form .wpcf7 input[type="submit"] {
        width: 100%;
    }

    .contact-form .wpcf7-spinner {
        display: block;
        margin: 16px auto 0;
    }
}

/* CF7 wraps each row in a paragraph; apply the Contact row grid inside that wrapper. */
.contact-form .wpcf7 .contact-form__row {
    display: block;
}

.contact-form .wpcf7 .contact-form__row>p {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    width: 100%;
}

.contact-form .wpcf7 .contact-form__row br {
    display: none;
}

.contact-form .wpcf7 .contact-form__row .wpcf7-form-control-wrap {
    min-width: 0;
}

@media (max-width: 767px) {
    .contact-form .wpcf7 .contact-form__row>p {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}