:root {
    --color-bg: #f7f4ee;
    --color-text: #202020;
    --color-muted: #777;
    --color-line: rgba(32, 32, 32, 0.14);
    --font-serif: "Times New Roman", "Yu Mincho", "YuMincho", serif;
    --font-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
}

body {
    margin: 0;
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-sans);
    line-height: 1.8;
}

a {
    color: inherit;
    text-decoration: none;
}

.site-header {
    padding: 24px 5vw;
    border-bottom: 1px solid var(--color-line);
}

.site-logo {
    font-family: var(--font-serif);
    font-size: 22px;
    letter-spacing: 0.08em;
}

.site-main {
    min-height: 60vh;
}

.hero {
    min-height: 70vh;
    display: grid;
    place-items: center;
    padding: 80px 5vw;
    text-align: center;
}

.hero h1 {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(44px, 9vw, 112px);
    font-weight: 400;
    letter-spacing: 0.08em;
}

.hero p {
    margin-top: 16px;
    color: var(--color-muted);
    letter-spacing: 0.16em;
}

.site-footer {
    padding: 32px 5vw;
    border-top: 1px solid var(--color-line);
    color: var(--color-muted);
    font-size: 12px;
}

.page-hero {
    padding: 96px 5vw 64px;
    border-bottom: 1px solid var(--color-line);
}

.page-hero__label {
    margin: 0 0 12px;
    color: var(--color-muted);
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.page-hero__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(40px, 7vw, 88px);
    font-weight: 400;
    letter-spacing: 0.08em;
}

.page-hero__text {
    max-width: 720px;
    margin: 24px 0 0;
    color: var(--color-muted);
}

.works-list {
    padding: 64px 5vw 96px;
}

.works-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px 24px;
}

.works-card__link {
    display: block;
}

.works-card__image {
    margin: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #e8e3da;
}

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

.works-card__body {
    padding-top: 16px;
}

.works-card__category {
    margin: 0 0 6px;
    color: var(--color-muted);
    font-size: 12px;
    letter-spacing: 0.12em;
}

.works-card__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: 0.04em;
}

.works-card__excerpt {
    margin: 10px 0 0;
    color: var(--color-muted);
    font-size: 14px;
}

.works-detail {
    padding: 96px 5vw;
}

.works-detail__header {
    max-width: 960px;
    margin: 0 auto 48px;
}

.works-detail__category {
    margin: 0 0 12px;
    color: var(--color-muted);
    font-size: 13px;
    letter-spacing: 0.16em;
}

.works-detail__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(36px, 6vw, 80px);
    font-weight: 400;
    letter-spacing: 0.06em;
}

.works-detail__main-image {
    max-width: 1200px;
    margin: 0 auto 56px;
}

.works-detail__main-image img {
    width: 100%;
    height: auto;
    display: block;
}

.works-detail__content {
    max-width: 760px;
    margin: 0 auto;
}

.works-detail__back {
    max-width: 760px;
    margin: 56px auto 0;
    color: var(--color-muted);
}

@media (max-width: 900px) {
    .works-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .page-hero {
        padding: 64px 6vw 40px;
    }

    .works-list,
    .works-detail {
        padding: 48px 6vw 72px;
    }

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

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(8, 8, 8, 0.94);
    color: #f7f4ee;
    border-bottom: 1px solid rgba(247, 244, 238, 0.16);
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 22px 5vw;
}

.site-brand {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    line-height: 1.2;
}

.site-brand__name {
    font-family: var(--font-serif);
    font-size: 24px;
    letter-spacing: 0.12em;
}

.site-brand__tagline {
    font-size: 11px;
    letter-spacing: 0.06em;
}

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

.site-nav__list a {
    position: relative;
    display: inline-block;
    padding: 8px 0;
    font-size: 13px;
    letter-spacing: 0.08em;
}

.site-nav__list a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width 0.24s ease;
}

.site-nav__list a:hover::after {
    width: 100%;
}

.site-footer {
    background: #050505;
    color: #f7f4ee;
    border-top: 1px solid rgba(247, 244, 238, 0.16);
}

.site-footer__inner {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 48px;
    padding: 56px 5vw 40px;
}

.site-brand--footer .site-brand__name {
    font-size: 26px;
}

.site-footer__nav ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__nav a,
.site-footer__info a {
    color: inherit;
}

.site-footer__info {
    color: rgba(247, 244, 238, 0.72);
    font-size: 13px;
}

.site-footer__info p {
    margin: 0 0 16px;
}

.site-footer__copy {
    margin: 0;
    padding: 18px 5vw 28px;
    color: rgba(247, 244, 238, 0.56);
    font-size: 11px;
    text-align: center;
}

@media (max-width: 960px) {
    .site-header__inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
    }

    .site-nav__list {
        flex-wrap: wrap;
        gap: 10px 20px;
    }

    .site-footer__inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

@media (max-width: 640px) {
    .site-header__inner {
        padding: 18px 6vw;
    }

    .site-brand__name {
        font-size: 21px;
    }

    .site-nav__list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
        gap: 8px 16px;
    }

    .site-nav__list a {
        font-size: 12px;
    }

    .site-footer__inner {
        padding: 44px 6vw 32px;
    }

    .site-footer__copy {
        padding-left: 6vw;
        padding-right: 6vw;
        text-align: left;
    }
}

/* Front page */
.front-hero {
    min-height: calc(100vh - 84px);
    display: grid;
    place-items: center;
    padding: 96px 5vw;
    text-align: center;
}

.front-hero__label {
    margin: 0 0 32px;
    color: var(--color-muted);
    font-size: 13px;
    letter-spacing: 0.22em;
}

.front-hero__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(64px, 12vw, 160px);
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.08em;
}

.front-hero__text {
    margin: 56px auto 0;
    max-width: 760px;
    color: var(--color-muted);
    letter-spacing: 0.08em;
}

.front-intro {
    padding: 96px 5vw;
    border-top: 1px solid var(--color-line);
    border-bottom: 1px solid var(--color-line);
}

.front-intro__inner {
    max-width: 880px;
}

.section-label {
    margin: 0 0 16px;
    color: var(--color-muted);
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.front-intro h2,
.section-heading h2,
.front-cta h2 {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(32px, 5vw, 64px);
    font-weight: 400;
    letter-spacing: 0.06em;
}

.front-intro p:last-child {
    margin: 32px 0 0;
    max-width: 760px;
    color: var(--color-muted);
}

.front-works {
    padding: 96px 5vw;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 48px;
}

.section-heading a {
    color: var(--color-muted);
    font-size: 14px;
    border-bottom: 1px solid currentColor;
}

.front-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--color-line);
    border-bottom: 1px solid var(--color-line);
}

.front-link-card {
    display: grid;
    gap: 20px;
    padding: 48px 5vw;
    border-right: 1px solid var(--color-line);
}

.front-link-card:last-child {
    border-right: none;
}

.front-link-card span {
    color: var(--color-muted);
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.front-link-card strong {
    font-family: var(--font-serif);
    font-size: 26px;
    font-weight: 400;
    letter-spacing: 0.04em;
}

.front-cta {
    padding: 96px 5vw;
    background: #080808;
    color: #f7f4ee;
}

.front-cta p:not(.section-label) {
    max-width: 680px;
    color: rgba(247, 244, 238, 0.72);
}

.button-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 32px;
    min-width: 260px;
    padding: 16px 28px;
    background: #f7f4ee;
    color: #080808;
    font-size: 14px;
    letter-spacing: 0.08em;
}

@media (max-width: 900px) {
    .front-links {
        grid-template-columns: 1fr;
    }

    .front-link-card {
        border-right: none;
        border-bottom: 1px solid var(--color-line);
    }

    .front-link-card:last-child {
        border-bottom: none;
    }
}

@media (max-width: 640px) {
    .front-hero {
        min-height: 72vh;
        padding: 72px 6vw;
    }

    .front-hero__text {
        margin-top: 40px;
        text-align: left;
    }

    .front-intro,
    .front-works,
    .front-cta {
        padding: 64px 6vw;
    }

    .section-heading {
        display: block;
    }

    .section-heading a {
        display: inline-block;
        margin-top: 24px;
    }

    .front-link-card {
        padding: 40px 6vw;
    }
}

/* Responsive navigation */
.site-nav-toggle {
    display: none;
    align-items: center;
    gap: 12px;
    padding: 0;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
}

.site-nav-toggle__text {
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.site-nav-toggle__line {
    display: block;
    width: 28px;
    height: 1px;
    background: currentColor;
    transition: transform 0.24s ease, opacity 0.24s ease;
}

.site-nav-toggle__line + .site-nav-toggle__line {
    margin-left: -40px;
    transform: translateY(7px);
}

@media (min-width: 961px) {
    .site-nav {
        position: static;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

@media (max-width: 960px) {
    .site-header__inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
    }

    .site-nav-toggle {
        position: relative;
        z-index: 120;
        display: inline-flex;
    }

    .site-nav {
        position: fixed;
        inset: 0;
        z-index: 110;
        display: grid;
        align-items: center;
        background: rgba(5, 5, 5, 0.98);
        color: #f7f4ee;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.24s ease, visibility 0.24s ease;
    }

    body.is-nav-open {
        overflow: hidden;
    }

    body.is-nav-open .site-nav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    body.is-nav-open .site-nav-toggle__line:first-of-type {
        transform: rotate(28deg);
    }

    body.is-nav-open .site-nav-toggle__line:last-of-type {
        transform: translateY(7px) rotate(-28deg);
    }

    .site-nav__list {
        display: grid;
        width: auto;
        gap: 22px;
        padding: 96px 8vw 48px;
    }

    .site-nav__list a {
        font-family: var(--font-serif);
        font-size: clamp(26px, 7vw, 48px);
        letter-spacing: 0.06em;
    }
}

@media (max-width: 640px) {
    .site-nav__list {
        grid-template-columns: 1fr;
    }
}

/* Navigation breakpoint refinement */
@media (max-width: 1280px) {
    .site-header__inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
    }

    .site-nav-toggle {
        position: relative;
        z-index: 120;
        display: inline-flex;
    }

    .site-nav {
        position: fixed;
        inset: 0;
        z-index: 110;
        display: grid;
        align-items: center;
        justify-content: stretch;
        background: rgba(5, 5, 5, 0.98);
        color: #f7f4ee;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.24s ease, visibility 0.24s ease;
    }

    body.is-nav-open {
        overflow: hidden;
    }

    body.is-nav-open .site-nav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    body.is-nav-open .site-nav-toggle__line:first-of-type {
        transform: rotate(28deg);
    }

    body.is-nav-open .site-nav-toggle__line:last-of-type {
        transform: translateY(7px) rotate(-28deg);
    }

    .site-nav__list {
        display: grid;
        grid-template-columns: 1fr;
        width: auto;
        gap: 22px;
        padding: 120px 8vw 48px;
    }

    .site-nav__list a {
        font-family: var(--font-serif);
        font-size: clamp(28px, 6vw, 56px);
        letter-spacing: 0.06em;
        white-space: normal;
    }
}

@media (min-width: 1281px) {
    .site-nav-toggle {
        display: none;
    }

    .site-nav {
        position: static;
        display: flex;
        justify-content: flex-end;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .site-nav__list {
        display: flex;
        align-items: center;
        gap: 32px;
        padding: 0;
    }

    .site-nav__list a {
        font-family: var(--font-sans);
        font-size: 13px;
        letter-spacing: 0.08em;
        white-space: nowrap;
    }
}

/* Front page UI refinement */
.front-page {
    background: #f7f4ee;
}

/* Front visual */
.front-visual {
    position: relative;
    min-height: calc(100vh - 92px);
    background: #080808;
    color: #f7f4ee;
    overflow: hidden;
}

.front-visual__media {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr 1fr 1fr;
}

.front-visual__panel {
    position: relative;
    min-height: 100%;
    background-size: cover;
    background-position: center;
    border-right: 1px solid rgba(247, 244, 238, 0.08);
}

.front-visual__panel::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.08),
        rgba(0, 0, 0, 0.38)
    );
}

.front-visual__panel--01 {
    background:
        radial-gradient(circle at 40% 55%, rgba(120, 85, 42, 0.55), transparent 30%),
        linear-gradient(120deg, #18110b, #060606 70%);
}

.front-visual__panel--02 {
    background:
        radial-gradient(circle at 55% 42%, rgba(100, 70, 46, 0.5), transparent 28%),
        linear-gradient(140deg, #120f0d, #050505 70%);
}

.front-visual__panel--03 {
    background:
        radial-gradient(circle at 55% 42%, rgba(190, 168, 145, 0.34), transparent 26%),
        linear-gradient(120deg, #171717, #050505 72%);
}

.front-visual__panel--04 {
    background:
        linear-gradient(120deg, rgba(90, 58, 28, 0.45), transparent 45%),
        linear-gradient(180deg, #1a130d, #050505);
}

.front-visual__panel--05 {
    background:
        radial-gradient(circle at 50% 35%, rgba(120, 160, 180, 0.48), transparent 30%),
        linear-gradient(140deg, #10202a, #050505 75%);
}

.front-visual__content {
    position: relative;
    z-index: 2;
    width: min(760px, 90vw);
    padding: 18vh 5vw 12vh;
}

.front-visual__label {
    margin: 0 0 32px;
    font-size: 13px;
    letter-spacing: 0.18em;
    color: rgba(247, 244, 238, 0.74);
}

.front-visual__copy {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(42px, 6vw, 88px);
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0.08em;
}

.front-visual__text {
    margin: 32px 0 0;
    max-width: 640px;
    color: rgba(247, 244, 238, 0.78);
    letter-spacing: 0.08em;
}

.front-visual__buttons {
    display: flex;
    gap: 20px;
    margin-top: 40px;
}

/* Common buttons */
.button-primary,
.button-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    padding: 16px 28px;
    font-size: 14px;
    letter-spacing: 0.08em;
    line-height: 1;
}

.button-primary {
    background: #f7f4ee;
    color: #080808;
    border: 1px solid #f7f4ee;
}

.button-outline {
    background: transparent;
    color: inherit;
    border: 1px solid rgba(247, 244, 238, 0.42);
}

/* About */
.front-about {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
    gap: 7vw;
    align-items: center;
    padding: 96px 5vw;
}

.front-about__content {
    max-width: 720px;
}

.front-about__content h2,
.front-section-heading h2,
.front-business__heading h2,
.front-studio__content h2,
.front-contact-banner h2 {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(30px, 4.2vw, 56px);
    font-weight: 400;
    letter-spacing: 0.06em;
}

.front-about__content p:not(.section-label) {
    color: var(--color-muted);
}

.front-about__content p + p {
    margin-top: 18px;
}

.image-placeholder {
    display: grid;
    place-items: center;
    min-height: 360px;
    background:
        radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.12), transparent 30%),
        linear-gradient(135deg, #1a1a1a, #050505);
    color: rgba(247, 244, 238, 0.54);
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.image-placeholder--portrait {
    aspect-ratio: 4 / 3;
}

.image-placeholder--studio {
    min-height: 420px;
    background:
        radial-gradient(circle at 56% 45%, rgba(100, 76, 48, 0.36), transparent 34%),
        linear-gradient(135deg, #18120d, #050505 72%);
}

/* Works */
.front-works-section {
    padding: 72px 5vw 88px;
    background: #080808;
    color: #f7f4ee;
}

.front-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 40px;
}

.front-section-heading a {
    color: inherit;
    font-size: 14px;
    border-bottom: 1px solid currentColor;
}

.front-section-heading--dark .section-label {
    color: rgba(247, 244, 238, 0.58);
}

.front-works-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 2px;
}

.front-works-grid .works-card {
    background: #111;
}

.front-works-grid .works-card__body {
    padding: 14px 4px 0;
    text-align: center;
}

.front-works-grid .works-card__category,
.front-works-grid .works-card__excerpt {
    display: none;
}

.front-works-grid .works-card__title {
    color: #f7f4ee;
    font-size: 17px;
}

.front-works-grid .works-card__image {
    aspect-ratio: 3 / 4;
    background: #1a1a1a;
}

/* Shooting menu */
.front-shooting {
    padding: 72px 5vw 80px;
}

.front-menu-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}

.front-menu-card {
    display: grid;
    gap: 12px;
    min-height: 180px;
    padding: 28px 20px;
    border: 1px solid var(--color-line);
    background: rgba(255, 255, 255, 0.18);
    text-align: center;
}

.front-menu-card__icon {
    font-size: 28px;
    color: var(--color-muted);
}

.front-menu-card h3 {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0.04em;
}

.front-menu-card p {
    margin: 0;
    color: var(--color-muted);
    font-size: 13px;
}

/* Business */
.front-business {
    padding: 72px 5vw 80px;
    background: #111;
    color: #f7f4ee;
}

.front-business__heading {
    margin-bottom: 48px;
}

.front-business__heading p:not(.section-label) {
    color: rgba(247, 244, 238, 0.72);
}

.front-business-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
    background: rgba(247, 244, 238, 0.16);
}

.front-business-card {
    min-height: 150px;
    padding: 28px 22px;
    background: #111;
}

.front-business-card h3 {
    margin: 0 0 12px;
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 400;
}

.front-business-card p {
    margin: 0;
    color: rgba(247, 244, 238, 0.68);
    font-size: 13px;
}

/* Studio */
.front-studio {
    display: grid;
    grid-template-columns: minmax(320px, 0.8fr) minmax(0, 1.2fr);
    min-height: 520px;
    background: #050505;
    color: #f7f4ee;
}

.front-studio__content {
    align-self: center;
    padding: 72px 5vw;
}

.front-studio__content p:not(.section-label) {
    color: rgba(247, 244, 238, 0.76);
}

.front-studio__content .button-outline {
    margin-top: 28px;
}

.front-studio__image {
    min-height: 420px;
}

/* News */
.front-news {
    padding: 72px 5vw 80px;
}

.front-news-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
}

.front-news-card a {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 20px;
}

.front-news-card__image {
    margin: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #e8e3da;
}

.front-news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.front-news-card time {
    color: var(--color-muted);
    font-size: 12px;
    letter-spacing: 0.08em;
}

.front-news-card h3 {
    margin: 6px 0 8px;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 400;
}

.front-news-card p {
    margin: 0;
    color: var(--color-muted);
    font-size: 13px;
}

/* Contact banner */
.front-contact-banner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    align-items: center;
    margin: 0 5vw 72px;
    padding: 48px 56px;
    background:
        radial-gradient(circle at 62% 50%, rgba(255, 255, 255, 0.1), transparent 28%),
        linear-gradient(120deg, #161616, #050505);
    color: #f7f4ee;
}

.front-contact-banner p:not(.section-label) {
    color: rgba(247, 244, 238, 0.72);
}

/* Responsive front page */
@media (max-width: 1280px) {
    .front-works-grid,
    .front-menu-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

@media (max-width: 900px) {
    .front-visual {
        min-height: auto;
    }

    .front-visual__media {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        opacity: 0.72;
    }

    .front-visual__panel {
        min-height: 54vh;
    }

    .front-visual__panel--04,
    .front-visual__panel--05 {
        display: none;
    }

    .front-visual__content {
        padding: 120px 6vw 96px;
    }

    .front-about,
    .front-studio,
    .front-contact-banner {
        grid-template-columns: 1fr;
    }

    .front-news-grid {
        grid-template-columns: 1fr;
    }

    .front-contact-banner {
        margin-left: 0;
        margin-right: 0;
        padding: 56px 6vw;
    }
}

@media (max-width: 640px) {
    .front-visual__copy {
        font-size: 40px;
    }

    .front-visual__buttons {
        display: grid;
    }

    .button-primary,
    .button-outline {
        width: 100%;
    }

    .front-about,
    .front-shooting,
    .front-business,
    .front-news {
        padding: 56px 6vw;
    }

    .front-works-section {
        padding: 56px 6vw 64px;
    }

    .front-section-heading {
        display: block;
    }

    .front-section-heading a {
        display: inline-block;
        margin-top: 20px;
    }

    .front-works-grid,
    .front-menu-grid,
    .front-business-grid {
        grid-template-columns: 1fr;
    }

    .front-news-card a {
        grid-template-columns: 96px 1fr;
    }
}

/* Front image asset mapping */
.front-visual__panel--01 {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.62)),
        url("../img/front/fv-01.jpg"),
        radial-gradient(circle at 40% 55%, rgba(120, 85, 42, 0.55), transparent 30%),
        linear-gradient(120deg, #18110b, #060606 70%);
}

.front-visual__panel--02 {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.62)),
        url("../img/front/fv-02.jpg"),
        radial-gradient(circle at 55% 42%, rgba(100, 70, 46, 0.5), transparent 28%),
        linear-gradient(140deg, #120f0d, #050505 70%);
}

.front-visual__panel--03 {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.62)),
        url("../img/front/fv-03.jpg"),
        radial-gradient(circle at 55% 42%, rgba(190, 168, 145, 0.34), transparent 26%),
        linear-gradient(120deg, #171717, #050505 72%);
}

.front-visual__panel--04 {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.62)),
        url("../img/front/fv-04.jpg"),
        linear-gradient(120deg, rgba(90, 58, 28, 0.45), transparent 45%),
        linear-gradient(180deg, #1a130d, #050505);
}

.front-visual__panel--05 {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.62)),
        url("../img/front/fv-05.jpg"),
        radial-gradient(circle at 50% 35%, rgba(120, 160, 180, 0.48), transparent 30%),
        linear-gradient(140deg, #10202a, #050505 75%);
}

.front-visual__panel--01,
.front-visual__panel--02,
.front-visual__panel--03,
.front-visual__panel--04,
.front-visual__panel--05 {
    background-size: cover;
    background-position: center;
}

.image-placeholder span {
    display: none;
}

.image-placeholder--portrait {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.42)),
        url("../img/front/about-profile.jpg"),
        radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.12), transparent 30%),
        linear-gradient(135deg, #1a1a1a, #050505);
    background-size: cover;
    background-position: center;
}

.image-placeholder--studio {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.52)),
        url("../img/front/studio.jpg"),
        radial-gradient(circle at 56% 45%, rgba(100, 76, 48, 0.36), transparent 34%),
        linear-gradient(135deg, #18120d, #050505 72%);
    background-size: cover;
    background-position: center;
}

.front-contact-banner {
    background-image:
        linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.68)),
        url("../img/front/contact-camera.jpg"),
        radial-gradient(circle at 62% 50%, rgba(255, 255, 255, 0.1), transparent 28%),
        linear-gradient(120deg, #161616, #050505);
    background-size: cover;
    background-position: center;
}

/* Brand logo refinement */
.site-header .site-brand {
    width: 190px;
    min-width: 190px;
}

.site-header .site-brand__name {
    display: block;
    width: 100%;
    font-size: 28px;
    line-height: 1;
    letter-spacing: 0.18em;
    white-space: nowrap;
}

.site-header .site-brand__tagline {
    display: block;
    width: 100%;
    margin-top: 8px;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: 0.055em;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .site-header .site-brand {
        width: 168px;
        min-width: 168px;
    }

    .site-header .site-brand__name {
        font-size: 24px;
        letter-spacing: 0.16em;
    }

    .site-header .site-brand__tagline {
        font-size: 10px;
        letter-spacing: 0.035em;
    }
}

/* Hero CTA button refinement */
.front-visual__buttons .button-primary,
.front-visual__buttons .button-outline {
    box-sizing: border-box;
    width: 180px;
    min-width: 180px;
    height: 56px;
    min-height: 56px;
    margin-top: 0;
    padding: 0 28px;
    line-height: 1;
}

.front-visual__buttons .button-primary {
    border: 1px solid #f7f4ee;
}

.front-visual__buttons .button-outline {
    border: 1px solid rgba(247, 244, 238, 0.42);
}

@media (max-width: 640px) {
    .front-visual__buttons .button-primary,
    .front-visual__buttons .button-outline {
        width: 100%;
        min-width: 0;
    }
}

/* Front category works */
.front-category-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 2px;
}

.front-category-card {
    position: relative;
    overflow: hidden;
    background: #111;
}

.front-category-card a {
    position: relative;
    display: block;
    color: #f7f4ee;
}

.front-category-card__image {
    position: relative;
    margin: 0;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: #1a1a1a;
}

.front-category-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.02);
    transition: transform 0.45s ease, filter 0.45s ease;
}

.front-category-card__placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: rgba(247, 244, 238, 0.42);
    font-family: var(--font-serif);
    font-size: 20px;
    letter-spacing: 0.12em;
}

.front-category-card__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.08),
        rgba(0, 0, 0, 0.58)
    );
    pointer-events: none;
}

.front-category-card__name {
    margin: 0;
    padding: 18px 10px 20px;
    background: #111;
    color: #f7f4ee;
    font-family: var(--font-serif);
    font-size: 18px;
    letter-spacing: 0.08em;
    text-align: center;
}

.front-category-card__hover {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 72px;
    z-index: 2;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.32s ease, transform 0.32s ease;
    pointer-events: none;
}

.front-category-card__hover span {
    display: block;
    margin-bottom: 8px;
    color: rgba(247, 244, 238, 0.62);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.front-category-card__hover strong {
    display: block;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.06em;
}

.front-category-card:hover .front-category-card__hover,
.front-category-card:focus-within .front-category-card__hover {
    opacity: 1;
    transform: translateY(0);
}

.front-category-card:hover .front-category-card__img,
.front-category-card:focus-within .front-category-card__img {
    transform: scale(1.08);
    filter: brightness(0.72);
}

@media (max-width: 1440px) {
    .front-category-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .front-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .front-category-grid {
        grid-template-columns: 1fr;
    }

    .front-category-card__hover {
        opacity: 1;
        transform: none;
    }
}

/* Works archive category navigation */
.works-category-nav {
    padding: 28px 5vw;
    border-bottom: 1px solid var(--color-line);
    background: #f7f4ee;
}

.works-category-nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.works-category-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid var(--color-line);
    color: var(--color-muted);
    font-size: 13px;
    letter-spacing: 0.08em;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.works-category-nav a:hover,
.works-category-nav a.is-current {
    background: #080808;
    border-color: #080808;
    color: #f7f4ee;
}

.works-archive .works-list {
    padding-top: 72px;
}

.works-archive .works-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.works-archive .works-card__image {
    aspect-ratio: 4 / 3;
}

.works-archive .works-card__title {
    font-size: 24px;
}

@media (max-width: 900px) {
    .works-archive .works-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .works-category-nav {
        padding: 20px 6vw;
    }

    .works-category-nav ul {
        gap: 8px;
    }

    .works-category-nav a {
        min-height: 38px;
        padding: 0 14px;
        font-size: 12px;
    }

    .works-archive .works-grid {
        grid-template-columns: 1fr;
    }
}

/* Works page final layout */
.works-page {
    background: #080808;
    color: #f7f4ee;
}

.works-hero {
    position: relative;
    min-height: 360px;
    display: grid;
    align-items: center;
    padding: 80px 5vw;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.72), rgba(5, 5, 5, 0.28)),
        url("../img/front/fv-01.jpg");
    background-size: cover;
    background-position: center;
}

.works-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent, rgba(5, 5, 5, 0.2));
    pointer-events: none;
}

.works-hero__content {
    position: relative;
    z-index: 1;
    max-width: 760px;
}

.works-hero__label {
    margin: 0 0 24px;
    color: rgba(247, 244, 238, 0.66);
    font-size: 13px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.works-hero__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(42px, 6vw, 78px);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.08em;
}

.works-hero__text {
    margin: 32px 0 0;
    color: rgba(247, 244, 238, 0.78);
    letter-spacing: 0.08em;
}

.works-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
    gap: 7vw;
    align-items: center;
    padding: 72px 5vw;
    background: #f7f4ee;
    color: #202020;
}

.works-intro__content {
    max-width: 760px;
}

.works-intro__content h2 {
    margin: 0 0 28px;
    font-family: var(--font-serif);
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 400;
    letter-spacing: 0.06em;
}

.works-intro__content p {
    color: var(--color-muted);
}

.works-intro__image {
    aspect-ratio: 4 / 3;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.42)),
        url("../img/front/about-profile-cyan.jpg");
    background-size: cover;
    background-position: center;
}

.works-taxonomy-lead {
    padding: 64px 5vw;
    background: #f7f4ee;
    color: #202020;
}

.works-taxonomy-lead__content {
    max-width: 760px;
    color: #4f4f4f;
    font-size: 16px;
    line-height: 2.1;
}

.works-taxonomy-lead__content p {
    margin: 0 0 1em;
}

.works-taxonomy-lead__content p:last-child {
    margin-bottom: 0;
}

.works-gallery-section {
    padding: 56px 5vw 72px;
    background: #080808;
    color: #f7f4ee;
}

.works-gallery-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 32px;
    align-items: start;
    margin-bottom: 40px;
}

.works-category-nav--dark {
    padding: 0;
    background: transparent;
    border-bottom: 0;
}

.works-category-nav__label {
    margin: 0 0 18px;
    color: rgba(247, 244, 238, 0.62);
    font-size: 13px;
    letter-spacing: 0.16em;
}

.works-category-nav--dark ul {
    gap: 26px;
}

.works-category-nav--dark a {
    min-height: auto;
    padding: 0 0 8px;
    border: 0;
    border-bottom: 1px solid transparent;
    color: rgba(247, 244, 238, 0.74);
    background: transparent;
}

.works-category-nav--dark a:hover,
.works-category-nav--dark a.is-current {
    background: transparent;
    color: #f7f4ee;
    border-color: currentColor;
}

.works-sort-label {
    padding-top: 34px;
    color: rgba(247, 244, 238, 0.68);
    font-size: 13px;
    letter-spacing: 0.12em;
}

.works-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.works-gallery-grid .works-card {
    background: #111;
}

.works-gallery-grid .works-card__link {
    display: block;
    color: #f7f4ee;
}

.works-gallery-grid .works-card__image {
    margin: 0;
    aspect-ratio: 4 / 3;
    background: #1a1a1a;
}

.works-gallery-grid .works-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease, filter 0.4s ease;
}

.works-gallery-grid .works-card:hover .works-card__image img {
    transform: scale(1.06);
    filter: brightness(0.78);
}

.works-gallery-grid .works-card__body {
    padding: 18px 0 0;
}

.works-gallery-grid .works-card__category {
    margin: 0 0 6px;
    color: rgba(247, 244, 238, 0.58);
    font-size: 12px;
    letter-spacing: 0.12em;
}

.works-gallery-grid .works-card__title {
    margin: 0;
    color: #f7f4ee;
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 0.05em;
}

.works-gallery-grid .works-card__excerpt {
    margin: 8px 0 0;
    color: rgba(247, 244, 238, 0.62);
    font-size: 13px;
}

.works-contact-cta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 48px;
    align-items: center;
    margin-top: 64px;
    padding: 40px 48px;
    border: 1px solid rgba(247, 244, 238, 0.24);
    background:
        linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.68)),
        url("../img/front/contact-camera.jpg");
    background-size: cover;
    background-position: center;
}

.works-contact-cta h2 {
    margin: 0 0 16px;
    font-family: var(--font-serif);
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 400;
    letter-spacing: 0.06em;
}

.works-contact-cta p {
    margin: 0;
    color: rgba(247, 244, 238, 0.72);
}

.works-empty-message {
    color: rgba(247, 244, 238, 0.7);
}

.pagination--dark {
    margin-top: 48px;
    color: #f7f4ee;
}

@media (max-width: 1100px) {
    .works-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .works-gallery-head {
        grid-template-columns: 1fr;
    }

    .works-sort-label {
        padding-top: 0;
    }
}

@media (max-width: 900px) {
    .works-intro,
    .works-contact-cta {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .works-hero {
        min-height: 320px;
        padding: 64px 6vw;
    }

    .works-intro {
        padding: 56px 6vw;
    }

    .works-taxonomy-lead {
        padding: 48px 6vw;
    }

    .works-gallery-section {
        padding: 40px 6vw 56px;
    }

    .works-category-nav--dark ul {
        gap: 14px 20px;
    }

    .works-gallery-grid {
        grid-template-columns: 1fr;
    }

    .works-contact-cta {
        margin-top: 48px;
        padding: 36px 6vw;
    }
}

/* Front section icons */
.front-menu-card__icon,
.front-business-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0 auto 10px;
    color: rgba(32, 32, 32, 0.62);
}

.front-menu-card__icon svg,
.front-business-card__icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.front-menu-card:hover .front-menu-card__icon {
    color: #202020;
}

.front-business-card__icon {
    margin: 0 0 18px;
    color: rgba(247, 244, 238, 0.48);
}

.front-business-card:hover .front-business-card__icon {
    color: rgba(247, 244, 238, 0.86);
}

.front-business-card {
    transition: background 0.24s ease;
}

.front-business-card:hover {
    background: #151515;
}

@media (max-width: 640px) {
    .front-menu-card__icon {
        width: 44px;
        height: 44px;
    }

    .front-business-card__icon {
        width: 42px;
        height: 42px;
    }
}

/* Icon section visual refinement */
.front-menu-card {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(32, 32, 32, 0.16);
}

.front-menu-card__icon {
    width: 42px;
    height: 42px;
    margin-bottom: 12px;
    color: rgba(32, 32, 32, 0.58);
}

.front-menu-card__icon svg {
    stroke-width: 1.9;
}

.front-menu-card h3 {
    font-size: 18px;
    line-height: 1.5;
}

.front-menu-card p {
    font-size: 12px;
    line-height: 1.8;
}

.front-business-grid {
    gap: 0;
    background: transparent;
}

.front-business-card {
    position: relative;
    background: transparent;
    min-height: 150px;
    padding: 20px 28px 20px 0;
}

.front-business-card + .front-business-card {
    padding-left: 28px;
    border-left: 1px solid rgba(247, 244, 238, 0.18);
}

.front-business-card__icon {
    width: 46px;
    height: 46px;
    margin-bottom: 16px;
    color: rgba(247, 244, 238, 0.54);
}

.front-business-card__icon svg {
    stroke-width: 1.75;
}

.front-business-card h3 {
    font-size: 19px;
    line-height: 1.5;
}

.front-business-card p {
    font-size: 12px;
    line-height: 1.8;
}

@media (max-width: 1280px) {
    .front-business-card + .front-business-card {
        padding-left: 0;
        border-left: none;
    }

    .front-business-card {
        border-bottom: 1px solid rgba(247, 244, 238, 0.14);
    }
}

/* Business section icon/text horizontal layout */
.front-business-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 18px;
    align-items: start;
}

.front-business-card__icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 46px;
    height: 46px;
    margin: 0;
}

.front-business-card h3 {
    grid-column: 2;
    grid-row: 1;
    margin: 0 0 8px;
}

.front-business-card p {
    grid-column: 2;
    grid-row: 2;
    margin: 0;
}

@media (max-width: 640px) {
    .front-business-card {
        grid-template-columns: 44px minmax(0, 1fr);
        column-gap: 16px;
    }

    .front-business-card__icon {
        width: 40px;
        height: 40px;
    }
}

/* Menu and business section layout refinement */
.front-shooting {
    padding-top: 72px;
    padding-bottom: 80px;
}

.front-menu-grid {
    gap: 16px;
}

.front-menu-card {
    display: grid;
    align-content: start;
    justify-items: center;
    min-height: 180px;
    padding: 26px 18px 24px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(32, 32, 32, 0.16);
    text-align: center;
}

.front-menu-card__icon {
    width: 42px;
    height: 42px;
    margin: 0 0 14px;
    color: rgba(32, 32, 32, 0.62);
}

.front-menu-card h3 {
    margin: 0 0 12px;
    font-size: 18px;
    line-height: 1.5;
}

.front-menu-card p {
    margin: 0;
    font-size: 12px;
    line-height: 1.8;
}

/* Business section: reference-style horizontal items */
.front-business {
    padding-top: 64px;
    padding-bottom: 72px;
}

.front-business__heading {
    margin-bottom: 44px;
}

.front-business-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    background: transparent;
}

.front-business-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    column-gap: 18px;
    align-items: start;
    min-height: auto;
    padding: 8px 28px;
    background: transparent;
    border-bottom: none;
}

.front-business-card + .front-business-card {
    border-left: 1px solid rgba(247, 244, 238, 0.18);
}

.front-business-card__icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 44px;
    height: 44px;
    margin: 0;
    color: rgba(247, 244, 238, 0.58);
}

.front-business-card h3 {
    grid-column: 2;
    grid-row: 1;
    margin: 0 0 8px;
    font-size: 18px;
    line-height: 1.5;
}

.front-business-card p {
    grid-column: 2;
    grid-row: 2;
    margin: 0;
    color: rgba(247, 244, 238, 0.68);
    font-size: 12px;
    line-height: 1.8;
}

.front-business-card:hover {
    background: transparent;
}

.front-business-card:hover .front-business-card__icon {
    color: rgba(247, 244, 238, 0.86);
}

@media (max-width: 1280px) {
    .front-business-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 0;
    }

    .front-business-card {
        padding: 8px 28px 8px 0;
    }

    .front-business-card + .front-business-card {
        border-left: none;
    }

    .front-business-card:nth-child(even) {
        padding-left: 28px;
        border-left: 1px solid rgba(247, 244, 238, 0.18);
    }
}

@media (max-width: 700px) {
    .front-business-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .front-business-card,
    .front-business-card:nth-child(even) {
        padding: 0;
        border-left: none;
    }

    .front-business-card {
        grid-template-columns: 44px minmax(0, 1fr);
        column-gap: 16px;
    }

    .front-business-card__icon {
        width: 40px;
        height: 40px;
    }
}

/* Shooting menu icon color refinement */
.front-menu-card__icon {
    color: #4f4a43;
}

.front-menu-card:hover .front-menu-card__icon {
    color: #202020;
}

/* Stronger shooting menu icons */
.front-menu-card__icon {
    color: #2f2b26;
}

.front-menu-card__icon svg {
    stroke-width: 2.25;
}

.front-menu-card h3 {
    color: #202020;
}

.front-menu-card:hover .front-menu-card__icon {
    color: #111111;
}

/* Filled icons for shooting menu */
.front-menu-card__icon svg,
.front-menu-card__icon svg * {
    fill: currentColor;
    stroke: none;
}

.front-menu-card__icon {
    color: #4b453d;
}

.front-menu-card:hover .front-menu-card__icon {
    color: #202020;
}

/* Elegant line icons for shooting menu */
.front-menu-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0 auto 20px;
    color: #4a443d;
}

.front-menu-card__icon svg {
    width: 40px;
    height: 40px;
    display: block;
    fill: none;
    stroke: currentColor;
}

.front-menu-card__icon svg * {
    fill: none !important;
    stroke: currentColor !important;
    vector-effect: non-scaling-stroke;
}

.front-menu-card:hover .front-menu-card__icon {
    color: #1f1f1f;
}

/* Front visual image effects */
.front-visual__media {
    overflow: hidden;
}

.front-visual__panel {
    opacity: 0;
    transform: translateY(14px) scale(1);
    filter: brightness(0.88) contrast(1.02);
    transform-origin: center;
    will-change: transform, opacity, filter;
    animation: frontVisualPanelReveal 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    transition:
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.front-visual__panel--01 {
    animation-delay: 0.08s;
}

.front-visual__panel--02 {
    animation-delay: 0.18s;
}

.front-visual__panel--03 {
    animation-delay: 0.28s;
}

.front-visual__panel--04 {
    animation-delay: 0.38s;
}

.front-visual__panel--05 {
    animation-delay: 0.48s;
}

.front-visual__panel:hover {
    z-index: 2;
    transform: translateY(0) scale(1.035);
    filter: brightness(1.08) contrast(1.06);
}

@keyframes frontVisualPanelReveal {
    from {
        opacity: 0;
        transform: translateY(14px) scale(1.015);
        filter: brightness(0.72) contrast(1.02);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: brightness(0.88) contrast(1.02);
    }
}

@media (prefers-reduced-motion: reduce) {
    .front-visual__panel {
        opacity: 1;
        transform: none;
        animation: none;
        transition: none;
    }

    .front-visual__panel:hover {
        transform: none;
    }
}

/* Stronger and reliable hero panel hover */
.front-visual__panel {
    position: relative;
    overflow: hidden;
    background-image: none !important;
    filter: none;
}

.front-visual__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1);
    filter: brightness(0.78) contrast(1.04);
    transition:
        transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.front-visual__panel::after {
    z-index: 1;
    pointer-events: none;
}

.front-visual__panel--01::before {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.44)),
        url("../img/front/fv-01.jpg");
}

.front-visual__panel--02::before {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.44)),
        url("../img/front/fv-02.jpg");
}

.front-visual__panel--03::before {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.44)),
        url("../img/front/fv-03.jpg");
}

.front-visual__panel--04::before {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.44)),
        url("../img/front/fv-04.jpg");
}

.front-visual__panel--05::before {
    background-image:
        linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.44)),
        url("../img/front/fv-05.jpg");
}

.front-visual__panel:hover::before {
    transform: scale(1.08);
    filter: brightness(1.08) contrast(1.08);
}

.front-visual__media:hover .front-visual__panel:not(:hover)::before {
    filter: brightness(0.62) contrast(1.02);
}

/* Slower hero image effects */
.front-visual__panel {
    animation-duration: 1.8s;
    animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}

.front-visual__panel--01 {
    animation-delay: 0.12s;
}

.front-visual__panel--02 {
    animation-delay: 0.32s;
}

.front-visual__panel--03 {
    animation-delay: 0.52s;
}

.front-visual__panel--04 {
    animation-delay: 0.72s;
}

.front-visual__panel--05 {
    animation-delay: 0.92s;
}

.front-visual__panel::before {
    transition:
        transform 1.45s cubic-bezier(0.16, 1, 0.3, 1),
        filter 1.45s cubic-bezier(0.16, 1, 0.3, 1);
}

.front-visual__panel:hover::before {
    transform: scale(1.075);
    filter: brightness(1.08) contrast(1.08);
}

.front-visual__media:hover .front-visual__panel:not(:hover)::before {
    filter: brightness(0.64) contrast(1.02);
}

/* STUDIO Ikkei logo */
.front-studio__logo {
    width: 148px;
    margin: 0 0 24px;
}

.front-studio__logo img {
    display: block;
    width: 100%;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: 0.88;
}

@media (max-width: 640px) {
    .front-studio__logo {
        width: 124px;
        margin-bottom: 20px;
    }
}

/* Studio logo overlay */
.front-studio__content .front-studio__logo {
    display: none;
}

.front-studio__image {
    position: relative;
}

.front-studio__image-logo {
    position: absolute;
    right: 32px;
    bottom: 28px;
    z-index: 2;
    width: 140px;
    opacity: 0.82;
    pointer-events: none;
}

.front-studio__image-logo img {
    display: block;
    width: 100%;
    height: auto;
    filter: brightness(0) invert(1);
}

@media (max-width: 900px) {
    .front-studio__image-logo {
        width: 120px;
        right: 24px;
        bottom: 24px;
    }
}

@media (max-width: 640px) {
    .front-studio__image-logo {
        width: 104px;
        right: 18px;
        bottom: 18px;
        opacity: 0.78;
    }
}

/* Use original green Studio Ikkei logo */
.front-studio__image-logo {
    width: 150px;
    opacity: 0.9;
}

.front-studio__image-logo img {
    filter: none !important;
}

/* Studio logo position refinement */
.front-studio__image-logo {
    bottom: 64px;
}

/* News section */
.front-news {
    padding: 72px 5vw 80px;
    background: #f7f4ee;
    color: #202020;
}

.front-news-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
}

.news-card__link {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 20px;
    color: inherit;
}

.news-card__image {
    margin: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #e8e3da;
}

.news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease, filter 0.45s ease;
}

.news-card__image--empty {
    display: grid;
    place-items: center;
    color: var(--color-muted);
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.news-card:hover .news-card__image img {
    transform: scale(1.06);
    filter: brightness(0.88);
}

.news-card__date {
    display: block;
    margin-bottom: 8px;
    color: var(--color-muted);
    font-size: 12px;
    letter-spacing: 0.1em;
}

.news-card__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.04em;
}

.news-card__excerpt {
    margin: 10px 0 0;
    color: var(--color-muted);
    font-size: 13px;
    line-height: 1.8;
}

.front-news-empty {
    color: var(--color-muted);
}

/* News archive page */
.news-page {
    background: #f7f4ee;
    color: #202020;
}

.news-hero {
    padding: 96px 5vw 64px;
    border-bottom: 1px solid var(--color-line);
}

.news-hero__label {
    margin: 0 0 16px;
    color: var(--color-muted);
    font-size: 13px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.news-hero__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(42px, 7vw, 88px);
    font-weight: 400;
    letter-spacing: 0.08em;
}

.news-hero__text {
    max-width: 720px;
    margin: 28px 0 0;
    color: var(--color-muted);
}

.news-archive {
    padding: 72px 5vw 96px;
}

.news-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px 32px;
}

.news-archive .news-card__link {
    display: block;
}

.news-archive .news-card__image {
    aspect-ratio: 4 / 3;
    margin-bottom: 18px;
}

.news-archive .news-card__title {
    font-size: 24px;
}

@media (max-width: 1100px) {
    .front-news-grid,
    .news-archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .front-news,
    .news-archive {
        padding: 56px 6vw;
    }

    .news-hero {
        padding: 72px 6vw 48px;
    }

    .front-news-grid,
    .news-archive-grid {
        grid-template-columns: 1fr;
    }

    .news-card__link {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 16px;
    }

    .news-archive .news-card__link {
        display: block;
    }
}

/* News / Journal section */
.front-news {
    padding: 72px 5vw 80px;
    background: #f7f4ee;
    color: #202020;
}

.front-news-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
}

.news-card__link {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 20px;
    color: inherit;
}

.news-card__image {
    margin: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #e8e3da;
}

.news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease, filter 0.45s ease;
}

.news-card__image--empty {
    display: grid;
    place-items: center;
    color: var(--color-muted);
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.news-card:hover .news-card__image img {
    transform: scale(1.06);
    filter: brightness(0.88);
}

.news-card__date {
    display: inline-block;
    margin-right: 12px;
    color: var(--color-muted);
    font-size: 12px;
    letter-spacing: 0.1em;
}

.news-card__category {
    display: inline-block;
    margin: 0 0 8px;
    padding: 3px 8px;
    border: 1px solid var(--color-line);
    color: var(--color-muted);
    font-size: 11px;
    letter-spacing: 0.08em;
}

.news-card__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.04em;
}

.news-card__excerpt {
    margin: 10px 0 0;
    color: var(--color-muted);
    font-size: 13px;
    line-height: 1.8;
}

.front-news-empty {
    color: var(--color-muted);
}

/* News / Journal archive page */
.news-page {
    background: #f7f4ee;
    color: #202020;
}

.news-hero {
    padding: 96px 5vw 64px;
    border-bottom: 1px solid var(--color-line);
}

.news-hero__label {
    margin: 0 0 16px;
    color: var(--color-muted);
    font-size: 13px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.news-hero__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(42px, 7vw, 88px);
    font-weight: 400;
    letter-spacing: 0.08em;
}

.news-hero__text {
    max-width: 720px;
    margin: 28px 0 0;
    color: var(--color-muted);
}

.news-archive {
    padding: 72px 5vw 96px;
}

.news-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px 32px;
}

.news-archive .news-card__link {
    display: block;
}

.news-archive .news-card__image {
    aspect-ratio: 4 / 3;
    margin-bottom: 18px;
}

.news-archive .news-card__title {
    font-size: 24px;
}

@media (max-width: 1100px) {
    .front-news-grid,
    .news-archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .front-news,
    .news-archive {
        padding: 56px 6vw;
    }

    .news-hero {
        padding: 72px 6vw 48px;
    }

    .front-news-grid,
    .news-archive-grid {
        grid-template-columns: 1fr;
    }

    .news-card__link {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 16px;
    }

    .news-archive .news-card__link {
        display: block;
    }
}

/* Fallback thumbnail */
.news-card__image img,
.works-card__image img {
    background: #111;
}

/* Contact banner background position refinement */
.front-contact-banner {
    background-position: 72% center;
}

/* Contact banner camera layer refinement */
.front-contact-banner {
    position: relative;
    overflow: hidden;
    background-image:
        linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.82), rgba(5, 5, 5, 0.68)),
        linear-gradient(120deg, #161616, #050505);
}

.front-contact-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: url("../img/front/contact-camera.jpg");
    background-size: cover;
    background-position: 78% center;
    transform: translateX(110px);
    opacity: 0.82;
}

.front-contact-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(5, 5, 5, 0.92), rgba(5, 5, 5, 0.58), rgba(5, 5, 5, 0.74));
    pointer-events: none;
}

.front-contact-banner__content,
.front-contact-banner > .button-primary {
    position: relative;
    z-index: 2;
}

@media (max-width: 900px) {
    .front-contact-banner::before {
        transform: translateX(40px);
        background-position: center;
        opacity: 0.62;
    }
}

/* Contact banner camera further right */
.front-contact-banner::before {
    transform: translateX(220px);
    background-position: 82% center;
}

/* Footer brand and contact refinement */
.site-footer__brand {
    min-width: 220px;
}

.footer-brand {
    display: inline-block;
    color: #f7f4ee;
}

.footer-brand__name {
    display: block;
    font-family: var(--font-serif);
    font-size: 30px;
    line-height: 1;
    letter-spacing: 0.18em;
    white-space: nowrap;
}

.footer-brand__tagline {
    display: block;
    margin-top: 10px;
    color: rgba(247, 244, 238, 0.72);
    font-size: 11px;
    line-height: 1.3;
    letter-spacing: 0.055em;
    white-space: nowrap;
}

.site-footer__info a {
    color: rgba(247, 244, 238, 0.78);
    text-decoration: none;
}

.site-footer__info a:hover {
    color: #f7f4ee;
}

.site-footer__social svg path,
.site-footer__social svg rect,
.site-footer__social svg circle {
    fill: none;
    stroke: currentColor;
}

.site-footer__social a[aria-label="Facebook"] svg path {
    fill: currentColor;
    stroke: none;
}

@media (max-width: 640px) {
    .footer-brand__name {
        font-size: 26px;
        letter-spacing: 0.16em;
    }

    .footer-brand__tagline {
        font-size: 10px;
        letter-spacing: 0.035em;
    }
}

/* Footer social icon row */
.site-footer__social {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 22px;
}

.site-footer__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color: rgba(247, 244, 238, 0.76);
    transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.site-footer__social a:hover {
    color: #f7f4ee;
    transform: translateY(-2px);
}

.site-footer__social svg {
    width: 100%;
    height: 100%;
}

.site-footer__social svg rect,
.site-footer__social svg circle,
.site-footer__social svg path {
    stroke: currentColor;
}

.site-footer__social a[aria-label="Facebook"] svg path {
    fill: currentColor;
    stroke: none;
}

@media (max-width: 640px) {
    .site-footer__social {
        gap: 18px;
    }

    .site-footer__social a {
        width: 32px;
        height: 32px;
    }
}

/* Footer social under contact info */
.site-footer__info .site-footer__social {
    margin-top: 24px;
}

.site-footer__info .site-footer__social a {
    width: 32px;
    height: 32px;
}

/* Front works category mobile refinement */
@media (max-width: 640px) {
    .front-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2px;
    }

    .front-category-card__image {
        aspect-ratio: 1 / 1;
    }

    .front-category-card__name {
        padding: 12px 6px 14px;
        font-size: 15px;
        letter-spacing: 0.06em;
    }

    .front-category-card__hover {
        display: none;
    }
}

@media (max-width: 420px) {
    .front-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .front-category-card__name {
        font-size: 14px;
    }
}

/* Front works category breakpoint refinement */
@media (min-width: 1181px) {
    .front-category-grid {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }
}

@media (max-width: 1180px) {
    .front-category-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .front-category-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .front-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* About section final responsive refinement */
.front-about {
    align-items: center;
}

.front-about__content {
    max-width: 720px;
}

.front-about__image {
    justify-self: end;
    width: min(520px, 100%);
}

.image-placeholder--portrait {
    width: 100%;
    aspect-ratio: 4 / 5;
    background-position: center top;
}

/* Tablet / small desktop */
@media (max-width: 900px) {
    .front-about {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .front-about__image {
        justify-self: center;
        width: min(560px, 100%);
    }
}

/* Mobile */
@media (max-width: 700px) {
    .front-about {
        display: block;
        padding: 64px 6vw;
    }

    .front-about__content {
        max-width: 100%;
    }

    .front-about__content h2 {
        font-size: 34px;
        line-height: 1.45;
        letter-spacing: 0.04em;
    }

    .front-about__content p:not(.section-label) {
        font-size: 15px;
        line-height: 2.05;
        letter-spacing: 0.04em;
        max-width: 100%;
        overflow-wrap: break-word;
    }

    .front-about__image {
        width: 100%;
        margin-top: 40px;
    }

    .image-placeholder--portrait {
        aspect-ratio: 4 / 5;
        background-position: center top;
    }
}

/* Narrow mobile */
@media (max-width: 420px) {
    .front-about {
        padding-top: 56px;
        padding-bottom: 56px;
    }

    .front-about__content h2 {
        font-size: 31px;
    }

    .front-about__content p:not(.section-label) {
        font-size: 14px;
        line-height: 2;
    }

    .front-about__image {
        margin-top: 36px;
    }
}

/* SP overall overflow guard */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

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

/* Mobile hero slider */
@media (max-width: 700px) {
    .front-visual {
        position: relative;
        min-height: auto;
        overflow: hidden;
        background: #050505;
    }

    .front-visual__media {
        display: flex;
        width: 100%;
        min-height: 620px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    .front-visual__media::-webkit-scrollbar {
        display: none;
    }

    .front-visual__panel {
        flex: 0 0 100%;
        width: 100%;
        min-height: 620px;
        scroll-snap-align: start;
        border-right: 0;
    }

    .front-visual__panel::before {
        transform: none;
        filter: brightness(0.66) contrast(1.04);
    }

    .front-visual__panel:hover::before {
        transform: none;
        filter: brightness(0.66) contrast(1.04);
    }

    .front-visual__media:hover .front-visual__panel:not(:hover)::before {
        filter: brightness(0.66) contrast(1.04);
    }

    .front-visual__content {
        position: absolute;
        left: 6vw;
        right: 6vw;
        top: 96px;
        z-index: 5;
        width: auto;
        max-width: none;
        padding: 0;
        pointer-events: none;
    }

    .front-visual__content .section-label,
    .front-visual__content h1,
    .front-visual__content p {
        pointer-events: auto;
    }

    .front-visual__content h1 {
        font-size: clamp(46px, 13vw, 72px);
        line-height: 1.35;
        letter-spacing: 0.04em;
    }

    .front-visual__content p {
        font-size: 16px;
        line-height: 2;
        letter-spacing: 0.06em;
    }

    .front-visual__buttons {
        display: grid;
        grid-template-columns: 1fr;
        gap: 18px;
        width: 100%;
        margin-top: 36px;
        pointer-events: auto;
    }

    .front-visual__buttons .button-primary,
    .front-visual__buttons .button-outline {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
}

/* Mobile button width refinement */
@media (max-width: 700px) {
    .front-studio .button-outline,
    .front-contact-banner .button-primary,
    .front-contact-banner .button-outline,
    .works-contact-cta .button-outline {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .front-studio__content,
    .front-contact-banner__content {
        width: 100%;
        max-width: 100%;
    }

    .front-studio {
        overflow: hidden;
    }

    .front-contact-banner {
        width: auto;
        margin-left: 0;
        margin-right: 0;
        overflow: hidden;
    }

    .front-contact-banner {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 56px 6vw;
    }

    .front-contact-banner > .button-primary {
        justify-self: stretch;
    }
}

/* Mobile studio section refinement */
@media (max-width: 700px) {
    .front-studio {
        grid-template-columns: 1fr;
    }

    .front-studio__content {
        padding: 64px 6vw 56px;
    }

    .front-studio__image {
        width: 100%;
    }

    .front-studio__image .image-placeholder--studio {
        aspect-ratio: 4 / 5;
        min-height: auto;
    }

    .front-studio__image-logo {
        width: 120px;
        right: 20px;
        bottom: 28px;
    }
}

/* Mobile contact section refinement */
@media (max-width: 700px) {
    .front-contact-banner h2 {
        font-size: clamp(34px, 10vw, 52px);
        line-height: 1.45;
    }

    .front-contact-banner p {
        font-size: 16px;
        line-height: 2;
    }

    .front-contact-banner::before {
        transform: translateX(90px);
        opacity: 0.58;
    }
}

/* Mobile hero restore */
@media (max-width: 700px) {
    .front-visual {
        display: block !important;
        position: relative;
        min-height: 760px;
        height: 760px;
        overflow: hidden;
        background: #050505;
    }

    .front-visual__media {
        position: absolute;
        inset: 0;
        display: flex !important;
        width: 100%;
        height: 100%;
        min-height: 760px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        z-index: 1;
    }

    .front-visual__panel {
        display: block !important;
        flex: 0 0 100%;
        width: 100%;
        height: 100%;
        min-height: 760px;
        scroll-snap-align: start;
        opacity: 1;
        transform: none;
        animation: none;
    }

    .front-visual__panel::before {
        opacity: 1;
        transform: none;
        filter: brightness(0.64) contrast(1.04);
    }

    .front-visual__content {
        position: absolute;
        left: 6vw;
        right: 6vw;
        top: 96px;
        z-index: 5;
        width: auto;
        max-width: none;
        padding: 0;
    }

    .front-visual__buttons {
        display: grid;
        grid-template-columns: 1fr;
        gap: 18px;
        width: 100%;
        margin-top: 36px;
    }

    .front-visual__buttons .button-primary,
    .front-visual__buttons .button-outline {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
}

/* Mobile hero content reduction */
@media (max-width: 700px) {
    .front-visual {
        height: 680px;
        min-height: 680px;
    }

    .front-visual__media,
    .front-visual__panel {
        min-height: 680px;
        height: 680px;
    }

    .front-visual__content {
        top: auto;
        bottom: 54px;
        left: 6vw;
        right: 6vw;
    }

    .front-visual__content .section-label {
        margin-bottom: 18px;
        font-size: 12px;
        letter-spacing: 0.18em;
    }

    .front-visual__content h1 {
        font-size: clamp(38px, 11vw, 56px);
        line-height: 1.28;
        letter-spacing: 0.035em;
    }

    .front-visual__content p:not(.section-label) {
        display: none;
    }

    .front-visual__buttons {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        margin-top: 30px;
    }

    .front-visual__buttons .button-primary,
    .front-visual__buttons .button-outline {
        height: 54px;
        min-height: 54px;
        padding: 0 10px;
        font-size: 14px;
        letter-spacing: 0.08em;
    }

    .front-visual__panel::before {
        filter: brightness(0.72) contrast(1.04);
    }
}

@media (max-width: 420px) {
    .front-visual {
        height: 640px;
        min-height: 640px;
    }

    .front-visual__media,
    .front-visual__panel {
        height: 640px;
        min-height: 640px;
    }

    .front-visual__content h1 {
        font-size: clamp(36px, 10.5vw, 48px);
    }
}

/* Mobile hero lead refinement */
@media (max-width: 700px) {
    .front-visual__content p:not(.section-label) {
        display: block;
        max-width: 92%;
        margin-top: 22px;
        color: rgba(247, 244, 238, 0.82);
        font-size: 14px;
        line-height: 1.9;
        letter-spacing: 0.055em;
    }
}

@media (max-width: 420px) {
    .front-visual__content p:not(.section-label) {
        font-size: 13px;
        line-height: 1.85;
    }
}

/* Mobile hero slider dots */
.front-visual__dots {
    display: none;
}

@media (max-width: 700px) {
    .front-visual__dots {
        position: absolute;
        left: 6vw;
        bottom: 24px;
        z-index: 6;
        display: flex;
        gap: 8px;
    }

    .front-visual__dot {
        width: 22px;
        height: 2px;
        padding: 0;
        border: 0;
        background: rgba(247, 244, 238, 0.32);
        cursor: pointer;
    }

    .front-visual__dot.is-active {
        background: rgba(247, 244, 238, 0.92);
    }
}

/* Mobile hero lead and overlay refinement */
.front-visual__lead-sp {
    display: none;
}

@media (max-width: 700px) {
    .front-visual__lead-pc {
        display: none;
    }

    .front-visual__lead-sp {
        display: inline;
    }

    .front-visual__content p.front-visual__lead {
        display: block;
        max-width: 88%;
        margin-top: 20px;
        color: rgba(247, 244, 238, 0.84);
        font-size: 14px;
        line-height: 1.85;
        letter-spacing: 0.055em;
    }

    .front-visual__panel::before,
    .front-visual__panel:hover::before,
    .front-visual__media:hover .front-visual__panel:not(:hover)::before {
        filter: brightness(0.82) contrast(1.04);
    }
}

@media (max-width: 420px) {
    .front-visual__content p.front-visual__lead {
        max-width: 92%;
        font-size: 13px;
        line-height: 1.8;
    }
}

/* Mobile hero label and hamburger refinement */
@media (max-width: 700px) {
    .front-visual__content > .section-label {
        display: none;
    }
}

/* Hamburger: use three clear lines */
.site-header__menu-icon,
.header-menu-icon,
.menu-toggle__icon {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 24px;
}

.site-header__menu-icon span,
.header-menu-icon span,
.menu-toggle__icon span {
    display: none;
}

.site-header__menu-icon::before,
.site-header__menu-icon::after,
.header-menu-icon::before,
.header-menu-icon::after,
.menu-toggle__icon::before,
.menu-toggle__icon::after {
    content: "";
    position: absolute;
    left: 0;
    width: 40px;
    height: 2px;
    background: currentColor;
}

.site-header__menu-icon::before,
.header-menu-icon::before,
.menu-toggle__icon::before {
    top: 2px;
}

.site-header__menu-icon::after,
.header-menu-icon::after,
.menu-toggle__icon::after {
    bottom: 2px;
}

.site-header__menu-icon,
.header-menu-icon,
.menu-toggle__icon {
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-size: 40px 2px;
    background-position: left center;
}

/* Exact hamburger refinement */
.site-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 20px;
}

.site-nav-toggle__text {
    text-transform: uppercase;
}

.site-nav-toggle {
    position: relative;
}

.site-nav-toggle__line {
    display: block;
    width: 40px;
    height: 2px;
    background: currentColor;
}

.site-nav-toggle__line + .site-nav-toggle__line {
    margin-top: 10px;
}

.site-nav-toggle::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 40px;
    height: 2px;
    background: currentColor;
    transform: translateY(-50%);
}

@media (max-width: 700px) {
    .site-nav-toggle__line {
        width: 38px;
    }

    .site-nav-toggle::after {
        width: 38px;
    }

    .site-nav-toggle__line + .site-nav-toggle__line {
        margin-top: 9px;
    }
}

/* Final hamburger icon structure */
.site-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 22px;
}

.site-nav-toggle__icon {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    width: 42px;
    height: 28px;
}

.site-nav-toggle__icon .site-nav-toggle__line {
    display: block !important;
    width: 42px;
    height: 2px;
    margin: 0 !important;
    background: currentColor;
}

.site-nav-toggle::after {
    content: none !important;
}

@media (max-width: 700px) {
    .site-nav-toggle__icon {
        width: 40px;
        height: 26px;
        gap: 7px;
    }

    .site-nav-toggle__icon .site-nav-toggle__line {
        width: 40px;
    }
}

/* Hide duplicated hero label on mobile */
@media (max-width: 700px) {
    .front-visual__content > p:first-of-type:not(.front-visual__lead) {
        display: none !important;
    }

    .front-visual__content > .section-label {
        display: none !important;
    }
}

/* Final hamburger vertical spacing fix */
.site-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 22px;
}

.site-nav-toggle__icon {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    width: 42px;
    height: 28px;
}

.site-nav-toggle__icon .site-nav-toggle__line {
    position: static !important;
    display: block !important;
    width: 42px;
    height: 2px;
    margin: 0 !important;
    padding: 0 !important;
    background: currentColor;
    transform: none !important;
}

.site-nav-toggle__line + .site-nav-toggle__line {
    margin-top: 0 !important;
}

.site-nav-toggle::before,
.site-nav-toggle::after {
    content: none !important;
}

@media (max-width: 700px) {
    .site-nav-toggle {
        gap: 20px;
    }

    .site-nav-toggle__icon {
        width: 40px;
        height: 26px;
        gap: 7px;
    }

    .site-nav-toggle__icon .site-nav-toggle__line {
        width: 40px;
    }
}

/* Hero copy line break refinement for desktop */
@media (min-width: 701px) {
    .front-visual__content h1 {
        white-space: nowrap;
    }
}

@media (min-width: 701px) and (max-width: 1500px) {
    .front-visual__content h1 {
        font-size: clamp(56px, 5.2vw, 86px);
        line-height: 1.45;
        letter-spacing: 0.04em;
    }

    .front-visual__content {
        max-width: 760px;
    }
}

@media (min-width: 701px) and (max-width: 1200px) {
    .front-visual__content h1 {
        font-size: clamp(48px, 5vw, 68px);
    }
}

/* Hide hamburger on desktop */
@media (min-width: 901px) {
    .site-nav-toggle {
        display: none !important;
    }
}

/* Show hamburger on tablet / mobile */
@media (max-width: 900px) {
    .site-nav-toggle {
        display: inline-flex !important;
    }
}

/* =========================================================
   Breakpoints
   PC:      1181px and up
   Tablet: 701px - 1180px
   SP:      700px and down
========================================================= */

/* Header - PC */
@media (min-width: 1181px) {
    .site-header {
        min-height: 120px;
    }

    .site-header__inner {
        display: grid;
        grid-template-columns: auto 1fr;
        align-items: center;
        gap: 56px;
    }

    .site-nav {
        display: block !important;
    }

    .site-nav__list {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        gap: clamp(28px, 3vw, 56px);
    }

    .site-nav-toggle {
        display: none !important;
    }
}

/* Header - Tablet */
@media (min-width: 701px) and (max-width: 1180px) {
    .site-header {
        min-height: 128px;
    }

    .site-header__inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 32px;
    }

    .site-nav {
        display: none !important;
    }

    .site-nav-toggle {
        display: inline-flex !important;
    }
}

/* Header - SP */
@media (max-width: 700px) {
    .site-header {
        min-height: 128px;
    }

    .site-header__inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
    }

    .site-nav {
        display: none !important;
    }

    .site-nav-toggle {
        display: inline-flex !important;
    }
}

/* Final header navigation breakpoint control */
/* Wide PC: show global nav */
@media (min-width: 1401px) {
    .site-header .site-nav {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .site-header .site-nav__list {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        gap: clamp(28px, 2.6vw, 52px);
    }

    .site-header .site-nav-toggle {
        display: none !important;
    }
}

/* Narrow PC / Tablet / SP: show hamburger */
@media (max-width: 1400px) {
    .site-header .site-nav {
        display: none !important;
    }

    .site-header .site-nav-toggle {
        display: inline-flex !important;
        align-items: center;
    }

    .site-header__inner {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 32px;
    }
}

/* SP header fine tuning */
@media (max-width: 700px) {
    .site-header__inner {
        gap: 24px;
    }
}

/* Header navigation drawer */
body.is-nav-open {
    overflow: hidden;
}

.site-header {
    z-index: 1000;
}

@media (max-width: 1400px) {
    .site-header.is-nav-open .site-nav {
        display: block !important;
        position: fixed;
        inset: 0;
        z-index: 900;
        padding: 180px 8vw 56px;
        background: rgba(8, 8, 8, 0.96);
        backdrop-filter: blur(10px);
    }

    .site-header.is-nav-open .site-nav__list {
        display: grid !important;
        gap: 24px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .site-header.is-nav-open .site-nav__list a {
        display: block;
        color: #f7f4ee;
        font-family: var(--font-serif);
        font-size: clamp(26px, 4.5vw, 44px);
        line-height: 1.4;
        letter-spacing: 0.08em;
    }

    .site-header.is-nav-open .site-nav-toggle {
        position: relative;
        z-index: 1001;
    }

    .site-header.is-nav-open .site-brand {
        position: relative;
        z-index: 1001;
    }
}

@media (max-width: 700px) {
    .site-header.is-nav-open .site-nav {
        padding: 170px 6vw 48px;
    }

    .site-header.is-nav-open .site-nav__list {
        gap: 22px;
    }

    .site-header.is-nav-open .site-nav__list a {
        font-size: 28px;
    }
}

/* Navigation drawer typography refinement */
@media (max-width: 1400px) {
    .site-header.is-nav-open .site-nav {
        padding-top: 220px;
    }

    .site-header.is-nav-open .site-nav__list {
        gap: 20px;
    }

    .site-header.is-nav-open .site-nav__list a {
        font-size: clamp(24px, 3.4vw, 36px);
        line-height: 1.45;
        letter-spacing: 0.07em;
    }
}

@media (max-width: 700px) {
    .site-header.is-nav-open .site-nav {
        padding-top: 230px;
        padding-left: 8vw;
        padding-right: 8vw;
    }

    .site-header.is-nav-open .site-nav__list {
        gap: 22px;
    }

    .site-header.is-nav-open .site-nav__list a {
        font-size: clamp(25px, 7vw, 32px);
        line-height: 1.45;
        letter-spacing: 0.06em;
    }
}

/* =========================================================
   Works single page
   作品詳細ページ
========================================================= */

.works-single {
    background: #050505;
    color: #202020;
}

.works-single__article {
    background: #050505;
}

/* Hero */
.works-single-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    min-height: 540px;
    background: #050505;
    color: #f7f4ee;
    border-bottom: 1px solid rgba(247, 244, 238, 0.14);
}

.works-single-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 96px 5vw 72px;
}

.works-single-hero__category {
    margin: 0 0 28px;
    color: rgba(247, 244, 238, 0.7);
    font-size: 14px;
    letter-spacing: 0.16em;
}

.works-single-hero__title {
    max-width: 720px;
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(38px, 4.2vw, 66px);
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0.08em;
}

.works-single-hero__lead {
    max-width: 560px;
    margin: 28px 0 0;
    color: rgba(247, 244, 238, 0.78);
    font-size: 15px;
    line-height: 2;
}

.works-single-hero__image {
    position: relative;
    margin: 0;
    min-height: 540px;
    overflow: hidden;
    background: #111;
}

.works-single-hero__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(5, 5, 5, 0.42), rgba(5, 5, 5, 0.08)),
        linear-gradient(180deg, rgba(5, 5, 5, 0.2), rgba(5, 5, 5, 0.42));
    pointer-events: none;
}

.works-single-hero__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.76) contrast(1.06);
}

/* Overview */
.works-single-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    gap: 88px;
    padding: 72px 5vw;
    background: #f7f4ee;
    color: #202020;
    border-bottom: 1px solid var(--color-line);
}

.works-single-overview__body > .section-label {
    margin-bottom: 18px;
}

.works-single-overview h2,
.works-single-section-heading h2,
.works-single-contact h2 {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(28px, 3vw, 42px);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.08em;
}

.works-single-content,
.works-single-overview__body > p {
    margin-top: 28px;
    color: #4f4f4f;
    font-size: 15px;
    line-height: 2.15;
}

.works-single-content p {
    margin: 0 0 1.6em;
}

/* Meta */
.works-meta-list {
    margin: 12px 0 0;
    border-top: 1px solid var(--color-line);
}

.works-meta-list div {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 24px;
    padding: 16px 0;
    border-bottom: 1px solid var(--color-line);
}

.works-meta-list dt {
    color: #202020;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.works-meta-list dd {
    margin: 0;
    color: #666;
    font-size: 14px;
    line-height: 1.8;
}

/* Common section heading */
.works-single-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 40px;
}

.works-single-section-heading a {
    color: inherit;
    border-bottom: 1px solid currentColor;
    padding-bottom: 4px;
}

/* Gallery */
.works-single-gallery {
    padding: 72px 5vw 80px;
    background: #050505;
    color: #f7f4ee;
    border-bottom: 1px solid rgba(247, 244, 238, 0.14);
}

.works-single-gallery .works-single-section-heading {
    margin-bottom: 28px;
}

.works-single-gallery__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.works-single-gallery__grid--single {
    grid-template-columns: minmax(0, 1fr);
    max-width: 900px;
    margin-inline: auto;
}

.works-single-gallery__list {
    display: grid;
    gap: 64px;
}

.works-single-gallery__item {
    margin: 0;
    min-height: 0;
}

.works-single-gallery__item--described {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: 40px;
    align-items: center;
}

.works-single-gallery__visual {
    overflow: hidden;
    background: #111;
}

.works-single-gallery__item img {
    display: block;
    width: 100%;
    height: auto;
}

.works-single-gallery__grid .works-single-gallery__item img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.works-single-gallery__caption {
    color: rgba(247, 244, 238, 0.78);
    font-size: 15px;
    line-height: 2;
}

.works-single-gallery__caption p {
    margin: 0 0 1em;
}

.works-single-gallery__number {
    display: block;
    margin-bottom: 16px;
    color: #f7f4ee;
    font-size: 13px;
    letter-spacing: 0.16em;
}

.works-single-gallery__number:last-child {
    margin-bottom: 0;
}

/* Production */
.works-single-production {
    padding: 48px 5vw;
    background: #f7f4ee;
    color: #202020;
    border-bottom: 1px solid var(--color-line);
}

.works-single-production .works-single-section-heading {
    margin-bottom: 28px;
}

.works-production-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    background: transparent;
    border: 0;
}

.works-production-item {
    position: relative;
    min-height: 132px;
    padding: 24px 28px;
    background: transparent;
    border-right: 1px solid var(--color-line);
}

.works-production-item:first-child {
    border-left: 1px solid var(--color-line);
}

.works-production-item h3 {
    margin: 0 0 12px;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.06em;
}

.works-production-item p {
    margin: 0;
    color: #666;
    font-size: 13px;
    line-height: 1.85;
}

.works-production-empty,
.works-single-related__empty {
    color: #666;
}

/* Related */
.works-single-related {
    padding: 64px 5vw 56px;
    background: #050505;
    color: #f7f4ee;
    border-bottom: 1px solid rgba(247, 244, 238, 0.14);
}

.works-single-related__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px;
}

/* Contact CTA */
.works-single-contact {
    padding: 0 5vw 72px;
    background: #050505;
    color: #f7f4ee;
}

.works-single-contact__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 48px;
    min-height: 160px;
    padding: 36px 44px;
    border: 1px solid rgba(247, 244, 238, 0.28);
    background:
        linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.72)),
        url("../img/front/contact-camera.jpg");
    background-size: cover;
    background-position: 76% center;
}

.works-single-contact h2 {
    font-size: clamp(26px, 2.8vw, 40px);
}

.works-single-contact p:not(.section-label) {
    max-width: 640px;
    color: rgba(247, 244, 238, 0.72);
    line-height: 2;
}

.works-single-contact .button-primary {
    min-width: 280px;
}

/* Tablet */
@media (max-width: 1180px) {
    .works-single-hero {
        grid-template-columns: 1fr;
    }

    .works-single-hero__image {
        min-height: 460px;
        order: -1;
    }

    .works-single-overview {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .works-single-gallery__item--described {
        gap: 24px;
    }

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

    .works-production-item {
        border: 1px solid var(--color-line);
        margin: -1px 0 0 -1px;
    }

    .works-single-related__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* SP */
@media (max-width: 700px) {
    .works-single-hero {
        min-height: auto;
    }

    .works-single-hero__content {
        padding: 56px 6vw 48px;
    }

    .works-single-hero__image {
        min-height: auto;
        aspect-ratio: 4 / 3;
    }

    .works-single-hero__title {
        font-size: clamp(34px, 9.5vw, 48px);
    }

    .works-single-hero__lead {
        font-size: 14px;
        line-height: 1.9;
    }

    .works-single-overview,
    .works-single-gallery,
    .works-single-production,
    .works-single-related {
        padding: 56px 6vw;
    }

    .works-meta-list div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .works-single-section-heading {
        display: block;
    }

    .works-single-section-heading a {
        display: inline-block;
        margin-top: 20px;
    }

    .works-single-gallery__grid {
        grid-template-columns: 1fr;
    }

    .works-single-gallery__item--described {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .works-single-gallery__list {
        gap: 48px;
    }

    .works-production-grid,
    .works-single-related__grid {
        grid-template-columns: 1fr;
    }

    .works-single-contact {
        padding: 0 6vw 64px;
    }

    .works-single-contact__inner {
        grid-template-columns: 1fr;
        padding: 32px 24px;
        background-position: center;
    }

    .works-single-contact .button-primary {
        min-width: 0;
        width: 100%;
    }
}


/* Works gallery lightbox */
.works-single-gallery__item img {
    cursor: zoom-in;
}

.works-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    padding: 5vw;
    background: rgba(0, 0, 0, 0.88);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.works-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

.works-lightbox__image {
    max-width: min(1200px, 92vw);
    max-height: 86vh;
    object-fit: contain;
    display: block;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
    transform: scale(0.96);
    transition: transform 0.35s ease;
}

.works-lightbox.is-open .works-lightbox__image {
    transform: scale(1);
}

.works-lightbox__close {
    position: fixed;
    top: 28px;
    right: 32px;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    color: #f7f4ee;
    cursor: pointer;
}

.works-lightbox__close::before,
.works-lightbox__close::after {
    content: "";
    position: absolute;
    left: 8px;
    top: 21px;
    width: 28px;
    height: 1px;
    background: currentColor;
}

.works-lightbox__close::before {
    transform: rotate(45deg);
}

.works-lightbox__close::after {
    transform: rotate(-45deg);
}

body.is-lightbox-open {
    overflow: hidden;
}

/* Works single story final readability fix */
.works-single-story {
    padding: 64px 5vw 72px !important;
    background: #f7f4ee !important;
    color: #202020 !important;
    border-bottom: 1px solid var(--color-line);
}

.works-single-story .section-label {
    color: rgba(32, 32, 32, 0.5) !important;
}

.works-single-story .works-single-section-heading h2 {
    color: #202020 !important;
}

.works-single-story__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 48px;
}

.works-single-story__grid p {
    margin: 0;
    color: #555 !important;
    font-size: 14px;
    line-height: 2.05;
}

@media (max-width: 900px) {
    .works-single-story__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

@media (max-width: 700px) {
    .works-single-story {
        padding: 56px 6vw !important;
    }
}

/* Works single detail requested refinements */
.works-single-hero__category {
    margin-bottom: 12px !important;
}

.works-single-hero__title {
    margin-bottom: 0 !important;
}

.works-single-hero__spec {
    margin: 22px 0 0;
    color: rgba(247, 244, 238, 0.78);
    font-size: 15px;
    line-height: 1.9;
    letter-spacing: 0.06em;
}

.works-single-hero__lead {
    display: none;
}

.works-production-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

.works-production-item__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 18px;
    color: #555;
}

.works-production-item__icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.works-single-story {
    padding: 64px 5vw 72px !important;
    background: #f7f4ee !important;
    color: #202020 !important;
}

.works-single-story .section-label,
.works-single-story .works-single-section-heading h2 {
    color: #202020 !important;
}

.works-single-story__grid p {
    color: #555 !important;
}

@media (max-width: 1180px) {
    .works-production-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 700px) {
    .works-single-hero__spec {
        font-size: 14px;
        line-height: 1.8;
    }

    .works-production-grid {
        grid-template-columns: 1fr !important;
    }

    .works-production-item__icon {
        width: 32px;
        height: 32px;
    }
}

/* Works single hero content position refinement */
@media (min-width: 1181px) {
    .works-single-hero__content {
        justify-content: flex-start !important;
        padding-top: 118px !important;
        padding-bottom: 72px !important;
    }
}

@media (min-width: 701px) and (max-width: 1180px) {
    .works-single-hero__content {
        justify-content: flex-start !important;
        padding-top: 88px !important;
        padding-bottom: 56px !important;
    }
}

@media (max-width: 700px) {
    .works-single-hero__content {
        justify-content: flex-start !important;
        padding-top: 56px !important;
    }
}

/* Works single hero breadcrumb only position refinement */
@media (min-width: 1181px) {
    .works-single-hero__content {
        justify-content: center !important;
        padding-top: 96px !important;
        padding-bottom: 72px !important;
    }

    .works-single-breadcrumb {
        position: absolute;
        top: 92px;
        left: 5vw;
        margin: 0;
        z-index: 3;
    }
}

@media (min-width: 701px) and (max-width: 1180px) {
    .works-single-hero__content {
        justify-content: center !important;
        padding-top: 72px !important;
        padding-bottom: 56px !important;
    }

    .works-single-breadcrumb {
        position: absolute;
        top: 64px;
        left: 6vw;
        margin: 0;
        z-index: 3;
    }
}

@media (max-width: 700px) {
    .works-single-hero__content {
        justify-content: center !important;
        padding-top: 56px !important;
    }

    .works-single-breadcrumb {
        position: static;
        margin-bottom: 24px;
    }
}

/* Footer menu two-column layout */
@media (min-width: 901px) {
    .site-footer nav ul,
    .site-footer__nav ul,
    .footer-nav ul {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 48px;
        row-gap: 16px;
    }

    .site-footer nav li,
    .site-footer__nav li,
    .footer-nav li {
        margin: 0;
    }
}

@media (max-width: 900px) {
    .site-footer nav ul,
    .site-footer__nav ul,
    .footer-nav ul {
        display: block;
    }
}

/* Footer nav width and no-wrap refinement */
@media (min-width: 901px) {
    .site-footer nav ul,
    .site-footer__nav ul,
    .footer-nav ul {
        display: grid !important;
        grid-template-columns: 220px 320px !important;
        column-gap: 56px !important;
        row-gap: 22px !important;
        width: max-content;
        max-width: none;
    }

    .site-footer nav li,
    .site-footer__nav li,
    .footer-nav li {
        margin: 0 !important;
        white-space: nowrap !important;
    }

    .site-footer nav a,
    .site-footer__nav a,
    .footer-nav a {
        white-space: nowrap !important;
    }
}

/* Header nav spacing after adding about link */
@media (min-width: 1401px) {
    .site-nav ul,
    .site-header nav ul,
    .header-nav ul {
        column-gap: 42px;
        gap: 42px;
    }

    .site-nav a,
    .site-header nav a,
    .header-nav a {
        white-space: nowrap;
    }
}

/* Footer layout responsive refinement */
@media (min-width: 901px) {
    .site-footer,
    .site-footer * {
        box-sizing: border-box;
    }

    .site-footer {
        overflow: visible !important;
    }

    .site-footer__inner,
    .site-footer .inner,
    .site-footer .footer-inner,
    .site-footer__container,
    .site-footer .container {
        max-width: 1680px !important;
        width: min(92vw, 1680px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .site-footer nav ul,
    .site-footer__nav ul,
    .footer-nav ul {
        display: grid !important;
        grid-template-columns: minmax(170px, 1fr) minmax(240px, 1.35fr) !important;
        column-gap: clamp(32px, 4vw, 72px) !important;
        row-gap: 22px !important;
        width: 100% !important;
        max-width: 620px !important;
    }

    .site-footer nav li,
    .site-footer__nav li,
    .footer-nav li {
        margin: 0 !important;
        white-space: nowrap !important;
    }

    .site-footer nav a,
    .site-footer__nav a,
    .footer-nav a {
        white-space: nowrap !important;
    }

    .site-footer address,
    .site-footer__info,
    .site-footer__contact,
    .footer-contact,
    .footer-info {
        min-width: 0 !important;
        overflow: visible !important;
        word-break: keep-all;
    }

    .site-footer address a,
    .site-footer__info a,
    .site-footer__contact a,
    .footer-contact a,
    .footer-info a {
        word-break: break-word;
    }
}

/* At medium desktop width, stack footer columns to prevent clipping */
@media (min-width: 901px) and (max-width: 1280px) {
    .site-footer__inner,
    .site-footer .inner,
    .site-footer .footer-inner,
    .site-footer__container,
    .site-footer .container {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        column-gap: 64px !important;
        row-gap: 48px !important;
    }

    .site-footer address,
    .site-footer__info,
    .site-footer__contact,
    .footer-contact,
    .footer-info {
        grid-column: 1 / -1;
    }
}

@media (max-width: 900px) {
    .site-footer nav ul,
    .site-footer__nav ul,
    .footer-nav ul {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
    }

    .site-footer nav li,
    .site-footer__nav li,
    .footer-nav li {
        white-space: normal !important;
    }
}

/* Footer final layout override */
.site-footer {
    overflow: hidden !important;
}

.site-footer__inner {
    width: min(88vw, 1440px) !important;
    max-width: 1440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (min-width: 1181px) {
    .site-footer__inner {
        display: grid !important;
        grid-template-columns: 1.1fr 1.25fr 1fr !important;
        column-gap: clamp(48px, 5vw, 88px) !important;
        align-items: start !important;
    }

    .site-footer__nav ul,
    .site-footer nav ul,
    .footer-nav ul {
        display: grid !important;
        grid-template-columns: 1fr 1.5fr !important;
        column-gap: 44px !important;
        row-gap: 20px !important;
        width: 100% !important;
        max-width: 560px !important;
    }

    .site-footer__nav li,
    .site-footer nav li,
    .footer-nav li {
        margin: 0 !important;
        white-space: nowrap !important;
    }

    .site-footer__nav a,
    .site-footer nav a,
    .footer-nav a {
        white-space: nowrap !important;
    }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .site-footer__inner {
        display: grid !important;
        grid-template-columns: 1fr 1.4fr !important;
        column-gap: 56px !important;
        row-gap: 48px !important;
    }

    .site-footer__info,
    .site-footer__contact,
    .footer-info,
    .footer-contact,
    .site-footer address {
        grid-column: 1 / -1 !important;
    }

    .site-footer__nav ul,
    .site-footer nav ul,
    .footer-nav ul {
        display: grid !important;
        grid-template-columns: 1fr 1.5fr !important;
        column-gap: 40px !important;
        row-gap: 18px !important;
    }
}

@media (max-width: 900px) {
    .site-footer__inner {
        display: block !important;
        width: min(86vw, 520px) !important;
    }

    .site-footer__nav ul,
    .site-footer nav ul,
    .footer-nav ul {
        display: block !important;
        max-width: none !important;
        width: 100% !important;
    }

    .site-footer__nav li,
    .site-footer nav li,
    .footer-nav li {
        white-space: normal !important;
    }
}

.site-footer__info,
.site-footer__contact,
.footer-info,
.footer-contact,
.site-footer address {
    min-width: 0 !important;
    overflow: visible !important;
}

.site-footer__info a,
.site-footer__contact a,
.footer-info a,
.footer-contact a,
.site-footer address a {
    overflow-wrap: anywhere !important;
}

/* Footer spacing between brand, nav and contact */
.site-footer__brand,
.site-footer-brand,
.footer-brand {
    margin-bottom: 0;
}

.site-footer__nav,
.footer-nav {
    margin-bottom: 0;
}

.site-footer__info,
.site-footer__contact,
.footer-info,
.footer-contact,
.site-footer address {
    margin-top: 0;
}

/* Desktop footer spacing */
@media (min-width: 1181px) {
    .site-footer__inner {
        column-gap: clamp(72px, 7vw, 132px) !important;
    }
}

/* Tablet / narrow desktop footer spacing */
@media (min-width: 901px) and (max-width: 1180px) {
    .site-footer__inner {
        row-gap: 56px !important;
    }

    .site-footer__brand,
    .site-footer-brand,
    .footer-brand {
        margin-bottom: 0 !important;
    }

    .site-footer__nav,
    .footer-nav {
        margin-bottom: 0 !important;
    }
}

/* Mobile / stacked footer spacing */
@media (max-width: 900px) {
    .site-footer__brand,
    .site-footer-brand,
    .footer-brand {
        margin-bottom: 44px !important;
    }

    .site-footer__nav,
    .footer-nav {
        margin-bottom: 44px !important;
    }

    .site-footer__info,
    .site-footer__contact,
    .footer-info,
    .footer-contact,
    .site-footer address {
        margin-top: 0 !important;
        margin-bottom: 40px !important;
    }

    .site-footer__sns,
    .footer-sns,
    .site-footer .sns-links {
        margin-top: 32px !important;
    }
}

/* Footer spacing final adjustment */
@media (max-width: 900px) {
    .site-footer__brand,
    .site-footer-brand,
    .footer-brand {
        margin-bottom: 28px !important;
    }

    .site-footer__nav,
    .footer-nav {
        margin-bottom: 52px !important;
    }
}

/* Fixed shrinking header final */
.site-header {
    position: sticky !important;
    top: 0;
    z-index: 1000;
    background: rgba(10, 10, 10, 0.92) !important;
    transition:
        background-color 0.35s ease,
        backdrop-filter 0.35s ease,
        box-shadow 0.35s ease;
}

.site-header.is-scrolled {
    background: rgba(10, 10, 10, 0.94) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
}

.site-header__inner,
.site-brand__name,
.site-brand__tagline,
.site-nav a,
.site-nav-toggle {
    transition:
        min-height 0.35s ease,
        padding 0.35s ease,
        font-size 0.35s ease,
        letter-spacing 0.35s ease,
        opacity 0.35s ease;
}

@media (min-width: 1401px) {
    .site-header.is-scrolled .site-header__inner {
        min-height: 76px !important;
        padding-top: 18px !important;
        padding-bottom: 18px !important;
    }

    .site-header.is-scrolled .site-brand__name {
        font-size: 26px !important;
        letter-spacing: 0.12em !important;
    }

    .site-header.is-scrolled .site-brand__tagline {
        font-size: 11px !important;
        opacity: 0.78;
    }

    .site-header.is-scrolled .site-nav a {
        font-size: 13px !important;
    }
}

@media (max-width: 1400px) {
    .site-header {
        position: sticky !important;
        top: 0;
        background: rgba(10, 10, 10, 0.9) !important;
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .site-header.is-scrolled .site-header__inner {
        min-height: 64px !important;
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }

    .site-header.is-scrolled .site-brand__name {
        font-size: 22px !important;
    }

    .site-header.is-scrolled .site-brand__tagline {
        font-size: 10px !important;
    }
}

/* Front contact CTA title and button refinement */
.front-contact-banner h2 {
    font-size: clamp(44px, 5.4vw, 72px) !important;
    line-height: 1.22 !important;
    letter-spacing: 0.08em !important;
    word-break: keep-all;
}

.front-contact-banner p {
    font-size: clamp(17px, 1.7vw, 24px) !important;
    line-height: 2 !important;
}

.front-contact-banner .button-primary {
    background: #c8a45d !important;
    color: #0b0b0b !important;
    border: 1px solid #c8a45d !important;
    box-shadow: none;
    transition:
        background-color 0.35s ease,
        color 0.35s ease,
        border-color 0.35s ease,
        transform 0.35s ease,
        box-shadow 0.35s ease !important;
}

.front-contact-banner .button-primary:hover {
    background: #f3eadb !important;
    color: #0b0b0b !important;
    border-color: #f3eadb !important;
    transform: translateY(-3px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.32);
}

@media (max-width: 700px) {
    .front-contact-banner h2 {
        font-size: clamp(38px, 10vw, 54px) !important;
        line-height: 1.28 !important;
        letter-spacing: 0.06em !important;
    }

    .front-contact-banner p {
        font-size: 17px !important;
        line-height: 1.9 !important;
    }

    .front-contact-banner .button-primary {
        width: 100%;
        max-width: none;
    }
}

/* Global header fixed final override */
:root {
    --fixed-header-height-pc: 112px;
    --fixed-header-height-pc-scrolled: 76px;
    --fixed-header-height-sp: 88px;
    --fixed-header-height-sp-scrolled: 64px;
}

body {
    padding-top: var(--fixed-header-height-pc) !important;
}

.site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    background: rgba(10, 10, 10, 0.94) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
}

.site-header__inner {
    min-height: var(--fixed-header-height-pc) !important;
    padding-top: 24px !important;
    padding-bottom: 24px !important;
    transition:
        min-height 0.35s ease,
        padding 0.35s ease;
}

.site-brand__name,
.site-brand__tagline,
.site-nav a,
.site-nav-toggle {
    transition:
        font-size 0.35s ease,
        letter-spacing 0.35s ease,
        opacity 0.35s ease;
}

/* PC scrolled compact header */
@media (min-width: 1401px) {
    body.has-scrolled-header {
        padding-top: var(--fixed-header-height-pc-scrolled) !important;
    }

    .site-header.is-scrolled .site-header__inner {
        min-height: var(--fixed-header-height-pc-scrolled) !important;
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }

    .site-header.is-scrolled .site-brand__name {
        font-size: 26px !important;
        letter-spacing: 0.12em !important;
    }

    .site-header.is-scrolled .site-brand__tagline {
        font-size: 11px !important;
        opacity: 0.78;
    }

    .site-header.is-scrolled .site-nav a {
        font-size: 13px !important;
    }
}

/* Tablet / SP fixed header */
@media (max-width: 1400px) {
    body {
        padding-top: var(--fixed-header-height-sp) !important;
    }

    body.has-scrolled-header {
        padding-top: var(--fixed-header-height-sp-scrolled) !important;
    }

    .site-header__inner {
        min-height: var(--fixed-header-height-sp) !important;
        padding-top: 18px !important;
        padding-bottom: 18px !important;
    }

    .site-header.is-scrolled .site-header__inner {
        min-height: var(--fixed-header-height-sp-scrolled) !important;
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }

    .site-header.is-scrolled .site-brand__name {
        font-size: 22px !important;
    }

    .site-header.is-scrolled .site-brand__tagline {
        font-size: 10px !important;
    }
}

/* WordPress admin bar support */
body.admin-bar .site-header {
    top: 32px !important;
}

@media (max-width: 782px) {
    body.admin-bar .site-header {
        top: 46px !important;
    }
}

/* Header compact visual override */
@media (min-width: 1401px) {
    .site-header.is-compact {
        height: 76px !important;
    }

    .site-header.is-compact .site-header__inner {
        min-height: 76px !important;
        height: 76px !important;
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }

    .site-header.is-compact .site-brand__name {
        font-size: 24px !important;
        line-height: 1.15 !important;
        letter-spacing: 0.1em !important;
    }

    .site-header.is-compact .site-brand__tagline {
        font-size: 10px !important;
        line-height: 1.2 !important;
        margin-top: 4px !important;
        opacity: 0.72 !important;
    }

    .site-header.is-compact .site-nav a {
        font-size: 13px !important;
        line-height: 1.2 !important;
    }
}

@media (max-width: 1400px) {
    .site-header.is-compact {
        height: 64px !important;
    }

    .site-header.is-compact .site-header__inner {
        min-height: 64px !important;
        height: 64px !important;
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }

    .site-header.is-compact .site-brand__name {
        font-size: 21px !important;
        line-height: 1.15 !important;
    }

    .site-header.is-compact .site-brand__tagline {
        font-size: 10px !important;
        line-height: 1.2 !important;
        margin-top: 3px !important;
        opacity: 0.72 !important;
    }

    .site-header.is-compact .site-nav-toggle {
        transform: scale(0.92);
        transform-origin: right center;
    }
}

/* PC contact CTA toned-down adjustment */
@media (min-width: 701px) {
    .front-contact-banner h2 {
        font-size: clamp(38px, 3.8vw, 58px) !important;
        line-height: 1.25 !important;
        letter-spacing: 0.08em !important;
    }

    .front-contact-banner p {
        font-size: clamp(15px, 1.25vw, 19px) !important;
        line-height: 1.9 !important;
    }

    .front-contact-banner .button-primary {
        background: #b89a58 !important;
        border-color: #b89a58 !important;
        color: #0b0b0b !important;
        padding: 16px 42px !important;
        font-size: 14px !important;
        min-width: 220px !important;
    }

    .front-contact-banner .button-primary:hover {
        background: #d8bf7a !important;
        border-color: #d8bf7a !important;
        transform: translateY(-2px);
        box-shadow: 0 14px 32px rgba(0, 0, 0, 0.26);
    }
}

/* SP contact CTA refinement */
@media (max-width: 700px) {
    .front-contact-banner {
        padding: 56px 28px 64px !important;
    }

    .front-contact-banner__content {
        max-width: 100% !important;
    }

    .front-contact-banner .section-label,
    .front-contact-banner .front-contact-banner__label {
        margin-bottom: 18px !important;
        font-size: 14px !important;
        letter-spacing: 0.18em !important;
    }

    .front-contact-banner h2 {
        font-size: clamp(40px, 9vw, 56px) !important;
        line-height: 1.18 !important;
        letter-spacing: 0.04em !important;
        margin-bottom: 28px !important;
    }

    .front-contact-banner p {
        font-size: 15px !important;
        line-height: 1.9 !important;
        margin-bottom: 16px !important;
    }

    .front-contact-banner .button-primary {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 16px 20px !important;
        font-size: 15px !important;
        line-height: 1.4 !important;
        margin-top: 28px !important;
    }
}

/* SP contact CTA more compact */
@media (max-width: 700px) {
    .front-contact-banner {
        padding: 48px 28px 56px !important;
    }

    .front-contact-banner .section-label,
    .front-contact-banner .front-contact-banner__label {
        font-size: 12px !important;
        letter-spacing: 0.16em !important;
        margin-bottom: 16px !important;
    }

    .front-contact-banner h2 {
        font-size: clamp(34px, 8vw, 46px) !important;
        line-height: 1.22 !important;
        letter-spacing: 0.04em !important;
        margin-bottom: 24px !important;
    }

    .front-contact-banner p {
        font-size: 14px !important;
        line-height: 1.85 !important;
        margin-bottom: 12px !important;
    }

    .front-contact-banner .button-primary {
        padding: 14px 18px !important;
        font-size: 14px !important;
        margin-top: 24px !important;
        min-height: 52px !important;
    }
}

/* About page */
.about-page {
    background: #f4f0e8;
    color: #151515;
}

.about-hero {
    position: relative;
    min-height: 520px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    color: #fff;
}

.about-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,0.78), rgba(0,0,0,0.34));
}

.about-hero__inner {
    position: relative;
    z-index: 1;
    width: min(86vw, 1440px);
    margin: 0 auto;
}

.about-hero__label {
    font-size: 14px;
    letter-spacing: 0.12em;
    margin-bottom: 24px;
    color: rgba(255,255,255,0.78);
}

.about-hero__title {
    font-size: clamp(40px, 4.8vw, 72px);
    line-height: 1.25;
    letter-spacing: 0.12em;
    font-weight: 400;
}

.about-profile,
.about-timeline,
.about-info,
.about-studio {
    padding: 84px 0;
}

.about-profile__inner,
.about-timeline__inner,
.about-info__inner,
.about-studio__inner,
.about-cta__inner {
    width: min(86vw, 1280px);
    margin: 0 auto;
}

.about-profile__inner {
    display: grid;
    grid-template-columns: 0.9fr 1fr;
    gap: 80px;
    align-items: center;
}

.about-profile h2,
.about-studio h2 {
    font-size: clamp(28px, 3vw, 44px);
    line-height: 1.65;
    letter-spacing: 0.08em;
    font-weight: 400;
    margin-bottom: 32px;
}

.about-profile p:not(.section-label),
.about-philosophy p,
.about-studio p {
    font-size: 16px;
    line-height: 2.1;
    color: #333;
}

.about-profile__image img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
}

.about-timeline {
    background: #f7f4ee;
}

.about-timeline__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 88px;
    align-items: center;
}

.about-timeline dl {
    margin: 32px 0 0;
}

.about-timeline dl div {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 24px;
    padding: 8px 0;
}

.about-timeline dt {
    font-weight: 600;
    letter-spacing: 0.06em;
}

.about-timeline dd {
    margin: 0;
    line-height: 1.8;
}

.about-timeline__quote {
    border-left: 1px solid rgba(0,0,0,0.18);
    padding-left: 64px;
}

.about-timeline__quote p {
    font-size: clamp(24px, 2.4vw, 36px);
    line-height: 2;
    letter-spacing: 0.08em;
}

.about-timeline__quote span {
    display: block;
    margin-top: 32px;
    color: #777;
    font-style: italic;
}

.about-philosophy {
    background: #050505;
    color: #fff;
    padding: 88px 0;
}

.about-philosophy__inner {
    width: min(86vw, 1440px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 0.9fr 1.4fr;
    gap: 64px;
    align-items: center;
}

.about-philosophy .section-label,
.about-philosophy p {
    color: rgba(255,255,255,0.82);
}

.about-philosophy__images {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.about-philosophy__images img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    display: block;
}

.about-info__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 48px;
    border-top: 1px solid rgba(0,0,0,0.16);
    border-bottom: 1px solid rgba(0,0,0,0.16);
    padding: 48px 0;
}

.about-info__card h2 {
    font-size: 20px;
    letter-spacing: 0.12em;
    margin-bottom: 24px;
}

.about-info__card ul {
    margin: 0;
    padding-left: 1.2em;
}

.about-info__card li {
    margin-bottom: 10px;
    line-height: 1.8;
}

.about-studio__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
    margin-top: 36px;
}

.about-studio__card {
    display: block;
    padding: 36px;
    background: #fff;
    color: #111;
    text-decoration: none;
    border: 1px solid rgba(0,0,0,0.12);
    transition: transform 0.35s ease, background-color 0.35s ease, color 0.35s ease;
}

.about-studio__card--dark {
    background: #080808;
    color: #fff;
}

.about-studio__card span {
    display: block;
    font-size: 22px;
    letter-spacing: 0.12em;
    margin-bottom: 16px;
}

.about-studio__card p {
    color: inherit;
    opacity: 0.78;
}

.about-studio__card:hover {
    transform: translateY(-4px);
}

.about-cta {
    padding: 0 0 88px;
}

.about-cta__inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.about-cta a {
    display: block;
    padding: 44px;
    background: #080808;
    color: #fff;
    text-decoration: none;
    transition: background-color 0.35s ease, transform 0.35s ease;
}

.about-cta a + a {
    border-left: 1px solid rgba(255,255,255,0.16);
}

.about-cta a:hover {
    background: #1a1a1a;
    transform: translateY(-2px);
}

.about-cta span {
    display: block;
    font-size: 24px;
    letter-spacing: 0.1em;
    margin-bottom: 12px;
}

.about-cta small {
    color: rgba(255,255,255,0.62);
    letter-spacing: 0.12em;
}

@media (max-width: 900px) {
    .about-hero {
        min-height: 420px;
    }

    .about-profile,
    .about-timeline,
    .about-info,
    .about-studio {
        padding: 64px 0;
    }

    .about-profile__inner,
    .about-timeline__inner,
    .about-philosophy__inner,
    .about-info__inner,
    .about-studio__cards,
    .about-cta__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .about-timeline__quote {
        padding-left: 28px;
    }

    .about-philosophy__images {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .about-philosophy__images img {
        aspect-ratio: 16 / 10;
    }

    .about-info__inner {
        gap: 32px;
    }

    .about-cta a + a {
        border-left: 0;
        border-top: 1px solid rgba(255,255,255,0.16);
    }
}

@media (max-width: 700px) {
    .about-hero__title {
        font-size: 36px;
    }

    .about-profile h2,
    .about-studio h2 {
        font-size: 26px;
    }

    .about-timeline dl div {
        grid-template-columns: 70px 1fr;
        gap: 16px;
    }

    .about-cta a {
        padding: 32px 28px;
    }
}

/* About page typography refinement */
.about-page,
.about-page h1,
.about-page h2,
.about-page h3,
.about-page p,
.about-page li,
.about-page dt,
.about-page dd,
.about-page a {
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", serif !important;
}

.about-page .section-label,
.about-hero__label,
.about-cta small {
    font-family: inherit !important;
    letter-spacing: 0.16em;
}

.about-profile p:not(.section-label),
.about-philosophy p,
.about-studio p,
.about-info__card li,
.about-timeline dd {
    letter-spacing: 0.04em;
}

.about-profile h2,
.about-studio h2,
.about-timeline__quote p,
.about-hero__title {
    font-weight: 400 !important;
}

/* About studio image and text final adjustment */
.about-studio__inner {
    display: grid !important;
    grid-template-columns: 0.9fr 1.1fr !important;
    gap: 56px !important;
    align-items: center !important;
}

.about-studio__text {
    max-width: 720px !important;
}

.about-studio__text h2 {
    line-height: 1.65 !important;
    margin-bottom: 28px !important;
}

.about-studio__text p {
    max-width: 700px !important;
    line-height: 2.15 !important;
}

.about-studio__image img {
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    object-fit: cover !important;
    display: block !important;
}

.sp-only {
    display: none;
}

@media (max-width: 900px) {
    .about-studio__inner {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }

    .about-studio__image img {
        aspect-ratio: 4 / 3 !important;
    }
}

@media (max-width: 700px) {
    .sp-only {
        display: inline;
    }

    .about-studio__text p br {
        display: none;
    }
}

/* About quote refinement */
.about-timeline__quote p {
    font-size: clamp(26px, 2.1vw, 38px) !important;
    line-height: 1.85 !important;
    letter-spacing: 0.08em !important;
}

/* About philosophy typography refinement */
.about-philosophy .section-label {
    font-size: 17px !important;
    letter-spacing: 0.14em !important;
    margin-bottom: 34px !important;
    color: rgba(255,255,255,0.92) !important;
}

.about-philosophy__text p {
    font-size: 17px !important;
    line-height: 2.2 !important;
    letter-spacing: 0.06em !important;
    max-width: 620px !important;
}

/* About info images */
.about-info__card {
    display: grid;
    grid-template-rows: auto auto 1fr;
}

.about-info__image {
    margin: 0 0 28px;
    overflow: hidden;
}

.about-info__image img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    display: block;
    filter: grayscale(8%);
}

.about-info__card h2 {
    margin-bottom: 22px !important;
}

/* About CTA with images */
.about-cta__item {
    position: relative;
    min-height: 220px;
    background-size: cover !important;
    background-position: center !important;
    overflow: hidden;
    isolation: isolate;
}

.about-cta__item::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,0.82), rgba(0,0,0,0.52));
    z-index: -1;
    transition: background-color 0.35s ease, opacity 0.35s ease;
}

.about-cta__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(200,164,93,0);
    z-index: -1;
    transition: background-color 0.35s ease;
}

.about-cta__item:hover::before {
    opacity: 0.82;
}

.about-cta__item:hover::after {
    background: rgba(200,164,93,0.12);
}

.about-cta__item span,
.about-cta__item small {
    position: relative;
    z-index: 1;
}

.about-cta__item span {
    font-size: clamp(24px, 2vw, 34px) !important;
}

.about-cta__item small {
    font-size: 14px !important;
    opacity: 0.78;
}

/* About responsive refinements */
@media (max-width: 900px) {
    .about-timeline__quote p {
        font-size: clamp(24px, 6vw, 34px) !important;
        line-height: 1.8 !important;
    }

    .about-philosophy .section-label {
        font-size: 15px !important;
        margin-bottom: 24px !important;
    }

    .about-philosophy__text p {
        font-size: 15px !important;
        line-height: 2 !important;
    }

    .about-info__image img {
        aspect-ratio: 16 / 9;
    }

    .about-cta__item {
        min-height: 180px;
    }
}

@media (max-width: 700px) {
    .about-timeline__quote p {
        font-size: 24px !important;
        line-height: 1.75 !important;
    }

    .about-cta__item span {
        font-size: 24px !important;
    }

    .about-cta__item small {
        font-size: 12px !important;
    }
}

/* About page visual balance aligned to reference */
@media (min-width: 901px) {
    .about-profile,
    .about-timeline,
    .about-info,
    .about-studio {
        padding-top: 72px !important;
        padding-bottom: 72px !important;
    }

    .about-profile__inner,
    .about-timeline__inner,
    .about-info__inner,
    .about-studio__inner,
    .about-cta__inner {
        width: min(78vw, 1180px) !important;
    }

    .about-profile h2,
    .about-studio h2 {
        font-size: clamp(28px, 2.3vw, 38px) !important;
        line-height: 1.75 !important;
        letter-spacing: 0.08em !important;
    }

    .about-profile p:not(.section-label),
    .about-studio p,
    .about-timeline dd,
    .about-info__card li {
        font-size: 14px !important;
        line-height: 2 !important;
        letter-spacing: 0.04em !important;
    }

    .about-profile__inner {
        grid-template-columns: 0.9fr 1.05fr !important;
        gap: 64px !important;
    }

    .about-profile__image img {
        aspect-ratio: 16 / 9 !important;
    }
}

/* About timeline compact reference style */
@media (min-width: 901px) {
    .about-timeline__inner {
        grid-template-columns: 1fr 1fr !important;
        gap: 72px !important;
    }

    .about-timeline dl div {
        grid-template-columns: 86px 1fr !important;
        gap: 24px !important;
        padding: 6px 0 !important;
    }

    .about-timeline dt {
        font-size: 14px !important;
        letter-spacing: 0.05em !important;
    }

    .about-timeline__quote {
        padding-left: 56px !important;
    }

    .about-timeline__quote p {
        font-size: clamp(26px, 2vw, 34px) !important;
        line-height: 1.95 !important;
        letter-spacing: 0.08em !important;
    }

    .about-timeline__quote span {
        margin-top: 28px !important;
        font-size: 14px !important;
    }
}

/* About philosophy reference balance */
.about-philosophy {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
}

.about-philosophy__inner {
    width: min(86vw, 1280px) !important;
    grid-template-columns: 0.72fr 1.28fr !important;
    gap: 54px !important;
}

.about-philosophy .section-label {
    font-size: 16px !important;
    margin-bottom: 26px !important;
    letter-spacing: 0.12em !important;
}

.about-philosophy__text p {
    font-size: 14px !important;
    line-height: 2.05 !important;
    letter-spacing: 0.05em !important;
    max-width: 480px !important;
}

.about-philosophy__images {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0 !important;
}

.about-philosophy__images img {
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
}

/* About info cards: text + small image like reference */
@media (min-width: 901px) {
    .about-info__inner {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 52px !important;
        padding-top: 44px !important;
        padding-bottom: 44px !important;
    }

    .about-info__card {
        display: grid !important;
        grid-template-columns: 1fr 120px !important;
        grid-template-rows: auto 1fr !important;
        column-gap: 24px !important;
        align-items: start !important;
    }

    .about-info__card h2 {
        grid-column: 1 / 3 !important;
        font-size: 18px !important;
        margin-bottom: 22px !important;
        letter-spacing: 0.12em !important;
    }

    .about-info__card ul {
        grid-column: 1 / 2 !important;
        grid-row: 2 / 3 !important;
        padding-left: 1.1em !important;
    }

    .about-info__image {
        grid-column: 2 / 3 !important;
        grid-row: 2 / 3 !important;
        margin: 0 !important;
    }

    .about-info__image img {
        width: 120px !important;
        height: 120px !important;
        aspect-ratio: auto !important;
        object-fit: cover !important;
    }
}

/* About studio single image section, compact */
@media (min-width: 901px) {
    .about-studio__inner {
        grid-template-columns: 0.85fr 1.15fr !important;
        gap: 44px !important;
        align-items: center !important;
    }

    .about-studio__text h2 {
        font-size: clamp(26px, 2.1vw, 34px) !important;
        line-height: 1.7 !important;
    }

    .about-studio__image img {
        aspect-ratio: 16 / 7.5 !important;
        object-fit: cover !important;
    }
}

/* About bottom CTA: thumbnail + text like reference */
@media (min-width: 901px) {
    .about-cta {
        padding-bottom: 84px !important;
    }

    .about-cta__inner {
        width: min(78vw, 1180px) !important;
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .about-cta__item {
        min-height: 150px !important;
        display: grid !important;
        grid-template-columns: 132px 1fr !important;
        column-gap: 28px !important;
        align-items: center !important;
        padding: 28px 34px !important;
        background-image: none !important;
        background-color: #050505 !important;
    }

    .about-cta__item::before,
    .about-cta__item::after {
        display: none !important;
    }

    .about-cta__item::before {
        content: none !important;
    }

    .about-cta__item span {
        font-size: 22px !important;
        line-height: 1.5 !important;
        margin-bottom: 8px !important;
    }

    .about-cta__item small {
        font-size: 11px !important;
        letter-spacing: 0.14em !important;
    }

    .about-cta__item:hover {
        background: #111 !important;
        transform: translateY(-2px);
    }
}

@media (max-width: 900px) {
    .about-philosophy__inner {
        grid-template-columns: 1fr !important;
    }

    .about-philosophy__images {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .about-info__card {
        display: grid !important;
        grid-template-columns: 1fr 110px !important;
        grid-template-rows: auto 1fr !important;
        column-gap: 20px !important;
    }

    .about-info__card h2 {
        grid-column: 1 / 3 !important;
    }

    .about-info__image {
        grid-column: 2 / 3 !important;
        grid-row: 2 / 3 !important;
        margin: 0 !important;
    }

    .about-info__image img {
        width: 110px !important;
        height: 110px !important;
        object-fit: cover !important;
    }

    .about-cta__item {
        background-size: cover !important;
        background-position: center !important;
    }
}

@media (max-width: 700px) {
    .about-info__card {
        grid-template-columns: 1fr !important;
    }

    .about-info__card h2,
    .about-info__image {
        grid-column: 1 / 2 !important;
    }

    .about-info__image {
        grid-row: auto !important;
        margin: 0 0 20px !important;
    }

    .about-info__image img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 9 !important;
    }
}

/* About CTA thumbnail layout */
.about-cta__thumb {
    margin: 0 !important;
    width: 132px !important;
    height: 86px !important;
    overflow: hidden !important;
}

.about-cta__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    opacity: 0.86;
    transition: transform 0.35s ease, opacity 0.35s ease;
}

.about-cta__item:hover .about-cta__thumb img {
    transform: scale(1.05);
    opacity: 1;
}

.about-cta__item span {
    display: block !important;
}

.about-cta__item strong {
    display: block !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    letter-spacing: 0.1em !important;
    margin-bottom: 12px !important;
}

.about-cta__item small {
    display: block !important;
}

@media (max-width: 700px) {
    .about-cta__item {
        display: grid !important;
        grid-template-columns: 96px 1fr !important;
        column-gap: 20px !important;
        align-items: center !important;
        min-height: 124px !important;
        padding: 24px !important;
        background-image: none !important;
        background-color: #050505 !important;
    }

    .about-cta__thumb {
        width: 96px !important;
        height: 68px !important;
    }

    .about-cta__item strong {
        font-size: 19px !important;
    }
}

/* About page image adjustments based on supplied square assets */

/* Hero: square image, right aligned */
.about-hero {
    background-position: right center !important;
    background-size: cover !important;
}

.about-hero__overlay {
    background:
        linear-gradient(90deg, rgba(0,0,0,0.82), rgba(0,0,0,0.42) 48%, rgba(0,0,0,0.22)) !important;
}

/* Profile: use square image as square */
.about-profile__image {
    display: flex;
    justify-content: flex-end;
}

.about-profile__image img {
    aspect-ratio: 1 / 1 !important;
    width: min(100%, 460px) !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* Drone image in info card */
.about-info__card:first-child .about-info__image img {
    object-position: center !important;
}

/* SP hero: keep the subject visible on the right */
@media (max-width: 700px) {
    .about-hero {
        background-position: 72% center !important;
    }

    .about-hero__overlay {
        background:
            linear-gradient(90deg, rgba(0,0,0,0.86), rgba(0,0,0,0.58) 56%, rgba(0,0,0,0.28)) !important;
    }

    .about-profile__image {
        justify-content: flex-start;
    }

    .about-profile__image img {
        width: 100% !important;
        max-width: none !important;
    }
}

/* About hero square image full-view adjustment */
.about-hero {
    background-color: #050505 !important;
    background-size: auto 100% !important;
    background-repeat: no-repeat !important;
    background-position: right center !important;
}

.about-hero__overlay {
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,0.92) 0%,
            rgba(0,0,0,0.76) 38%,
            rgba(0,0,0,0.38) 68%,
            rgba(0,0,0,0.18) 100%
        ) !important;
}

/* About info compact adjustment */
.about-info__inner {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
}

.about-info__card h2 {
    font-size: 17px !important;
    line-height: 1.5 !important;
    margin-bottom: 16px !important;
}

.about-info__card ul {
    margin-top: 0 !important;
}

.about-info__card li {
    font-size: 13px !important;
    line-height: 1.55 !important;
    margin-bottom: 8px !important;
    letter-spacing: 0.03em !important;
}

.about-info__image img {
    object-fit: contain !important;
    background: #0a0a0a !important;
}

/* PC info card tighter layout */
@media (min-width: 901px) {
    .about-info__inner {
        gap: 40px !important;
    }

    .about-info__card {
        grid-template-columns: 1fr 112px !important;
        column-gap: 20px !important;
    }

    .about-info__image img {
        width: 112px !important;
        height: 112px !important;
    }
}

/* SP hero and info adjustment */
@media (max-width: 700px) {
    .about-hero {
        background-size: auto 100% !important;
        background-position: 76% center !important;
    }

    .about-info__inner {
        padding-top: 32px !important;
        padding-bottom: 32px !important;
    }

    .about-info__card li {
        font-size: 14px !important;
        line-height: 1.7 !important;
        margin-bottom: 7px !important;
    }
}

/* About hero position fine tuning */
@media (min-width: 901px) {
    .about-hero {
        background-position: 88% center !important;
    }
}

@media (max-width: 900px) {
    .about-hero {
        background-position: 72% center !important;
    }
}

/* About hero edge blend adjustment */
.about-hero {
    position: relative;
    overflow: hidden;
}

/* Blend square image edge into black background */
.about-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,0) 0%,
            rgba(0,0,0,0) 54%,
            rgba(0,0,0,0.18) 66%,
            rgba(0,0,0,0.55) 82%,
            rgba(0,0,0,0.92) 100%
        );
}

.about-hero__overlay {
    z-index: 0;
}

.about-hero__inner {
    z-index: 2 !important;
}

/* PC: keep subject slightly left while blending edge */
@media (min-width: 901px) {
    .about-hero {
        background-position: 84% center !important;
    }
}

/* SP: avoid over-darkening the face area */
@media (max-width: 700px) {
    .about-hero::after {
        background:
            linear-gradient(
                90deg,
                rgba(0,0,0,0) 0%,
                rgba(0,0,0,0) 46%,
                rgba(0,0,0,0.22) 68%,
                rgba(0,0,0,0.72) 100%
            );
    }
}

/* About studio logo overlay */
.about-studio__image {
    position: relative !important;
    overflow: hidden !important;
}

.about-studio__image .about-studio__logo {
    position: absolute !important;
    right: 28px !important;
    bottom: 24px !important;
    width: clamp(110px, 11vw, 170px) !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    z-index: 2 !important;
    opacity: 0.92 !important;
    filter: drop-shadow(0 8px 18px rgba(0,0,0,0.35));
}

@media (max-width: 700px) {
    .about-studio__image .about-studio__logo {
        right: 18px !important;
        bottom: 16px !important;
        width: 112px !important;
    }
}

/* About STUDIO logo placement aligned with front page */
.about-studio__image .about-studio__logo {
    width: clamp(170px, 13vw, 230px) !important;
    right: 18px !important;
    bottom: -10px !important;
    opacity: 0.9 !important;
    filter: drop-shadow(0 10px 22px rgba(0,0,0,0.42)) !important;
}

/* Keep the logo tucked into the lower-right like front page */
.about-studio__image {
    overflow: hidden !important;
}

@media (max-width: 900px) {
    .about-studio__image .about-studio__logo {
        width: clamp(130px, 28vw, 170px) !important;
        right: 14px !important;
        bottom: -6px !important;
    }
}

@media (max-width: 700px) {
    .about-studio__image .about-studio__logo {
        width: 128px !important;
        right: 12px !important;
        bottom: -4px !important;
    }
}

/* About STUDIO logo size and clipping fix */
.about-studio__image .about-studio__logo {
    width: clamp(120px, 9vw, 160px) !important;
    right: 22px !important;
    bottom: 18px !important;
    opacity: 0.86 !important;
    filter: drop-shadow(0 8px 18px rgba(0,0,0,0.38)) !important;
}

/* Keep logo fully inside the image */
.about-studio__image {
    overflow: hidden !important;
}

@media (max-width: 900px) {
    .about-studio__image .about-studio__logo {
        width: clamp(100px, 22vw, 132px) !important;
        right: 16px !important;
        bottom: 14px !important;
    }
}

@media (max-width: 700px) {
    .about-studio__image .about-studio__logo {
        width: 108px !important;
        right: 12px !important;
        bottom: 12px !important;
    }
}

/* About STUDIO logo placement matched to front page */
.about-studio__image {
    position: relative !important;
    overflow: hidden !important;
}

.about-studio__image .about-studio__logo {
    width: clamp(170px, 13vw, 230px) !important;
    right: -18px !important;
    bottom: -22px !important;
    opacity: 0.9 !important;
    filter: drop-shadow(0 10px 22px rgba(0,0,0,0.42)) !important;
}

/* Tablet */
@media (max-width: 900px) {
    .about-studio__image .about-studio__logo {
        width: clamp(135px, 28vw, 175px) !important;
        right: -12px !important;
        bottom: -16px !important;
    }
}

/* SP */
@media (max-width: 700px) {
    .about-studio__image .about-studio__logo {
        width: 132px !important;
        right: -8px !important;
        bottom: -12px !important;
    }
}

/* About STUDIO logo overflow fix */
.about-studio__image {
    overflow: visible !important;
}

.about-studio__image > img:not(.about-studio__logo) {
    display: block !important;
}

.about-studio__image .about-studio__logo {
    width: clamp(170px, 13vw, 230px) !important;
    right: -24px !important;
    bottom: -24px !important;
    opacity: 0.9 !important;
    z-index: 3 !important;
    pointer-events: none !important;
}

/* Prevent logo from being clipped by parent grid */
.about-studio,
.about-studio__inner {
    overflow: visible !important;
}

@media (max-width: 900px) {
    .about-studio__image .about-studio__logo {
        width: clamp(135px, 28vw, 175px) !important;
        right: -14px !important;
        bottom: -18px !important;
    }
}

@media (max-width: 700px) {
    .about-studio__image .about-studio__logo {
        width: 132px !important;
        right: -10px !important;
        bottom: -14px !important;
    }
}

/* About STUDIO logo smaller balance */
.about-studio__image .about-studio__logo {
    width: clamp(110px, 7vw, 140px) !important;
    right: -10px !important;
    bottom: -12px !important;
    opacity: 0.82 !important;
    filter: drop-shadow(0 8px 16px rgba(0,0,0,0.34)) !important;
}

@media (max-width: 900px) {
    .about-studio__image .about-studio__logo {
        width: clamp(96px, 20vw, 120px) !important;
        right: -8px !important;
        bottom: -10px !important;
    }
}

@media (max-width: 700px) {
    .about-studio__image .about-studio__logo {
        width: 96px !important;
        right: -6px !important;
        bottom: -8px !important;
    }
}

/* SP about image size refinement */
@media (max-width: 700px) {
    /* 表現の哲学：画像を大きく出しすぎない */
    .about-philosophy__images {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        margin-top: 28px !important;
    }

    .about-philosophy__images img {
        width: 100% !important;
        aspect-ratio: 16 / 8.5 !important;
        max-height: 220px !important;
        object-fit: cover !important;
    }

    /* 得意分野・所属・資格・受賞歴：画像をサムネイル寄りに */
    .about-info__image {
        width: min(68vw, 280px) !important;
        margin: 0 0 22px !important;
    }

    .about-info__image img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 4 / 3 !important;
        object-fit: cover !important;
    }

    .about-info__card {
        margin-bottom: 46px !important;
    }

    .about-info__card h2 {
        margin-bottom: 18px !important;
    }

    .about-info__card li {
        line-height: 1.65 !important;
        margin-bottom: 8px !important;
    }
}

/* SP about info card compact horizontal layout */
@media (max-width: 700px) {
    .about-info {
        padding-top: 52px !important;
        padding-bottom: 52px !important;
    }

    .about-info__inner {
        gap: 0 !important;
        padding-top: 28px !important;
        padding-bottom: 28px !important;
    }

    .about-info__card {
        display: grid !important;
        grid-template-columns: 108px 1fr !important;
        grid-template-areas:
            "image title"
            "image list" !important;
        column-gap: 20px !important;
        row-gap: 8px !important;
        align-items: start !important;
        margin-bottom: 36px !important;
    }

    .about-info__card:last-child {
        margin-bottom: 0 !important;
    }

    .about-info__image {
        grid-area: image !important;
        width: 108px !important;
        margin: 0 !important;
    }

    .about-info__image img {
        width: 108px !important;
        height: 108px !important;
        aspect-ratio: 1 / 1 !important;
        object-fit: cover !important;
        display: block !important;
    }

    .about-info__card h2 {
        grid-area: title !important;
        font-size: 20px !important;
        line-height: 1.4 !important;
        margin: 0 0 8px !important;
        letter-spacing: 0.08em !important;
    }

    .about-info__card ul {
        grid-area: list !important;
        margin: 0 !important;
        padding-left: 1.1em !important;
    }

    .about-info__card li {
        font-size: 14px !important;
        line-height: 1.55 !important;
        margin-bottom: 6px !important;
        letter-spacing: 0.02em !important;
    }
}

/* Very small phones */
@media (max-width: 430px) {
    .about-info__card {
        grid-template-columns: 92px 1fr !important;
        column-gap: 16px !important;
    }

    .about-info__image,
    .about-info__image img {
        width: 92px !important;
        height: 92px !important;
    }

    .about-info__card h2 {
        font-size: 18px !important;
    }

    .about-info__card li {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }
}

/* ===== Works lightbox direct navigation start ===== */
.works-lightbox__nav {
  position: fixed;
  top: 50%;
  z-index: 100002;
  width: 72px;
  height: 160px;
  padding: 0;
  border: 0;
  color: rgba(255, 255, 255, 0.48);
  background: transparent;
  font-family: "Times New Roman", Georgia, serif;
  font-size: 72px;
  font-weight: 100;
  line-height: 1;
  cursor: pointer;
  opacity: 0.72;
  transform: translateY(-50%);
  transition:
    opacity 0.22s ease,
    color 0.22s ease,
    transform 0.22s ease;
  appearance: none;
}

.works-lightbox__nav::before {
  content: "";
  position: absolute;
  top: 50%;
  width: 1px;
  height: 72px;
  background: rgba(255, 255, 255, 0.18);
  transform: translateY(-50%);
}

.works-lightbox__nav:hover {
  color: rgba(255, 255, 255, 0.9);
  opacity: 1;
}

.works-lightbox__nav--prev {
  left: 26px;
  text-align: left;
}

.works-lightbox__nav--prev::before {
  left: 0;
}

.works-lightbox__nav--next {
  right: 26px;
  text-align: right;
}

.works-lightbox__nav--next::before {
  right: 0;
}

.works-lightbox__nav--prev:hover {
  transform: translateY(-50%) translateX(-4px);
}

.works-lightbox__nav--next:hover {
  transform: translateY(-50%) translateX(4px);
}

.works-lightbox__counter {
  position: fixed;
  left: 50%;
  bottom: 24px;
  z-index: 100002;
  color: rgba(255, 255, 255, 0.5);
  background: transparent;
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.18em;
  transform: translateX(-50%);
}

.works-lightbox__close {
  opacity: 0.58;
  transition:
    opacity 0.22s ease,
    transform 0.22s ease;
}

.works-lightbox__close:hover {
  opacity: 1;
  transform: rotate(90deg);
}

@media (max-width: 768px) {
  .works-lightbox__nav {
    width: 48px;
    height: 120px;
    font-size: 54px;
  }

  .works-lightbox__nav::before {
    height: 54px;
  }

  .works-lightbox__nav--prev {
    left: 10px;
  }

  .works-lightbox__nav--next {
    right: 10px;
  }

  .works-lightbox__counter {
    bottom: 12px;
    font-size: 10px;
  }
}
/* ===== Works lightbox direct navigation end ===== */

/* ===== Works archive about-aligned layout start ===== */
.works-hero {
  min-height: clamp(420px, 45vw, 520px) !important;
  padding: clamp(118px, 11vw, 150px) 5vw clamp(76px, 8vw, 104px) !important;
  align-items: center !important;
}

.works-hero__content {
  max-width: 720px !important;
}

.works-hero__label {
  margin-bottom: 22px !important;
  font-size: 12px !important;
  letter-spacing: 0.28em !important;
}

.works-hero__title {
  font-size: clamp(44px, 5.2vw, 68px) !important;
  line-height: 1.22 !important;
  letter-spacing: 0.1em !important;
}

.works-hero__text {
  max-width: 620px !important;
  margin-top: 26px !important;
  font-size: 14px !important;
  line-height: 2 !important;
  letter-spacing: 0.08em !important;
}

.works-intro {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 460px) !important;
  gap: clamp(48px, 7vw, 92px) !important;
  padding: clamp(84px, 8vw, 118px) 5vw !important;
}

.works-intro__content {
  max-width: 760px !important;
}

.works-intro__content h2 {
  margin-bottom: 30px !important;
  font-size: clamp(34px, 4.2vw, 52px) !important;
  line-height: 1.45 !important;
  letter-spacing: 0.08em !important;
}

.works-intro__content p {
  max-width: 680px !important;
  line-height: 2.15 !important;
  letter-spacing: 0.05em !important;
}

.works-intro__image {
  width: min(100%, 420px) !important;
  aspect-ratio: 1 / 1 !important;
  justify-self: end !important;
  background-position: center !important;
}

.works-card__purpose {
  margin: 8px 0 0 !important;
  color: rgba(247, 244, 238, 0.52) !important;
  font-size: 12px !important;
  line-height: 1.65 !important;
  letter-spacing: 0.04em !important;
}

@media (max-width: 900px) {
  .works-hero {
    min-height: 360px !important;
    padding: 104px 6vw 72px !important;
  }

  .works-hero__title {
    font-size: clamp(38px, 9vw, 52px) !important;
  }

  .works-hero__text {
    margin-top: 22px !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
  }

  .works-intro {
    grid-template-columns: 1fr !important;
    gap: 42px !important;
    padding: 72px 6vw !important;
  }

  .works-intro__image {
    width: min(100%, 420px) !important;
    justify-self: start !important;
  }
}

@media (max-width: 700px) {
  .works-hero {
    min-height: 320px !important;
    padding: 92px 7vw 56px !important;
  }

  .works-hero__label {
    margin-bottom: 18px !important;
    font-size: 11px !important;
  }

  .works-hero__title {
    font-size: clamp(34px, 11vw, 46px) !important;
    line-height: 1.28 !important;
  }

  .works-hero__text {
    margin-top: 20px !important;
  }

  .works-intro {
    padding: 64px 7vw !important;
  }

  .works-intro__content h2 {
    font-size: clamp(29px, 8.5vw, 38px) !important;
  }

  .works-intro__content p {
    line-height: 2 !important;
  }

  .works-card__purpose {
    font-size: 11px !important;
    line-height: 1.6 !important;
  }
}
/* ===== Works archive about-aligned layout end ===== */


/* ===== Works hero category image start ===== */
.works-hero {
  background:
    linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.72), rgba(5, 5, 5, 0.28)),
    var(--works-hero-image, url("../img/front/fv-01.jpg")) !important;
  background-size: cover !important;
  background-position: center !important;
}

.term-landscape .works-hero {
  background-position: center 48% !important;
}

.term-still-life .works-hero {
  background-position: center center !important;
}

.term-portrait .works-hero {
  background-position: center 36% !important;
}

.term-food .works-hero {
  background-position: center center !important;
}

.term-architecture .works-hero {
  background-position: center 54% !important;
}

.term-culture .works-hero {
  background-position: center center !important;
}

.term-local-industry .works-hero {
  background-position: center 44% !important;
}

@media (max-width: 700px) {
  .works-hero {
    background:
      linear-gradient(90deg, rgba(5, 5, 5, 0.94), rgba(5, 5, 5, 0.76), rgba(5, 5, 5, 0.36)),
      var(--works-hero-image, url("../img/front/fv-01.jpg")) !important;
    background-size: cover !important;
  }

  .term-portrait .works-hero {
    background-position: center 34% !important;
  }

  .term-architecture .works-hero {
    background-position: center center !important;
  }
}
/* ===== Works hero category image end ===== */

/* ===== Works pagination refinement start ===== */
.works-pagination {
  margin-top: clamp(42px, 5vw, 68px);
}

.works-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.works-pagination .page-numbers {
  min-width: 42px;
  height: 42px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(247, 244, 238, 0.22);
  color: rgba(247, 244, 238, 0.72);
  background: rgba(255, 255, 255, 0.02);
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition:
    color 0.2s ease,
    border-color 0.2s ease,
    background-color 0.2s ease,
    transform 0.2s ease;
}

.works-pagination a.page-numbers:hover {
  color: #f7f4ee;
  border-color: rgba(247, 244, 238, 0.58);
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-1px);
}

.works-pagination .page-numbers.current {
  color: #080808;
  border-color: #f7f4ee;
  background: #f7f4ee;
}

.works-pagination .page-numbers.dots {
  min-width: auto;
  padding: 0 4px;
  border-color: transparent;
  background: transparent;
  color: rgba(247, 244, 238, 0.45);
}

.works-pagination .prev,
.works-pagination .next {
  min-width: 92px;
}

@media (max-width: 700px) {
  .works-pagination {
    margin-top: 36px;
  }

  .works-pagination .nav-links {
    gap: 8px;
  }

  .works-pagination .page-numbers {
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    font-size: 12px;
  }

  .works-pagination .prev,
  .works-pagination .next {
    min-width: auto;
  }
}
/* ===== Works pagination refinement end ===== */

/* ===== Works single section heading alignment start ===== */
.works-single-gallery .works-single-section-heading,
.works-single-story .works-single-section-heading,
.works-single-production .works-single-section-heading {
  display: block !important;
}

.works-single-gallery .works-single-section-heading .section-label,
.works-single-story .works-single-section-heading .section-label,
.works-single-production .works-single-section-heading .section-label {
  margin: 0 0 28px !important;
  text-align: left !important;
}

.works-single-gallery .works-single-section-heading h2,
.works-single-story .works-single-section-heading h2,
.works-single-production .works-single-section-heading h2 {
  margin: 0 !important;
  text-align: left !important;
}

@media (max-width: 700px) {
  .works-single-gallery .works-single-section-heading .section-label,
  .works-single-story .works-single-section-heading .section-label,
  .works-single-production .works-single-section-heading .section-label {
    margin-bottom: 18px !important;
  }
}
/* ===== Works single section heading alignment end ===== */

/* ===== News journal refinement start ===== */
.news-page,
.news-single-page {
  background: #f7f4ee;
  color: #202020;
}

.news-hero,
.news-single-hero {
  padding: clamp(118px, 11vw, 150px) 5vw clamp(76px, 8vw, 104px) !important;
  background:
    linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.76), rgba(5, 5, 5, 0.42)),
    url("../img/front/fv-01.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
  color: #f7f4ee !important;
  border-bottom: 0 !important;
}

.news-hero__inner,
.news-single-hero {
  max-width: 860px;
}

.news-hero__label,
.news-single-hero__label {
  margin: 0 0 22px !important;
  color: rgba(247, 244, 238, 0.66) !important;
  font-size: 12px !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase;
}

.news-hero__title,
.news-single-hero__title {
  margin: 0 !important;
  font-family: var(--font-serif);
  font-size: clamp(42px, 5.4vw, 72px) !important;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.1em !important;
}

.news-hero__text {
  max-width: 680px !important;
  margin: 28px 0 0 !important;
  color: rgba(247, 244, 238, 0.76) !important;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.06em;
}

.news-archive {
  padding: clamp(72px, 7vw, 104px) 5vw clamp(84px, 8vw, 120px) !important;
}

.news-archive__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: clamp(36px, 5vw, 64px);
}

.news-archive__head h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(34px, 4.4vw, 56px);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: 0.08em;
}

.news-archive-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 48px 32px !important;
}

.news-card__link {
  color: inherit !important;
  text-decoration: none !important;
}

.news-archive .news-card__link {
  display: block !important;
}

.news-card__image {
  position: relative;
  margin: 0 !important;
  overflow: hidden;
  background: #111;
}

.news-archive .news-card__image {
  aspect-ratio: 4 / 3 !important;
  margin-bottom: 20px !important;
}

.news-card__image img,
.news-card__image-placeholder {
  width: 100%;
  height: 100%;
  display: block;
}

.news-card__image img {
  object-fit: cover;
  transition: transform 0.55s ease, filter 0.55s ease;
}

.news-card__image-placeholder {
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0)),
    #111;
  color: rgba(247, 244, 238, 0.42);
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.news-card:hover .news-card__image img {
  transform: scale(1.055);
  filter: brightness(0.86);
}

.news-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 12px;
}

.news-card__date {
  display: inline-block !important;
  margin: 0 !important;
  color: var(--color-muted) !important;
  font-size: 12px !important;
  line-height: 1;
  letter-spacing: 0.12em;
}

.news-card__category {
  display: inline-flex !important;
  align-items: center;
  min-height: 22px;
  margin: 0 !important;
  padding: 3px 8px !important;
  border: 1px solid rgba(32, 32, 32, 0.18) !important;
  color: var(--color-muted) !important;
  font-size: 11px !important;
  line-height: 1;
  letter-spacing: 0.08em;
}

.news-card__title {
  margin: 0 !important;
  font-family: var(--font-serif);
  font-size: clamp(21px, 2vw, 26px) !important;
  font-weight: 400;
  line-height: 1.55 !important;
  letter-spacing: 0.05em;
}

.news-card__excerpt {
  margin: 12px 0 0 !important;
  color: var(--color-muted) !important;
  font-size: 13px !important;
  line-height: 1.9 !important;
  letter-spacing: 0.04em;
}

.front-news {
  padding: clamp(72px, 7vw, 104px) 5vw !important;
  background: #f7f4ee !important;
  color: #202020 !important;
}

.front-news-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 32px !important;
}

.front-news .news-card__link {
  display: grid !important;
  grid-template-columns: 116px minmax(0, 1fr) !important;
  gap: 20px !important;
}

.front-news .news-card__image {
  aspect-ratio: 1 / 1 !important;
}

.front-news .news-card__title {
  font-size: 19px !important;
}

.front-news .news-card__excerpt {
  display: none;
}

.news-pagination {
  margin-top: clamp(42px, 5vw, 68px);
}

.news-pagination .page-numbers {
  min-width: 42px;
  height: 42px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(32, 32, 32, 0.18);
  color: rgba(32, 32, 32, 0.7);
  background: transparent;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-decoration: none;
}

.news-pagination .page-numbers.current {
  color: #f7f4ee;
  border-color: #202020;
  background: #202020;
}

.news-pagination a.page-numbers:hover {
  border-color: #202020;
}

.news-empty-message {
  color: var(--color-muted);
}

.news-contact-cta {
  margin-top: clamp(64px, 7vw, 96px);
  padding: clamp(32px, 4vw, 48px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  border: 1px solid rgba(32, 32, 32, 0.16);
  background: rgba(255, 255, 255, 0.34);
}

.news-contact-cta h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(25px, 3vw, 36px);
  font-weight: 400;
  letter-spacing: 0.06em;
}

.news-contact-cta p {
  margin: 14px 0 0;
  color: var(--color-muted);
  line-height: 1.9;
}

.news-single-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 34px;
  color: rgba(247, 244, 238, 0.58);
  font-size: 12px;
  letter-spacing: 0.08em;
}

.news-single-breadcrumb a {
  color: inherit;
}

.news-single-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 28px;
  color: rgba(247, 244, 238, 0.66);
  font-size: 12px;
  letter-spacing: 0.12em;
}

.news-single-main-image {
  margin: 0;
  background: #080808;
}

.news-single-main-image img {
  width: 100%;
  max-height: 72vh;
  display: block;
  object-fit: cover;
}

.news-single-content {
  max-width: 880px;
  margin: 0 auto;
  padding: clamp(72px, 8vw, 112px) 5vw;
  font-size: 16px;
  line-height: 2.25;
  letter-spacing: 0.04em;
}

.news-single-content h2,
.news-single-content h3 {
  margin: 2.2em 0 1em;
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1.5;
}

.news-single-content p {
  margin: 0 0 1.7em;
}

.news-single-content img {
  max-width: 100%;
  height: auto;
}

.news-single-nav {
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 5vw clamp(56px, 6vw, 84px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.news-single-nav a {
  display: block;
  padding: 20px 0;
  border-top: 1px solid rgba(32, 32, 32, 0.16);
  color: inherit;
  text-decoration: none;
  line-height: 1.7;
}

.news-single-nav__next {
  text-align: right;
}

.news-contact-cta--single {
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: clamp(72px, 7vw, 104px);
}

@media (max-width: 1100px) {
  .news-archive-grid,
  .front-news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .news-hero,
  .news-single-hero {
    padding: 92px 7vw 58px !important;
  }

  .news-hero__title,
  .news-single-hero__title {
    font-size: clamp(34px, 10vw, 46px) !important;
  }

  .news-archive {
    padding: 64px 7vw 80px !important;
  }

  .news-archive__head {
    display: block;
  }

  .news-archive__head h2 {
    font-size: clamp(29px, 8.5vw, 38px);
  }

  .news-archive-grid,
  .front-news-grid {
    grid-template-columns: 1fr !important;
  }

  .front-news {
    padding: 64px 7vw !important;
  }

  .front-news .news-card__link {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 16px !important;
  }

  .news-contact-cta {
    display: block;
  }

  .news-contact-cta .button-outline {
    margin-top: 24px;
  }

  .news-single-content {
    padding: 64px 7vw;
    font-size: 15px;
    line-height: 2.05;
  }

  .news-single-nav {
    grid-template-columns: 1fr;
    padding-left: 7vw;
    padding-right: 7vw;
  }

  .news-single-nav__next {
    text-align: left;
  }
}
/* ===== News journal refinement end ===== */

/* ===== News hero sizing correction start ===== */
.news-hero {
  min-height: clamp(340px, 32vw, 430px) !important;
  padding: clamp(96px, 9vw, 124px) 5vw clamp(58px, 6vw, 76px) !important;
}

.news-hero__title {
  font-size: clamp(40px, 4.8vw, 64px) !important;
  line-height: 1.24 !important;
  letter-spacing: 0.09em !important;
}

.news-hero__text {
  max-width: 640px !important;
  margin-top: 24px !important;
  font-size: 14px !important;
  line-height: 2 !important;
}

.news-single-hero {
  width: 100% !important;
  max-width: none !important;
  min-height: clamp(360px, 34vw, 460px) !important;
  padding: clamp(100px, 9vw, 126px) 5vw clamp(62px, 6vw, 82px) !important;
}

.news-single-hero > * {
  max-width: 860px;
}

.news-single-breadcrumb {
  margin-bottom: 28px !important;
}

.news-single-hero__title {
  font-size: clamp(40px, 4.8vw, 64px) !important;
  line-height: 1.28 !important;
  letter-spacing: 0.09em !important;
}

.news-single-hero__meta {
  margin-top: 24px !important;
}

@media (max-width: 700px) {
  .news-hero,
  .news-single-hero {
    min-height: 300px !important;
    padding: 88px 7vw 54px !important;
  }

  .news-hero__title,
  .news-single-hero__title {
    font-size: clamp(32px, 9vw, 42px) !important;
    line-height: 1.32 !important;
  }

  .news-hero__text {
    margin-top: 20px !important;
    font-size: 13px !important;
  }

  .news-single-breadcrumb {
    margin-bottom: 24px !important;
  }
}
/* ===== News hero sizing correction end ===== */

/* ===== News archive heading alignment start ===== */
.news-archive__head {
  display: block !important;
  margin-bottom: clamp(36px, 5vw, 64px) !important;
}

.news-archive__head .section-label {
  margin: 0 0 24px !important;
  text-align: left !important;
}

.news-archive__head h2 {
  margin: 0 !important;
  text-align: left !important;
}

@media (max-width: 700px) {
  .news-archive__head .section-label {
    margin-bottom: 18px !important;
  }
}
/* ===== News archive heading alignment end ===== */

/* ===== News hero image refinement start ===== */
.news-hero,
.news-single-hero {
  background:
    linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.74), rgba(5, 5, 5, 0.34)),
    url("../img/news/news-hero.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
}

@media (max-width: 700px) {
  .news-hero,
  .news-single-hero {
    background:
      linear-gradient(90deg, rgba(5, 5, 5, 0.96), rgba(5, 5, 5, 0.78), rgba(5, 5, 5, 0.44)),
      url("../img/news/news-hero.jpg") !important;
    background-size: cover !important;
    background-position: 58% center !important;
  }
}
/* ===== News hero image refinement end ===== */

/* ===== News hero readability and height adjustment start ===== */
.news-hero,
.news-single-hero {
  min-height: clamp(520px, 42vw, 640px) !important;
  padding: clamp(132px, 12vw, 168px) 5vw clamp(92px, 8vw, 118px) !important;
  background:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.98) 0%,
      rgba(0, 0, 0, 0.94) 34%,
      rgba(0, 0, 0, 0.78) 56%,
      rgba(0, 0, 0, 0.46) 100%
    ),
    url("../img/news/news-hero.jpg") !important;
  background-size: cover !important;
  background-position: 62% center !important;
}

.news-hero__inner,
.news-single-hero > * {
  max-width: 820px !important;
}

.news-hero__title,
.news-single-hero__title {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.42);
}

.news-hero__text,
.news-single-hero__meta,
.news-single-breadcrumb {
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.48);
}

@media (max-width: 900px) {
  .news-hero,
  .news-single-hero {
    min-height: 440px !important;
    padding: 112px 6vw 76px !important;
    background-position: 66% center !important;
  }
}

@media (max-width: 700px) {
  .news-hero,
  .news-single-hero {
    min-height: 390px !important;
    padding: 96px 7vw 64px !important;
    background:
      linear-gradient(
        90deg,
        rgba(0, 0, 0, 0.98) 0%,
        rgba(0, 0, 0, 0.92) 46%,
        rgba(0, 0, 0, 0.72) 100%
      ),
      url("../img/news/news-hero.jpg") !important;
    background-size: cover !important;
    background-position: 68% center !important;
  }
}
/* ===== News hero readability and height adjustment end ===== */

/* ===== News hero height align with other pages start ===== */
.news-hero,
.news-single-hero {
  min-height: clamp(420px, 45vw, 520px) !important;
  padding: clamp(118px, 11vw, 150px) 5vw clamp(76px, 8vw, 104px) !important;
  background:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.98) 0%,
      rgba(0, 0, 0, 0.94) 34%,
      rgba(0, 0, 0, 0.78) 56%,
      rgba(0, 0, 0, 0.46) 100%
    ),
    url("../img/news/news-hero.jpg") !important;
  background-size: cover !important;
  background-position: 62% center !important;
}

.news-hero__title,
.news-single-hero__title {
  font-size: clamp(44px, 5.2vw, 68px) !important;
  line-height: 1.22 !important;
  letter-spacing: 0.1em !important;
}

.news-hero__text {
  max-width: 640px !important;
  margin-top: 26px !important;
  font-size: 14px !important;
  line-height: 2 !important;
}

.news-single-hero {
  width: 100% !important;
  max-width: none !important;
}

.news-single-hero > * {
  max-width: 860px !important;
}

@media (max-width: 900px) {
  .news-hero,
  .news-single-hero {
    min-height: 360px !important;
    padding: 104px 6vw 72px !important;
    background-position: 66% center !important;
  }

  .news-hero__title,
  .news-single-hero__title {
    font-size: clamp(38px, 9vw, 52px) !important;
  }
}

@media (max-width: 700px) {
  .news-hero,
  .news-single-hero {
    min-height: 320px !important;
    padding: 92px 7vw 56px !important;
    background:
      linear-gradient(
        90deg,
        rgba(0, 0, 0, 0.98) 0%,
        rgba(0, 0, 0, 0.92) 46%,
        rgba(0, 0, 0, 0.72) 100%
      ),
      url("../img/news/news-hero.jpg") !important;
    background-size: cover !important;
    background-position: 68% center !important;
  }

  .news-hero__title,
  .news-single-hero__title {
    font-size: clamp(34px, 11vw, 46px) !important;
    line-height: 1.28 !important;
  }

  .news-hero__text {
    margin-top: 20px !important;
    font-size: 13px !important;
  }
}
/* ===== News hero height align with other pages end ===== */

/* ===== News hero brightness fine tuning start ===== */
.news-hero,
.news-single-hero {
  background:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.98) 0%,
      rgba(0, 0, 0, 0.91) 34%,
      rgba(0, 0, 0, 0.68) 58%,
      rgba(0, 0, 0, 0.28) 100%
    ),
    url("../img/news/news-hero.jpg") !important;
  background-size: cover !important;
  background-position: 62% center !important;
}

@media (max-width: 700px) {
  .news-hero,
  .news-single-hero {
    background:
      linear-gradient(
        90deg,
        rgba(0, 0, 0, 0.98) 0%,
        rgba(0, 0, 0, 0.9) 48%,
        rgba(0, 0, 0, 0.62) 100%
      ),
      url("../img/news/news-hero.jpg") !important;
    background-size: cover !important;
    background-position: 68% center !important;
  }
}
/* ===== News hero brightness fine tuning end ===== */

/* ===== News single eyecatch sizing refinement start ===== */
.news-single-main-image {
  width: min(90vw, 1040px) !important;
  margin: clamp(48px, 5vw, 72px) auto 0 !important;
  background: transparent !important;
  overflow: hidden;
}

.news-single-main-image img {
  width: 100% !important;
  height: auto !important;
  max-height: 520px !important;
  display: block;
  object-fit: cover !important;
}

@media (max-width: 700px) {
  .news-single-main-image {
    width: 100% !important;
    margin-top: 0 !important;
  }

  .news-single-main-image img {
    max-height: 300px !important;
  }
}
/* ===== News single eyecatch sizing refinement end ===== */

/* ===== News single eyecatch mobile width refinement start ===== */
@media (max-width: 700px) {
  .news-single-main-image {
    width: calc(100% - 14vw) !important;
    margin: clamp(32px, 8vw, 44px) auto 0 !important;
    overflow: hidden;
  }

  .news-single-main-image img {
    width: 100% !important;
    max-height: 280px !important;
    object-fit: cover !important;
  }
}
/* ===== News single eyecatch mobile width refinement end ===== */

/* ===== News contact CTA button refinement start ===== */
.news-contact-cta .button-outline {
  min-width: 220px;
  min-height: 54px;
  padding: 0 28px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid #202020 !important;
  background: #202020 !important;
  color: #f7f4ee !important;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition:
    background-color 0.22s ease,
    color 0.22s ease,
    border-color 0.22s ease,
    transform 0.22s ease;
}

.news-contact-cta .button-outline::after {
  content: "→";
  font-size: 13px;
  line-height: 1;
  transform: translateY(-1px);
}

.news-contact-cta .button-outline:hover {
  background: transparent !important;
  color: #202020 !important;
  border-color: #202020 !important;
  transform: translateY(-1px);
}

@media (max-width: 700px) {
  .news-contact-cta .button-outline {
    width: 100%;
    min-height: 58px;
    margin-top: 28px;
    font-size: 14px;
  }
}
/* ===== News contact CTA button refinement end ===== */

/* ===== Privacy policy page start ===== */
.privacy-page {
  background: #f7f4ee;
  color: #202020;
}

.privacy-document {
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(104px, 10vw, 148px) 5vw clamp(96px, 9vw, 136px);
}

.privacy-header {
  margin-bottom: clamp(56px, 7vw, 88px);
  padding-bottom: clamp(36px, 5vw, 56px);
  border-bottom: 1px solid rgba(32, 32, 32, 0.16);
}

.privacy-header__label {
  margin: 0 0 22px;
  color: var(--color-muted);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.privacy-header__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(38px, 5vw, 64px);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.08em;
}

.privacy-header__lead {
  max-width: 760px;
  margin: 30px 0 0;
  color: var(--color-muted);
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: 0.04em;
}

.privacy-content section {
  padding: clamp(32px, 4vw, 48px) 0;
  border-bottom: 1px solid rgba(32, 32, 32, 0.12);
}

.privacy-content section:first-child {
  padding-top: 0;
}

.privacy-content h2 {
  margin: 0 0 20px;
  font-family: var(--font-serif);
  font-size: clamp(23px, 2.4vw, 30px);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.privacy-content p,
.privacy-content li {
  color: var(--color-muted);
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: 0.035em;
}

.privacy-content p {
  margin: 0 0 1.2em;
}

.privacy-content p:last-child {
  margin-bottom: 0;
}

.privacy-content ul {
  margin: 0;
  padding-left: 1.4em;
}

.privacy-content li + li {
  margin-top: 0.4em;
}

.privacy-contact {
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid rgba(32, 32, 32, 0.16);
  background: rgba(255, 255, 255, 0.34);
}

.privacy-contact strong {
  color: #202020;
  font-weight: 500;
}

.privacy-contact a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.privacy-updated {
  margin-top: 2em !important;
  color: rgba(32, 32, 32, 0.62) !important;
  font-size: 13px !important;
}

@media (max-width: 700px) {
  .privacy-document {
    padding: 88px 7vw 96px;
  }

  .privacy-header {
    margin-bottom: 48px;
  }

  .privacy-header__title {
    font-size: clamp(32px, 9vw, 42px);
  }

  .privacy-header__lead,
  .privacy-content p,
  .privacy-content li {
    font-size: 14px;
    line-height: 2;
  }

  .privacy-contact {
    padding: 24px;
  }
}
/* ===== Privacy policy page end ===== */

/* ===== Shooting menu page start ===== */
.shooting-page {
  background: #f7f4ee;
  color: #202020;
}

.shooting-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 52vw);
  min-height: clamp(520px, 54vw, 720px);
  overflow: hidden;
  background: #050505;
  color: #f7f4ee;
}

.shooting-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.96) 0%, rgba(0,0,0,0.82) 38%, rgba(0,0,0,0.28) 72%, rgba(0,0,0,0.5) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.08), rgba(0,0,0,0.48));
}

.shooting-hero__content {
  position: relative;
  z-index: 2;
  align-self: center;
  max-width: 840px;
  padding: clamp(96px, 10vw, 150px) 5vw;
}

.shooting-hero__label {
  margin: 0 0 28px;
  color: rgba(247, 244, 238, 0.7);
  font-size: 13px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.shooting-hero__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(48px, 7vw, 92px);
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: 0.08em;
}

.shooting-hero__text {
  max-width: 720px;
  margin: 34px 0 0;
  color: rgba(247, 244, 238, 0.78);
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: 0.06em;
}

.shooting-hero__image {
  position: relative;
  z-index: 0;
  margin: 0;
  min-height: clamp(520px, 54vw, 720px);
  overflow: hidden;
}

.shooting-hero__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  filter: brightness(0.72) contrast(1.04);
}

.shooting-menu-overview,
.shooting-info-section,
.shooting-price-section,
.shooting-flow-section,
.shooting-faq-section {
  padding: clamp(80px, 9vw, 132px) 5vw;
}

.shooting-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 760px);
  gap: 5vw;
  align-items: end;
  margin-bottom: clamp(48px, 6vw, 76px);
}

.shooting-section-heading .section-label {
  margin: 0 0 20px;
  color: var(--color-muted);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.shooting-section-heading h2 {
  grid-column: 1;
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(36px, 5vw, 68px);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: 0.08em;
}

.shooting-section-heading p:not(.section-label) {
  grid-column: 2;
  margin: 0;
  color: var(--color-muted);
  font-size: 14px;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

.shooting-menu-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.shooting-menu-card {
  display: block;
  overflow: hidden;
  border: 1px solid rgba(32, 32, 32, 0.14);
  background: rgba(255, 255, 255, 0.34);
  color: inherit;
  text-decoration: none;
  transition: transform 0.28s ease, border-color 0.28s ease, background-color 0.28s ease;
}

.shooting-menu-card:hover {
  transform: translateY(-4px);
  border-color: rgba(32, 32, 32, 0.38);
  background: rgba(255, 255, 255, 0.58);
}

.shooting-menu-card__image {
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #111;
}

.shooting-menu-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  filter: brightness(0.88);
  transition: transform 0.5s ease, filter 0.5s ease;
}

.shooting-menu-card:hover .shooting-menu-card__image img {
  transform: scale(1.05);
  filter: brightness(0.98);
}

.shooting-menu-card__body {
  padding: 30px 28px 34px;
}

.shooting-menu-card__label {
  margin: 0 0 18px;
  color: var(--color-muted);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.shooting-menu-card h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.06em;
}

.shooting-menu-card__body p:last-child {
  margin: 18px 0 0;
  color: var(--color-muted);
  font-size: 13px;
  line-height: 1.9;
}

.shooting-detail-section {
  padding: clamp(88px, 10vw, 144px) 5vw;
  background: #050505;
  color: #f7f4ee;
}

.shooting-section-heading--dark .section-label,
.shooting-section-heading--dark p:not(.section-label) {
  color: rgba(247, 244, 238, 0.62);
}

.shooting-detail-list {
  display: grid;
  gap: clamp(72px, 8vw, 112px);
}

.shooting-detail-item {
  display: grid;
  grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1fr);
  gap: 6vw;
  align-items: center;
}

.shooting-detail-item:nth-child(even) .shooting-detail-item__image {
  order: 2;
}

.shooting-detail-item__image {
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #111;
}

.shooting-detail-item__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.shooting-detail-item__body {
  max-width: 720px;
}

.shooting-detail-item__label {
  margin: 0 0 22px;
  color: rgba(247, 244, 238, 0.55);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.shooting-detail-item h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.08em;
}

.shooting-detail-item__body > p:not(.shooting-detail-item__label) {
  margin: 28px 0 0;
  color: rgba(247, 244, 238, 0.72);
  font-size: 14px;
  line-height: 2.15;
  letter-spacing: 0.04em;
}

.shooting-detail-item ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
  margin: 32px 0 0;
  padding: 0;
  list-style: none;
}

.shooting-detail-item li {
  padding: 12px 0;
  border-bottom: 1px solid rgba(247, 244, 238, 0.16);
  color: rgba(247, 244, 238, 0.7);
  font-size: 13px;
  letter-spacing: 0.05em;
}

.shooting-info-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid rgba(32, 32, 32, 0.14);
  border-bottom: 1px solid rgba(32, 32, 32, 0.14);
}

.shooting-info-card {
  min-height: 190px;
  padding: 34px 28px;
  border-right: 1px solid rgba(32, 32, 32, 0.12);
}

.shooting-info-card:last-child {
  border-right: 0;
}

.shooting-info-card p {
  margin: 0 0 32px;
  color: var(--color-muted);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.shooting-info-card h3 {
  margin: 0 0 18px;
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.shooting-info-card span {
  color: var(--color-muted);
  font-size: 13px;
  line-height: 1.8;
}

.shooting-price-section {
  padding-top: 0;
}

.shooting-price-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
  gap: 6vw;
  padding: clamp(48px, 6vw, 72px);
  border: 1px solid rgba(32, 32, 32, 0.16);
  background: rgba(255, 255, 255, 0.34);
}

.shooting-price-box .section-label {
  margin: 0 0 20px;
  color: var(--color-muted);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.shooting-price-box h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(34px, 4.6vw, 58px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.08em;
}

.shooting-price-box__text p:not(.section-label) {
  max-width: 780px;
  margin: 28px 0 0;
  color: var(--color-muted);
  font-size: 14px;
  line-height: 2.1;
  letter-spacing: 0.04em;
}

.shooting-price-box__list {
  padding: 34px;
  background: #f7f4ee;
  border: 1px solid rgba(32, 32, 32, 0.12);
}

.shooting-price-box__list h3 {
  margin: 0 0 22px;
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.06em;
}

.shooting-price-box__list ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.shooting-price-box__list li {
  padding: 12px 0;
  border-bottom: 1px solid rgba(32, 32, 32, 0.12);
  color: var(--color-muted);
  font-size: 13px;
  letter-spacing: 0.06em;
}

.shooting-price-box__list li:last-child {
  border-bottom: 0;
}

.shooting-flow-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgba(32, 32, 32, 0.14);
  border-left: 1px solid rgba(32, 32, 32, 0.14);
}

.shooting-flow-card {
  min-height: 240px;
  padding: 34px 30px;
  border-right: 1px solid rgba(32, 32, 32, 0.14);
  border-bottom: 1px solid rgba(32, 32, 32, 0.14);
}

.shooting-flow-card span {
  display: block;
  margin-bottom: 42px;
  color: rgba(32, 32, 32, 0.42);
  font-size: 12px;
  letter-spacing: 0.24em;
}

.shooting-flow-card h3 {
  margin: 0 0 18px;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.shooting-flow-card p {
  margin: 0;
  color: var(--color-muted);
  font-size: 13px;
  line-height: 1.9;
}

.shooting-faq-list {
  max-width: 980px;
  margin: 0 auto;
  border-top: 1px solid rgba(32, 32, 32, 0.14);
}

.shooting-faq-list details {
  border-bottom: 1px solid rgba(32, 32, 32, 0.14);
}

.shooting-faq-list summary {
  position: relative;
  padding: 28px 48px 28px 0;
  cursor: pointer;
  font-family: var(--font-serif);
  font-size: 22px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  list-style: none;
}

.shooting-faq-list summary::-webkit-details-marker {
  display: none;
}

.shooting-faq-list summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 50%;
  color: var(--color-muted);
  font-family: var(--font-serif);
  transform: translateY(-50%);
}

.shooting-faq-list details[open] summary::after {
  content: "−";
}

.shooting-faq-list p {
  margin: 0;
  padding: 0 0 30px;
  color: var(--color-muted);
  font-size: 14px;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

.shooting-contact-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: center;
  margin: 0 5vw clamp(88px, 10vw, 132px);
  padding: clamp(48px, 6vw, 74px);
  overflow: hidden;
  position: relative;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.94), rgba(0,0,0,0.72)),
    url("../img/shooting/shooting-hero.jpg");
  background-size: cover;
  background-position: center;
  color: #f7f4ee;
}

.shooting-contact-cta .section-label {
  margin: 0 0 20px;
  color: rgba(247, 244, 238, 0.58);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.shooting-contact-cta h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(34px, 5vw, 62px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.shooting-contact-cta p:not(.section-label) {
  margin: 28px 0 0;
  color: rgba(247, 244, 238, 0.76);
  font-size: 14px;
  line-height: 2;
}

.shooting-contact-cta__button {
  min-width: 260px;
  min-height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 30px;
  background: #c9aa63;
  color: #111;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: background-color 0.24s ease, transform 0.24s ease;
}

.shooting-contact-cta__button::after {
  content: "→";
  margin-left: 12px;
}

.shooting-contact-cta__button:hover {
  background: #d8bb78;
  transform: translateY(-2px);
}

@media (max-width: 1180px) {
  .shooting-menu-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shooting-info-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .shooting-info-card:nth-child(3) {
    border-right: 0;
  }

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

@media (max-width: 900px) {
  .shooting-hero {
    display: block;
    min-height: auto;
  }

  .shooting-hero__content {
    padding: 96px 7vw 72px;
  }

  .shooting-hero__image {
    min-height: 320px;
  }

  .shooting-section-heading {
    display: block;
  }

  .shooting-section-heading p:not(.section-label) {
    margin-top: 24px;
  }

  .shooting-detail-item,
  .shooting-detail-item:nth-child(even) {
    display: block;
  }

  .shooting-detail-item:nth-child(even) .shooting-detail-item__image {
    order: initial;
  }

  .shooting-detail-item__body {
    margin-top: 36px;
  }

  .shooting-price-box,
  .shooting-contact-cta {
    display: block;
  }

  .shooting-price-box__list {
    margin-top: 36px;
  }

  .shooting-contact-cta__button {
    margin-top: 34px;
  }
}

@media (max-width: 700px) {
  .shooting-hero__content {
    padding: 84px 7vw 58px;
  }

  .shooting-hero__label {
    margin-bottom: 20px;
    font-size: 11px;
  }

  .shooting-hero__title {
    font-size: clamp(38px, 12vw, 52px);
  }

  .shooting-hero__text {
    margin-top: 24px;
    font-size: 14px;
    line-height: 2;
  }

  .shooting-menu-overview,
  .shooting-info-section,
  .shooting-price-section,
  .shooting-flow-section,
  .shooting-faq-section {
    padding: 64px 7vw;
  }

  .shooting-detail-section {
    padding: 72px 7vw;
  }

  .shooting-menu-grid,
  .shooting-info-grid,
  .shooting-flow-grid {
    grid-template-columns: 1fr;
  }

  .shooting-menu-card__body {
    padding: 26px 24px 30px;
  }

  .shooting-info-grid,
  .shooting-flow-grid {
    border-left: 0;
  }

  .shooting-info-card,
  .shooting-info-card:nth-child(3),
  .shooting-flow-card {
    border-right: 0;
  }

  .shooting-detail-item ul {
    grid-template-columns: 1fr;
  }

  .shooting-price-box {
    padding: 34px 28px;
  }

  .shooting-price-box__list {
    padding: 28px 24px;
  }

  .shooting-faq-list summary {
    padding: 24px 40px 24px 0;
    font-size: 19px;
  }

  .shooting-contact-cta {
    margin: 0 7vw 72px;
    padding: 40px 28px;
  }

  .shooting-contact-cta__button {
    width: 100%;
    min-width: 0;
  }
}
/* ===== Shooting menu page end ===== */

/* ===== Shooting menu page refinement start ===== */

/* Align shooting hero with other lower pages */
.shooting-hero {
  min-height: clamp(440px, 43vw, 560px);
}

.shooting-hero__content {
  padding: clamp(88px, 8vw, 120px) 5vw;
}

.shooting-hero__image {
  min-height: clamp(440px, 43vw, 560px);
}

.shooting-hero__label {
  margin-bottom: 24px;
  font-size: 12px;
  letter-spacing: 0.26em;
}

.shooting-hero__title {
  font-size: clamp(42px, 5.6vw, 72px);
  line-height: 1.25;
}

.shooting-hero__text {
  margin-top: 28px;
  font-size: 14px;
  line-height: 2;
}

/* Align section heading scale with About / Works tone */
.shooting-section-heading {
  margin-bottom: clamp(42px, 5vw, 64px);
}

.shooting-section-heading h2 {
  font-size: clamp(32px, 4.2vw, 52px);
  line-height: 1.38;
}

.shooting-section-heading p:not(.section-label) {
  font-size: 14px;
  line-height: 2;
}

/* Make detail headings less oversized */
.shooting-detail-item h3 {
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.45;
}

.shooting-detail-item__body > p:not(.shooting-detail-item__label) {
  font-size: 13px;
  line-height: 2.05;
}

.shooting-menu-card h3 {
  font-size: 22px;
}

.shooting-price-box h2,
.shooting-flow-section .shooting-section-heading h2,
.shooting-faq-section .shooting-section-heading h2 {
  font-size: clamp(32px, 4vw, 50px);
}

/* SP refinement */
@media (max-width: 700px) {
  .shooting-hero {
    min-height: auto;
  }

  .shooting-hero__content {
    padding: 78px 7vw 52px;
  }

  .shooting-hero__image {
    min-height: 260px;
  }

  .shooting-hero__title {
    font-size: clamp(34px, 10vw, 46px);
  }

  .shooting-section-heading h2 {
    font-size: clamp(30px, 8.5vw, 40px);
  }

  .shooting-detail-item h3 {
    font-size: clamp(27px, 7.4vw, 36px);
  }
}

/* ===== Shooting menu page refinement end ===== */

/* ===== Shooting menu page final typography alignment start ===== */

/* Hero: align with About page scale */
.shooting-hero {
  min-height: 520px !important;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 48vw);
}

.shooting-hero__content {
  width: min(86vw, 1440px);
  max-width: none;
  margin: 0 auto;
  padding: 0;
}

.shooting-hero__image {
  min-height: 520px !important;
}

.shooting-hero__label {
  margin-bottom: 24px !important;
  font-size: 14px !important;
  letter-spacing: 0.12em !important;
}

.shooting-hero__title {
  font-size: clamp(40px, 4.8vw, 72px) !important;
  line-height: 1.25 !important;
  letter-spacing: 0.12em !important;
}

.shooting-hero__text {
  max-width: 720px;
  margin-top: 28px !important;
  font-size: 15px !important;
  line-height: 2.05 !important;
  letter-spacing: 0.05em !important;
}

/* Section headings: avoid narrow two-column heading breaks */
.shooting-section-heading {
  display: block !important;
  width: min(86vw, 1280px);
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 56px !important;
}

.shooting-section-heading .section-label {
  margin-bottom: 22px !important;
  font-size: 12px !important;
  letter-spacing: 0.22em !important;
}

.shooting-section-heading h2 {
  max-width: none;
  font-size: clamp(28px, 3vw, 44px) !important;
  line-height: 1.65 !important;
  letter-spacing: 0.08em !important;
  font-weight: 400 !important;
}

.shooting-section-heading p:not(.section-label) {
  max-width: 760px;
  margin-top: 22px !important;
  font-size: 15px !important;
  line-height: 2.05 !important;
  letter-spacing: 0.04em !important;
}

/* Detail headings: align with lower-page tone */
.shooting-detail-item h3 {
  font-size: clamp(28px, 3vw, 44px) !important;
  line-height: 1.6 !important;
  letter-spacing: 0.08em !important;
}

.shooting-menu-card h3 {
  font-size: 22px !important;
  line-height: 1.55 !important;
}

.shooting-price-box h2,
.shooting-contact-cta h2 {
  font-size: clamp(30px, 3.8vw, 52px) !important;
  line-height: 1.45 !important;
}

/* SP alignment */
@media (max-width: 900px) {
  .shooting-hero {
    display: block;
    min-height: auto !important;
  }

  .shooting-hero__content {
    width: auto;
    padding: 88px 7vw 64px;
  }

  .shooting-hero__image {
    min-height: 300px !important;
  }
}

@media (max-width: 700px) {
  .shooting-hero__label {
    font-size: 12px !important;
  }

  .shooting-hero__title {
    font-size: clamp(34px, 10vw, 44px) !important;
    letter-spacing: 0.1em !important;
  }

  .shooting-section-heading {
    width: auto;
    margin-bottom: 40px !important;
  }

  .shooting-section-heading h2,
  .shooting-detail-item h3 {
    font-size: clamp(27px, 7.4vw, 36px) !important;
    line-height: 1.55 !important;
  }

  .shooting-section-heading p:not(.section-label) {
    font-size: 14px !important;
  }
}

/* ===== Shooting menu page final typography alignment end ===== */

/* ===== Shooting menu layout correction start ===== */

/* Restore hero grid layout while keeping About-like height and title scale */
.shooting-hero {
  min-height: 520px !important;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 48vw) !important;
}

.shooting-hero__content {
  width: auto !important;
  max-width: 760px !important;
  margin: 0 !important;
  padding: 96px 5vw !important;
  align-self: center !important;
}

.shooting-hero__image {
  min-height: 520px !important;
}

.shooting-hero__label {
  margin: 0 0 24px !important;
  font-size: 13px !important;
  letter-spacing: 0.2em !important;
}

.shooting-hero__title {
  font-size: clamp(40px, 4.8vw, 72px) !important;
  line-height: 1.25 !important;
  letter-spacing: 0.12em !important;
}

.shooting-hero__text {
  max-width: 680px !important;
  margin-top: 28px !important;
  font-size: 15px !important;
  line-height: 2.05 !important;
}

/* Align section heading and grids to the same content rhythm */
.shooting-menu-overview,
.shooting-info-section,
.shooting-price-section,
.shooting-flow-section,
.shooting-faq-section,
.shooting-detail-section {
  padding-right: 5vw !important;
  padding-left: 5vw !important;
}

.shooting-section-heading {
  width: auto !important;
  max-width: 1280px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.shooting-menu-grid,
.shooting-detail-list,
.shooting-info-grid,
.shooting-flow-grid,
.shooting-faq-list,
.shooting-price-box {
  max-width: 1280px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.shooting-section-heading h2 {
  font-size: clamp(28px, 3vw, 44px) !important;
  line-height: 1.65 !important;
  letter-spacing: 0.08em !important;
}

/* Keep dark detail section readable but not oversized */
.shooting-detail-item {
  gap: 5vw !important;
}

.shooting-detail-item h3 {
  font-size: clamp(28px, 3vw, 44px) !important;
  line-height: 1.6 !important;
}

/* SP */
@media (max-width: 900px) {
  .shooting-hero {
    display: block !important;
    min-height: auto !important;
  }

  .shooting-hero__content {
    max-width: none !important;
    padding: 88px 7vw 64px !important;
  }

  .shooting-hero__image {
    min-height: 300px !important;
  }
}

@media (max-width: 700px) {
  .shooting-hero__content {
    padding: 78px 7vw 56px !important;
  }

  .shooting-hero__title {
    font-size: clamp(34px, 10vw, 44px) !important;
  }

  .shooting-menu-overview,
  .shooting-info-section,
  .shooting-price-section,
  .shooting-flow-section,
  .shooting-faq-section,
  .shooting-detail-section {
    padding-right: 7vw !important;
    padding-left: 7vw !important;
  }
}

/* ===== Shooting menu layout correction end ===== */

/* ===== Shooting menu anchor position adjustment start ===== */
.shooting-detail-item {
  scroll-margin-top: 150px;
}

@media (max-width: 900px) {
  .shooting-detail-item {
    scroll-margin-top: 120px;
  }
}

@media (max-width: 700px) {
  .shooting-detail-item {
    scroll-margin-top: 104px;
  }
}
/* ===== Shooting menu anchor position adjustment end ===== */

/* ===== Smooth scroll start ===== */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
/* ===== Smooth scroll end ===== */

/* ===== Business page start ===== */
.business-page {
  background: #f7f4ee;
  color: #202020;
}

.business-section-inner {
  width: min(86vw, 1280px);
  margin: 0 auto;
}

.business-section-label {
  margin: 0 0 22px;
  color: var(--color-muted);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.business-page h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.08em;
}

/* Hero */
.business-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.72) 38%, rgba(0,0,0,0.2) 72%, rgba(0,0,0,0.44) 100%),
    url("../img/business/business-hero.jpg");
  background-size: cover;
  background-position: center;
  color: #f7f4ee;
}

.business-hero__content {
  position: relative;
  z-index: 1;
  width: min(86vw, 1280px);
  margin: 0 auto;
}

.business-hero__label {
  margin: 0 0 24px;
  color: rgba(247,244,238,0.78);
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.business-hero__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(40px, 4.8vw, 72px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.1em;
}

.business-hero__lead {
  margin: 28px 0 0;
  color: rgba(247,244,238,0.9);
  font-family: var(--font-serif);
  font-size: clamp(18px, 2vw, 26px);
  line-height: 1.8;
  letter-spacing: 0.08em;
}

.business-hero__text {
  max-width: 640px;
  margin: 24px 0 0;
  color: rgba(247,244,238,0.78);
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: 0.05em;
}

/* Areas */
.business-areas {
  padding: 72px 0;
  background: #f7f4ee;
}

.business-area-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-top: 38px;
  border-top: 1px solid rgba(32,32,32,0.14);
  border-bottom: 1px solid rgba(32,32,32,0.14);
}

.business-area-card {
  min-height: 170px;
  padding: 28px 22px;
  border-right: 1px solid rgba(32,32,32,0.14);
  text-align: center;
}

.business-area-card:last-child {
  border-right: 0;
}

.business-area-card span {
  display: block;
  margin-bottom: 20px;
  color: rgba(32,32,32,0.62);
  font-size: 34px;
  line-height: 1;
}

.business-area-card h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.business-area-card p {
  margin: 12px 0 0;
  color: var(--color-muted);
  font-size: 12px;
  line-height: 1.7;
}

/* Flow */
.business-flow {
  padding: 72px 0 84px;
  background: #050505;
  color: #f7f4ee;
}

.business-flow .business-section-label {
  color: rgba(247,244,238,0.52);
}

.business-flow-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-top: 38px;
  border-top: 1px solid rgba(247,244,238,0.16);
  border-left: 1px solid rgba(247,244,238,0.16);
}

.business-flow-card {
  min-height: 210px;
  padding: 28px 22px 30px;
  border-right: 1px solid rgba(247,244,238,0.16);
  border-bottom: 1px solid rgba(247,244,238,0.16);
}

.business-flow-card span {
  display: block;
  margin-bottom: 24px;
  color: rgba(247,244,238,0.58);
  font-family: var(--font-serif);
  font-size: 24px;
  letter-spacing: 0.08em;
}

.business-flow-card h3 {
  margin: 0 0 14px;
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.business-flow-card p {
  margin: 0;
  color: rgba(247,244,238,0.68);
  font-size: 12px;
  line-height: 1.8;
}

/* Specs */
.business-specs {
  padding: 76px 0;
  background: #f7f4ee;
}

.business-specs__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.business-spec-card {
  padding: 34px 34px 30px;
  border: 1px solid rgba(32,32,32,0.14);
  background: rgba(255,255,255,0.34);
}

.business-spec-card h2 {
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.5;
}

.business-spec-card__head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 26px;
}

.business-spec-card__head span {
  color: var(--color-muted);
  font-size: 24px;
}

.business-spec-card dl {
  margin: 0;
}

.business-spec-card dl div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 18px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(32,32,32,0.12);
}

.business-spec-card dt {
  color: #202020;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.business-spec-card dd {
  margin: 0;
  color: var(--color-muted);
  line-height: 1.7;
}

.business-spec-card ul {
  margin: 24px 0 0;
  padding-left: 1.2em;
  color: var(--color-muted);
  line-height: 1.9;
}

.business-spec-card figure {
  margin: 28px 0 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #111;
}

.business-spec-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* Equipment / Drone */
.business-equipment,
.business-drone {
  padding: 70px 0;
  background: #050505;
  color: #f7f4ee;
}

.business-drone {
  padding-top: 0;
}

.business-equipment__grid,
.business-drone__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1fr);
  gap: 5vw;
  align-items: center;
}

.business-equipment .business-section-label,
.business-drone .business-section-label {
  color: rgba(247,244,238,0.52);
}

.business-equipment ul,
.business-drone ul {
  margin: 30px 0 0;
  padding-left: 1.2em;
  color: rgba(247,244,238,0.72);
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.05em;
}

.business-equipment figure,
.business-drone figure {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #111;
}

.business-equipment img,
.business-drone img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* Contact flow */
.business-contact-flow {
  padding: 76px 0;
  background: #f7f4ee;
}

.business-contact-flow-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 38px;
  border-top: 1px solid rgba(32,32,32,0.14);
  border-left: 1px solid rgba(32,32,32,0.14);
}

.business-contact-flow-card {
  min-height: 170px;
  padding: 28px 22px;
  border-right: 1px solid rgba(32,32,32,0.14);
  border-bottom: 1px solid rgba(32,32,32,0.14);
}

.business-contact-flow-card span {
  display: block;
  margin-bottom: 20px;
  color: var(--color-muted);
  font-size: 13px;
  letter-spacing: 0.18em;
}

.business-contact-flow-card h3 {
  margin: 0 0 12px;
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.business-contact-flow-card p {
  margin: 0;
  color: var(--color-muted);
  font-size: 12px;
  line-height: 1.8;
}

/* CTA */
.business-contact-cta {
  width: min(86vw, 1280px);
  margin: 0 auto 96px;
  display: grid;
  grid-template-columns: minmax(300px, 0.48fr) minmax(0, 1fr);
  background: #050505;
  color: #f7f4ee;
}

.business-contact-cta figure {
  margin: 0;
  min-height: 300px;
  overflow: hidden;
  background: #111;
}

.business-contact-cta img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.business-contact-cta__body {
  padding: clamp(42px, 5vw, 68px);
}

.business-contact-cta h2 {
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.6;
}

.business-contact-cta p {
  margin: 22px 0 0;
  color: rgba(247,244,238,0.72);
  font-size: 14px;
  line-height: 2;
}

.business-contact-cta__actions {
  display: flex;
  gap: 34px;
  align-items: center;
  margin-top: 36px;
}

.business-contact-cta__actions a {
  min-width: 260px;
  min-height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 28px;
  background: #f7f4ee;
  color: #111;
  text-decoration: none;
  letter-spacing: 0.08em;
}

.business-contact-cta__actions a::after {
  content: "›";
  margin-left: 18px;
}

.business-contact-cta__actions div {
  padding-left: 34px;
  border-left: 1px solid rgba(247,244,238,0.28);
}

.business-contact-cta__actions span {
  display: block;
  color: rgba(247,244,238,0.58);
  font-size: 12px;
  letter-spacing: 0.08em;
}

.business-contact-cta__actions strong {
  display: block;
  margin-top: 6px;
  color: #f7f4ee;
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 0.06em;
}

/* Responsive */
@media (max-width: 1180px) {
  .business-area-grid,
  .business-flow-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .business-contact-flow-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .business-specs__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .business-hero {
    min-height: 460px;
  }

  .business-equipment__grid,
  .business-drone__grid,
  .business-contact-cta {
    display: block;
  }

  .business-equipment figure,
  .business-drone figure {
    margin-top: 34px;
  }

  .business-contact-cta__actions {
    display: block;
  }

  .business-contact-cta__actions div {
    margin-top: 24px;
    padding-left: 0;
    border-left: 0;
  }
}

@media (max-width: 700px) {
  .business-hero {
    min-height: 420px;
  }

  .business-hero__title {
    font-size: clamp(34px, 10vw, 44px);
  }

  .business-hero__lead {
    font-size: 17px;
  }

  .business-areas,
  .business-flow,
  .business-specs,
  .business-equipment,
  .business-drone,
  .business-contact-flow {
    padding: 60px 0;
  }

  .business-area-grid,
  .business-flow-grid,
  .business-contact-flow-grid {
    grid-template-columns: 1fr;
  }

  .business-area-card,
  .business-flow-card,
  .business-contact-flow-card {
    border-right: 0;
  }

  .business-spec-card {
    padding: 30px 24px;
  }

  .business-spec-card dl div {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .business-contact-cta {
    margin-bottom: 72px;
  }

  .business-contact-cta__body {
    padding: 36px 26px;
  }

  .business-contact-cta__actions a {
    width: 100%;
    min-width: 0;
  }
}
/* ===== Business page end ===== */

/* ===== Business flow svg icons start ===== */
.business-flow-card__icon,
.business-contact-flow-card__icon {
  width: 42px;
  height: 42px;
  margin: 0 0 22px;
  color: currentColor;
  opacity: 0.72;
}

.business-flow-card__icon svg,
.business-contact-flow-card__icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.business-flow-card__icon {
  color: rgba(247, 244, 238, 0.72);
}

.business-contact-flow-card__icon {
  color: rgba(32, 32, 32, 0.58);
}

.business-flow-card span,
.business-contact-flow-card span {
  margin-bottom: 14px;
}

.business-flow-card h3,
.business-contact-flow-card h3 {
  margin-top: 0;
}

@media (max-width: 700px) {
  .business-flow-card__icon,
  .business-contact-flow-card__icon {
    width: 38px;
    height: 38px;
    margin-bottom: 18px;
  }
}
/* ===== Business flow svg icons end ===== */

/* ===== Business area svg icons start ===== */
.business-area-card__icon {
  width: 42px;
  height: 42px;
  display: block;
  margin: 0 auto 22px;
  color: rgba(32, 32, 32, 0.58);
}

.business-area-card__icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.business-area-card span.business-area-card__icon {
  font-size: 0;
  line-height: 1;
}

@media (max-width: 700px) {
  .business-area-card__icon {
    width: 38px;
    height: 38px;
    margin-bottom: 18px;
  }
}
/* ===== Business area svg icons end ===== */

/* ===== Studio page start ===== */
.studio-page {
  background: #f7f4ee;
  color: #202020;
}

.studio-section-label {
  margin: 0 0 22px;
  color: var(--color-muted);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.studio-page h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.08em;
}

/* Hero */
.studio-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.68) 38%, rgba(0,0,0,0.2) 72%, rgba(0,0,0,0.48) 100%),
    url("../img/studio/studio-hero.jpg");
  background-size: cover;
  background-position: center;
  color: #f7f4ee;
}

.studio-hero__content {
  position: relative;
  z-index: 1;
  width: min(86vw, 1280px);
  margin: 0 auto;
}

.studio-hero__label {
  margin: 0 0 24px;
  color: rgba(247,244,238,0.72);
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.studio-hero__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(40px, 4.8vw, 72px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.1em;
}

.studio-hero__lead {
  margin: 28px 0 0;
  color: rgba(247,244,238,0.92);
  font-family: var(--font-serif);
  font-size: clamp(18px, 2vw, 26px);
  line-height: 1.8;
  letter-spacing: 0.08em;
}

.studio-hero__text {
  max-width: 640px;
  margin: 24px 0 0;
  color: rgba(247,244,238,0.78);
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: 0.05em;
}

/* About */
.studio-about {
  padding: 84px 0;
  background: #f7f4ee;
}

.studio-about__inner {
  width: min(86vw, 1280px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(420px, 1fr);
  gap: 7vw;
  align-items: center;
}

.studio-about__content p:not(.studio-section-label) {
  margin: 28px 0 0;
  color: #333;
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: 0.04em;
}

.studio-text-link {
  min-width: 240px;
  min-height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 34px;
  padding: 0 28px;
  border: 1px solid rgba(32,32,32,0.28);
  color: #202020;
  text-decoration: none;
  letter-spacing: 0.08em;
}

.studio-text-link::after {
  content: "›";
  margin-left: 18px;
}

.studio-about__image {
  position: relative;
  margin: 0;
  overflow: hidden;
}

.studio-about__image > img:not(.studio-about__logo) {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
}

.studio-about__logo {
  position: absolute;
  right: 24px;
  bottom: 24px;
  width: 110px;
  height: auto;
  opacity: 0.82;
}

/* Features */
.studio-features {
  padding: 78px 0 86px;
  background: #050505;
  color: #f7f4ee;
}

.studio-features__inner {
  width: min(86vw, 1280px);
  margin: 0 auto;
}

.studio-features .studio-section-label {
  color: rgba(247,244,238,0.52);
}

.studio-feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 44px;
  border-top: 1px solid rgba(247,244,238,0.16);
  border-left: 1px solid rgba(247,244,238,0.16);
}

.studio-feature-card {
  min-height: 230px;
  padding: 34px 30px;
  border-right: 1px solid rgba(247,244,238,0.16);
  border-bottom: 1px solid rgba(247,244,238,0.16);
}

.studio-feature-card__icon {
  width: 42px;
  height: 42px;
  margin-bottom: 28px;
  color: rgba(247,244,238,0.74);
}

.studio-feature-card__icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.studio-feature-card h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.studio-feature-card p {
  margin: 16px 0 0;
  color: rgba(247,244,238,0.68);
  font-size: 13px;
  line-height: 1.9;
}

/* Space */
.studio-space {
  padding: 84px 0;
  background: #f7f4ee;
}

.studio-space__inner {
  width: min(86vw, 1280px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.65fr) minmax(0, 1fr);
  gap: 5vw;
  align-items: center;
}

.studio-space__content p:not(.studio-section-label) {
  margin: 28px 0 0;
  color: #333;
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: 0.04em;
}

.studio-space__gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.studio-space__gallery figure {
  margin: 0;
  overflow: hidden;
  background: #111;
}

.studio-space__gallery img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

/* Access */
.studio-access {
  padding: 78px 0;
  background: #eee9df;
}

.studio-access__inner {
  width: min(86vw, 1280px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(260px, 0.42fr) minmax(0, 1fr) minmax(260px, 0.42fr);
  gap: 4vw;
  align-items: center;
}

.studio-access__content p:not(.studio-section-label),
.studio-access__note {
  margin: 26px 0 0;
  color: #333;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.studio-access__note {
  color: var(--color-muted);
  font-size: 12px;
}

.studio-access__map {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  border: 1px solid rgba(32,32,32,0.12);
  background: #e2ded6;
}

.studio-access__map-grid {
  position: absolute;
  inset: 0;
  opacity: 0.48;
  background:
    linear-gradient(90deg, rgba(32,32,32,0.11) 1px, transparent 1px),
    linear-gradient(180deg, rgba(32,32,32,0.11) 1px, transparent 1px);
  background-size: 42px 42px;
  transform: rotate(-7deg) scale(1.25);
}

.studio-access__map span {
  position: absolute;
  right: 12%;
  top: 48%;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #202020;
  font-size: 13px;
  letter-spacing: 0.08em;
}

.studio-access__map span::before {
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: #202020;
}

.studio-access__info dl {
  margin: 0;
}

.studio-access__info div {
  padding: 18px 0;
  border-bottom: 1px solid rgba(32,32,32,0.14);
}

.studio-access__info dt {
  margin-bottom: 8px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.studio-access__info dd {
  margin: 0;
  color: var(--color-muted);
  font-size: 13px;
  line-height: 1.8;
}

/* CTA */
.studio-contact-cta {
  display: grid;
  grid-template-columns: minmax(320px, 0.42fr) minmax(0, 1fr);
  background: #050505;
  color: #f7f4ee;
}

.studio-contact-cta figure {
  margin: 0;
  min-height: 360px;
  overflow: hidden;
  background: #111;
}

.studio-contact-cta img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.studio-contact-cta__body {
  padding: clamp(52px, 6vw, 86px);
}

.studio-contact-cta .studio-section-label {
  color: rgba(247,244,238,0.52);
}

.studio-contact-cta h2 {
  color: #f7f4ee;
}

.studio-contact-cta p {
  margin: 22px 0 0;
  color: rgba(247,244,238,0.72);
  font-size: 14px;
  line-height: 2;
}

.studio-contact-cta__actions {
  display: flex;
  gap: 34px;
  align-items: center;
  margin-top: 36px;
}

.studio-contact-cta__actions a {
  min-width: 260px;
  min-height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 28px;
  background: #f7f4ee;
  color: #111;
  text-decoration: none;
  letter-spacing: 0.08em;
}

.studio-contact-cta__actions a::after {
  content: "›";
  margin-left: 18px;
}

.studio-contact-cta__actions div {
  padding-left: 34px;
  border-left: 1px solid rgba(247,244,238,0.28);
}

.studio-contact-cta__actions span {
  display: block;
  color: rgba(247,244,238,0.58);
  font-size: 12px;
  letter-spacing: 0.08em;
}

.studio-contact-cta__actions strong {
  display: block;
  margin-top: 6px;
  color: #f7f4ee;
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 0.06em;
}

/* Responsive */
@media (max-width: 1000px) {
  .studio-about__inner,
  .studio-space__inner,
  .studio-access__inner {
    grid-template-columns: 1fr;
  }

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

  .studio-contact-cta {
    display: block;
  }

  .studio-contact-cta figure {
    min-height: 280px;
  }
}

@media (max-width: 700px) {
  .studio-hero {
    min-height: 420px;
    background-position: center;
  }

  .studio-hero__title {
    font-size: clamp(34px, 10vw, 44px);
  }

  .studio-hero__lead {
    font-size: 17px;
  }

  .studio-about,
  .studio-features,
  .studio-space,
  .studio-access {
    padding: 60px 0;
  }

  .studio-feature-grid,
  .studio-space__gallery {
    grid-template-columns: 1fr;
  }

  .studio-feature-card {
    min-height: auto;
  }

  .studio-about__logo {
    width: 86px;
    right: 18px;
    bottom: 18px;
  }

  .studio-contact-cta__body {
    padding: 40px 7vw;
  }

  .studio-contact-cta__actions {
    display: block;
  }

  .studio-contact-cta__actions a {
    width: 100%;
    min-width: 0;
  }

  .studio-contact-cta__actions div {
    margin-top: 24px;
    padding-left: 0;
    border-left: 0;
  }
}
/* ===== Studio page end ===== */

/* ===== Studio page logo and CTA refinement start ===== */

/* Make STUDIO Ikkei logo readable on dark studio photo */
.studio-about__image {
  position: relative;
}

.studio-about__image::after {
  content: "";
  position: absolute;
  right: 22px;
  bottom: 22px;
  z-index: 1;
  width: 178px;
  height: 126px;
  background: rgba(247, 244, 238, 0.88);
  border: 1px solid rgba(32, 32, 32, 0.08);
  pointer-events: none;
}

.studio-about__logo {
  z-index: 2;
  width: 150px;
  right: 36px;
  bottom: 32px;
  opacity: 0.96;
  filter: none !important;
}

/* Keep CTA aligned with other lower pages */
.studio-contact-cta {
  width: min(86vw, 1280px);
  margin: 0 auto 96px;
}

/* Add breathing room before footer */
.studio-page + .site-footer,
.studio-contact-cta + .site-footer {
  margin-top: 0;
}

@media (max-width: 700px) {
  .studio-about__image::after {
    right: 16px;
    bottom: 16px;
    width: 136px;
    height: 96px;
  }

  .studio-about__logo {
    width: 112px;
    right: 28px;
    bottom: 24px;
  }

  .studio-contact-cta {
    width: min(88vw, 1280px);
    margin-bottom: 72px;
  }
}

/* ===== Studio page logo and CTA refinement end ===== */

/* ===== Studio CTA align with business CTA start ===== */
.studio-contact-cta {
  width: min(86vw, 1280px);
  margin: 84px auto 96px;
  grid-template-columns: minmax(300px, 0.48fr) minmax(0, 1fr);
}

.studio-contact-cta figure {
  min-height: 300px;
}

.studio-contact-cta__body {
  padding: clamp(42px, 5vw, 68px);
}

.studio-contact-cta h2 {
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.studio-contact-cta p {
  margin-top: 20px;
  font-size: 14px;
  line-height: 2;
}

.studio-contact-cta__actions {
  margin-top: 34px;
}

@media (max-width: 1000px) {
  .studio-contact-cta {
    display: block;
    margin-top: 64px;
  }

  .studio-contact-cta figure {
    min-height: 260px;
  }
}

@media (max-width: 700px) {
  .studio-contact-cta {
    width: min(88vw, 1280px);
    margin: 56px auto 72px;
  }

  .studio-contact-cta__body {
    padding: 36px 26px;
  }

  .studio-contact-cta h2 {
    font-size: clamp(28px, 8vw, 36px);
  }
}
/* ===== Studio CTA align with business CTA end ===== */

/* ===== Studio Google Map size refinement start ===== */
.studio-access__map {
  position: relative;
  display: block;
  min-height: 420px;
  overflow: hidden;
  background: #050505;
}

.studio-access__map iframe {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  min-height: 0;
  display: block;
  border: 0;
}

.studio-access__map-link {
  position: absolute;
  right: 22px;
  bottom: 22px;
  z-index: 2;
  min-height: 48px;
  min-width: 220px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 20px;
  background: rgba(5, 5, 5, 0.88);
  color: #f7f4ee;
  border: 1px solid rgba(247, 244, 238, 0.22);
}

@media (max-width: 700px) {
  .studio-access__map {
    min-height: 320px;
  }

  .studio-access__map-link {
    left: 16px;
    right: 16px;
    bottom: 16px;
    min-width: 0;
  }
}
/* ===== Studio Google Map size refinement end ===== */

/* ===== Studio logo background removal start ===== */
.studio-about__image::after {
  display: none !important;
}

.studio-about__logo {
  width: 132px;
  right: 28px;
  bottom: 28px;
  opacity: 0.92;
  filter:
    drop-shadow(0 2px 10px rgba(0, 0, 0, 0.45))
    drop-shadow(0 0 1px rgba(247, 244, 238, 0.45)) !important;
}

/* Slightly improve visibility without showing a box */
.studio-about__image::before {
  content: "";
  position: absolute;
  right: 12px;
  bottom: 10px;
  z-index: 1;
  width: 170px;
  height: 170px;
  pointer-events: none;
  background: radial-gradient(
    circle,
    rgba(247, 244, 238, 0.18) 0%,
    rgba(247, 244, 238, 0.08) 42%,
    rgba(247, 244, 238, 0) 72%
  );
}

.studio-about__logo {
  z-index: 2;
}

@media (max-width: 700px) {
  .studio-about__logo {
    width: 104px;
    right: 20px;
    bottom: 20px;
  }

  .studio-about__image::before {
    right: 8px;
    bottom: 8px;
    width: 132px;
    height: 132px;
  }
}
/* ===== Studio logo background removal end ===== */

/* ===== Studio logo overflow position refinement start ===== */
.studio-about__image {
  overflow: visible !important;
}

.studio-about__image::after {
  display: none !important;
}

.studio-about__image::before {
  display: none !important;
}

.studio-about__logo {
  width: 150px;
  right: -22px;
  bottom: -22px;
  opacity: 0.9;
  z-index: 3;
  filter:
    drop-shadow(0 3px 14px rgba(0, 0, 0, 0.38))
    drop-shadow(0 0 1px rgba(247, 244, 238, 0.42)) !important;
}

@media (max-width: 700px) {
  .studio-about__logo {
    width: 108px;
    right: -10px;
    bottom: -12px;
  }
}
/* ===== Studio logo overflow position refinement end ===== */

/* ===== Contact page start ===== */
.contact-page {
  background: #f7f4ee;
  color: #202020;
}

.contact-section-label {
  margin: 0 0 22px;
  color: var(--color-muted);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

/* Hero */
.contact-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.74) 42%, rgba(0,0,0,0.32) 78%, rgba(0,0,0,0.52) 100%),
    url("../img/business/business-contact.jpg");
  background-size: cover;
  background-position: center;
  color: #f7f4ee;
}

.contact-hero__inner {
  width: min(86vw, 1280px);
  margin: 0 auto;
}

.contact-hero__label {
  margin: 0 0 24px;
  color: rgba(247,244,238,0.72);
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.contact-hero__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(40px, 4.8vw, 72px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.1em;
}

.contact-hero__lead {
  max-width: 760px;
  margin: 28px 0 0;
  color: rgba(247,244,238,0.82);
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: 0.05em;
}

/* Body */
.contact-body {
  padding: 88px 0 104px;
}

.contact-body__inner {
  width: min(86vw, 1280px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(280px, 0.42fr) minmax(0, 1fr);
  gap: 7vw;
  align-items: start;
}

.contact-body__intro h2 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.08em;
}

.contact-body__intro > p:not(.contact-section-label) {
  margin: 28px 0 0;
  color: #333;
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: 0.04em;
}

.contact-info-card {
  margin-top: 42px;
  padding: 30px 0 0;
  border-top: 1px solid rgba(32,32,32,0.16);
}

.contact-info-card p {
  margin: 0;
  color: var(--color-muted);
  font-size: 12px;
  letter-spacing: 0.12em;
}

.contact-info-card strong {
  display: block;
  margin-top: 10px;
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 400;
  letter-spacing: 0.06em;
}

.contact-info-card span {
  display: block;
  margin-top: 16px;
  color: var(--color-muted);
  font-size: 12px;
  line-height: 1.8;
}

/* CF7 form */
.contact-body__form {
  padding: clamp(36px, 4vw, 54px);
  border: 1px solid rgba(32,32,32,0.14);
  background: rgba(255,255,255,0.34);
}

.contact-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 24px;
}

.contact-form-field,
.contact-form-privacy,
.contact-form-submit {
  margin: 0;
}

.contact-form-field {
  grid-column: 1 / -1;
}

.contact-form-field--half {
  grid-column: span 1;
}

.contact-form-field label {
  display: block;
  margin-bottom: 10px;
  color: #202020;
  font-size: 13px;
  letter-spacing: 0.08em;
}

.contact-form-field label span {
  margin-left: 8px;
  color: var(--color-muted);
  font-size: 11px;
}

.contact-body__form input[type="text"],
.contact-body__form input[type="email"],
.contact-body__form input[type="tel"],
.contact-body__form select,
.contact-body__form textarea {
  width: 100%;
  min-height: 54px;
  padding: 14px 16px;
  border: 1px solid rgba(32,32,32,0.18);
  border-radius: 0;
  background: #f7f4ee;
  color: #202020;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.7;
  appearance: none;
}

.contact-body__form textarea {
  min-height: 190px;
  resize: vertical;
}

.contact-body__form input:focus,
.contact-body__form select:focus,
.contact-body__form textarea:focus {
  outline: none;
  border-color: rgba(32,32,32,0.52);
  background: #fff;
}

.contact-form-privacy {
  grid-column: 1 / -1;
  color: var(--color-muted);
  font-size: 13px;
  line-height: 1.8;
}

.contact-form-privacy a {
  color: #202020;
  text-underline-offset: 4px;
}

.contact-form-submit {
  grid-column: 1 / -1;
  margin-top: 10px;
}

.contact-body__form input[type="submit"] {
  min-width: 260px;
  min-height: 60px;
  padding: 0 34px;
  border: 0;
  border-radius: 0;
  background: #050505;
  color: #f7f4ee;
  font-family: inherit;
  font-size: 14px;
  letter-spacing: 0.1em;
  cursor: pointer;
}

.contact-body__form input[type="submit"]:hover {
  opacity: 0.86;
}

.contact-body__form .wpcf7-not-valid-tip {
  margin-top: 8px;
  color: #9b2f2f;
  font-size: 12px;
}

.contact-body__form .wpcf7-response-output {
  margin: 28px 0 0;
  padding: 16px 18px;
  border-color: rgba(32,32,32,0.22);
  color: #202020;
  font-size: 13px;
  line-height: 1.8;
}

.contact-body__form .wpcf7-spinner {
  margin-left: 16px;
}

@media (max-width: 900px) {
  .contact-body__inner {
    grid-template-columns: 1fr;
  }

  .contact-body__form {
    padding: 34px 28px;
  }
}

@media (max-width: 700px) {
  .contact-hero {
    min-height: 420px;
  }

  .contact-hero__title {
    font-size: clamp(34px, 10vw, 44px);
  }

  .contact-body {
    padding: 64px 0 76px;
  }

  .contact-form-grid {
    grid-template-columns: 1fr;
  }

  .contact-form-field--half {
    grid-column: 1 / -1;
  }

  .contact-body__form input[type="submit"] {
    width: 100%;
  }
}
/* ===== Contact page end ===== */

/* ===== Contact form required / optional labels start ===== */
.contact-form-field label .form-required,
.contact-form-field label .form-optional {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 18px;
  margin-left: 8px;
  padding: 1px 6px;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.06em;
}

.contact-form-field label .form-required {
  color: #b43a35;
  border: 1px solid rgba(180, 58, 53, 0.32);
  background: rgba(180, 58, 53, 0.06);
}

.contact-form-field label .form-optional {
  color: rgba(32, 32, 32, 0.52);
  border: 1px solid rgba(32, 32, 32, 0.18);
  background: rgba(32, 32, 32, 0.03);
}
/* ===== Contact form required / optional labels end ===== */

/* ===== Mobile drawer solid background fix start ===== */
@media (max-width: 1400px) {
  .site-header {
    z-index: 10000;
  }

  .site-header.is-nav-open .site-nav,
  body.is-nav-open .site-nav {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9998 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 160px 8vw 72px;
    background: #050505 !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .site-header.is-nav-open .site-nav::before,
  body.is-nav-open .site-nav::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
      linear-gradient(180deg, rgba(5,5,5,0.98), rgba(5,5,5,0.96));
  }

  .site-header.is-nav-open .site-nav__list,
  body.is-nav-open .site-nav__list {
    position: relative;
    z-index: 1;
  }

  .site-header.is-nav-open .site-nav__list a,
  body.is-nav-open .site-nav__list a {
    color: #f7f4ee !important;
  }

  .site-nav-toggle {
    position: relative;
    z-index: 10001;
  }
}

@media (max-width: 700px) {
  .site-header.is-nav-open .site-nav,
  body.is-nav-open .site-nav {
    padding-top: 150px;
    padding-bottom: 56px;
  }
}
/* ===== Mobile drawer solid background fix end ===== */

/* ===== Final mobile drawer full screen panel fix start ===== */
@media (max-width: 1800px) {
  body.is-nav-open {
    overflow: hidden;
  }

  .site-header.is-nav-open {
    position: fixed !important;
    inset: 0 !important;
    z-index: 30000 !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    background: #050505 !important;
    overflow-y: auto;
  }

  .site-header.is-nav-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    background:
      linear-gradient(180deg, rgba(5,5,5,1) 0%, rgba(5,5,5,0.98) 100%);
    pointer-events: none;
  }

  .site-header.is-nav-open .site-header__inner,
  .site-header.is-nav-open .site-branding,
  .site-header.is-nav-open .site-nav-toggle {
    position: relative;
    z-index: 3;
  }

  .site-header.is-nav-open .site-nav {
    position: relative !important;
    inset: auto !important;
    z-index: 2 !important;
    width: 100% !important;
    height: auto !important;
    min-height: calc(100dvh - 170px);
    margin: 0 !important;
    padding: clamp(42px, 7vh, 76px) 8vw 72px !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    background: transparent !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  .site-header.is-nav-open .site-nav__list {
    position: relative;
    z-index: 3;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: clamp(22px, 4vh, 36px);
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .site-header.is-nav-open .site-nav__list a {
    color: #f7f4ee !important;
    font-family: var(--font-serif);
    font-size: clamp(28px, 4.2vw, 48px);
    line-height: 1.35;
    letter-spacing: 0.08em;
  }

  .site-header.is-nav-open .site-nav-toggle {
    color: #f7f4ee !important;
  }
}

.admin-bar .site-header.is-nav-open {
  top: 32px !important;
  height: calc(100dvh - 32px) !important;
  min-height: calc(100dvh - 32px) !important;
}

@media (max-width: 782px) {
  .admin-bar .site-header.is-nav-open {
    top: 46px !important;
    height: calc(100dvh - 46px) !important;
    min-height: calc(100dvh - 46px) !important;
  }
}
/* ===== Final mobile drawer full screen panel fix end ===== */

/* ===== Final mobile drawer responsive typography fix start ===== */
@media (max-width: 1800px) {
  .site-header.is-nav-open .site-header__inner {
    position: relative;
    z-index: 5;
    width: min(86vw, 1280px);
    margin: 0 auto;
  }

  .site-header.is-nav-open .site-nav {
    position: fixed !important;
    inset: 0 !important;
    z-index: 4 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: clamp(140px, 15vh, 190px) 7vw 64px !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    overflow-y: auto;
    background: #050505 !important;
  }

  .site-header.is-nav-open .site-nav__list {
    width: min(86vw, 720px) !important;
    max-width: 720px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: clamp(18px, 3vh, 30px) !important;
    text-align: center !important;
  }

  .site-header.is-nav-open .site-nav__list li {
    width: 100%;
  }

  .site-header.is-nav-open .site-nav__list a {
    display: inline-block !important;
    max-width: 100%;
    color: #f7f4ee !important;
    font-family: var(--font-serif);
    font-size: clamp(22px, 3.2vw, 36px) !important;
    line-height: 1.45 !important;
    letter-spacing: 0.06em !important;
    white-space: normal !important;
    word-break: keep-all;
  }
}

@media (max-width: 900px) {
  .site-header.is-nav-open .site-nav {
    padding-top: 150px !important;
  }

  .site-header.is-nav-open .site-nav__list {
    width: min(82vw, 520px) !important;
    gap: 22px !important;
  }

  .site-header.is-nav-open .site-nav__list a {
    font-size: clamp(24px, 6.2vw, 34px) !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 520px) {
  .site-header.is-nav-open .site-nav {
    padding-top: 138px !important;
    padding-left: 8vw !important;
    padding-right: 8vw !important;
  }

  .site-header.is-nav-open .site-nav__list {
    width: 100% !important;
    gap: 18px !important;
  }

  .site-header.is-nav-open .site-nav__list a {
    font-size: clamp(21px, 6.4vw, 28px) !important;
    line-height: 1.5 !important;
    letter-spacing: 0.04em !important;
  }
}
/* ===== Final mobile drawer responsive typography fix end ===== */

/* ===== Mobile drawer close button refinement start ===== */
@media (max-width: 1800px) {
  .site-header.is-nav-open .site-nav-toggle {
    position: fixed !important;
    top: clamp(48px, 6vw, 82px);
    right: clamp(42px, 7vw, 110px);
    z-index: 30003 !important;
    display: inline-flex !important;
    align-items: center;
    gap: 18px;
    color: #f7f4ee !important;
  }

  .site-header.is-nav-open .site-nav-toggle__text {
    font-size: 0 !important;
    line-height: 1;
  }

  .site-header.is-nav-open .site-nav-toggle__text::after {
    content: "CLOSE";
    display: inline-block;
    font-family: var(--font-sans);
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.16em;
    color: #f7f4ee;
  }

  .site-header.is-nav-open .site-nav-toggle__icon {
    position: relative;
    width: 48px;
    height: 32px;
  }

  .site-header.is-nav-open .site-nav-toggle__line {
    position: absolute;
    left: 0;
    top: 50%;
    width: 48px;
    height: 2px;
    margin: 0 !important;
    background: #f7f4ee !important;
    transform-origin: center;
  }

  .site-header.is-nav-open .site-nav-toggle__line:nth-child(1) {
    transform: translateY(-50%) rotate(35deg);
  }

  .site-header.is-nav-open .site-nav-toggle__line:nth-child(2) {
    opacity: 0;
  }

  .site-header.is-nav-open .site-nav-toggle__line:nth-child(3) {
    transform: translateY(-50%) rotate(-35deg);
  }
}

@media (max-width: 700px) {
  .site-header.is-nav-open .site-nav-toggle {
    top: 52px;
    right: 34px;
    gap: 14px;
  }

  .site-header.is-nav-open .site-nav-toggle__text::after {
    font-size: 13px;
  }

  .site-header.is-nav-open .site-nav-toggle__icon,
  .site-header.is-nav-open .site-nav-toggle__line {
    width: 42px;
  }
}
/* ===== Mobile drawer close button refinement end ===== */

/* ===== Header logo width alignment start ===== */
@media (max-width: 1400px) {
  .site-branding {
    width: 260px;
  }

  .site-branding a,
  .site-branding__link {
    display: block;
    width: 100%;
  }

  .site-title,
  .site-branding__title,
  .site-branding__name {
    display: block;
    width: 100%;
    line-height: 1.25;
    letter-spacing: 0.18em;
    white-space: nowrap;
  }

  .site-description,
  .site-branding__description,
  .site-branding__tagline {
    display: block;
    width: 100%;
    margin-top: 8px;
    font-size: 15px;
    line-height: 1.35;
    letter-spacing: 0.045em;
    white-space: nowrap;
  }
}

@media (max-width: 700px) {
  .site-branding {
    width: 246px;
  }

  .site-title,
  .site-branding__title,
  .site-branding__name {
    letter-spacing: 0.17em;
  }

  .site-description,
  .site-branding__description,
  .site-branding__tagline {
    font-size: 14px;
    letter-spacing: 0.035em;
  }
}

@media (max-width: 420px) {
  .site-branding {
    width: 232px;
  }

  .site-description,
  .site-branding__description,
  .site-branding__tagline {
    font-size: 13px;
  }
}
/* ===== Header logo width alignment end ===== */

/* ===== Header actual brand width alignment start ===== */
@media (max-width: 1400px) {
  .site-header .site-brand {
    width: 286px !important;
  }

  .site-header .site-brand__name {
    display: block;
    width: 100%;
    font-size: 34px;
    line-height: 1.2;
    letter-spacing: 0.22em;
    white-space: nowrap;
  }

  .site-header .site-brand__tagline {
    display: block;
    width: 100%;
    margin-top: 10px;
    font-size: 15px;
    line-height: 1.35;
    letter-spacing: 0.05em;
    white-space: nowrap;
  }
}

@media (max-width: 700px) {
  .site-header .site-brand {
    width: 266px !important;
  }

  .site-header .site-brand__name {
    font-size: 31px;
    letter-spacing: 0.205em;
  }

  .site-header .site-brand__tagline {
    font-size: 14px;
    letter-spacing: 0.045em;
  }
}

@media (max-width: 420px) {
  .site-header .site-brand {
    width: 246px !important;
  }

  .site-header .site-brand__name {
    font-size: 29px;
    letter-spacing: 0.18em;
  }

  .site-header .site-brand__tagline {
    font-size: 13px;
    letter-spacing: 0.035em;
  }
}
/* ===== Header actual brand width alignment end ===== */

/* ===== Header compact brand name only start ===== */
@media (max-width: 1400px) {
  .site-header .site-brand {
    width: auto !important;
  }

  .site-header .site-brand__name {
    display: block !important;
    width: auto !important;
    font-size: 34px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.16em !important;
    white-space: nowrap !important;
  }

  .site-header .site-brand__tagline {
    display: none !important;
  }
}

@media (max-width: 700px) {
  .site-header .site-brand__name {
    font-size: 31px !important;
    letter-spacing: 0.15em !important;
  }
}

@media (max-width: 420px) {
  .site-header .site-brand__name {
    font-size: 29px !important;
    letter-spacing: 0.14em !important;
  }
}
/* ===== Header compact brand name only end ===== */

/* ===== Header brand tagline scroll only control start ===== */

/* 通常時：画面幅に関係なくタグラインを表示 */
.site-header:not(.is-scrolled):not(.is-compact):not(.is-nav-open) .site-brand__tagline {
  display: block !important;
}

/* スクロール後・コンパクト時・メニュー展開時だけタグラインを非表示 */
.site-header.is-scrolled .site-brand__tagline,
.site-header.is-compact .site-brand__tagline,
.site-header.is-nav-open .site-brand__tagline {
  display: none !important;
}

/* スクロール後はロゴ名だけで収まりよく */
.site-header.is-scrolled .site-brand__name,
.site-header.is-compact .site-brand__name {
  margin: 0 !important;
  line-height: 1.2 !important;
}

/* ===== Header brand tagline scroll only control end ===== */

/* ===== Header tablet / mobile brand balance final start ===== */

/* 通常時はタグラインを表示。スクロール後だけ非表示 */
.site-header:not(.is-scrolled):not(.is-compact):not(.is-nav-open) .site-brand__tagline {
  display: block !important;
}

.site-header.is-scrolled .site-brand__tagline,
.site-header.is-compact .site-brand__tagline,
.site-header.is-nav-open .site-brand__tagline {
  display: none !important;
}

/* Hamburger表示幅：ロゴを少し小さくする */
@media (max-width: 1400px) {
  .site-header .site-brand {
    width: auto !important;
    display: inline-block !important;
  }

  .site-header .site-brand__name {
    display: block !important;
    width: max-content !important;
    margin: 0 !important;
    font-size: 30px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.14em !important;
    white-space: nowrap !important;
  }

  .site-header .site-brand__tagline {
    display: block !important;
    width: max-content !important;
    margin-top: 8px !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    letter-spacing: 0.025em !important;
    white-space: nowrap !important;
    transform: scaleX(0.86);
    transform-origin: left center;
  }

  .site-header.is-scrolled .site-brand__tagline,
  .site-header.is-compact .site-brand__tagline,
  .site-header.is-nav-open .site-brand__tagline {
    display: none !important;
  }
}

/* タブレット縦〜SP横 */
@media (max-width: 900px) {
  .site-header .site-brand__name {
    font-size: 28px !important;
    letter-spacing: 0.13em !important;
  }

  .site-header .site-brand__tagline {
    font-size: 12px !important;
    letter-spacing: 0.02em !important;
    transform: scaleX(0.84);
  }
}

/* SP */
@media (max-width: 700px) {
  .site-header .site-brand__name {
    font-size: 26px !important;
    letter-spacing: 0.12em !important;
  }

  .site-header .site-brand__tagline {
    font-size: 11px !important;
    letter-spacing: 0.01em !important;
    transform: scaleX(0.84);
  }
}

/* 極小幅 */
@media (max-width: 420px) {
  .site-header .site-brand__name {
    font-size: 24px !important;
    letter-spacing: 0.11em !important;
  }

  .site-header .site-brand__tagline {
    font-size: 10.5px !important;
    transform: scaleX(0.84);
  }
}

/* ===== Header tablet / mobile brand balance final end ===== */

/* ===== Header brand final behavior start ===== */

/* 全幅共通：PC時のロゴバランスを維持 */
.site-header .site-brand {
  width: auto !important;
  display: inline-block !important;
}

.site-header .site-brand__name {
  display: block !important;
  width: max-content !important;
  margin: 0 !important;
  font-size: 34px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.16em !important;
  white-space: nowrap !important;
}

.site-header .site-brand__tagline {
  display: block !important;
  width: max-content !important;
  margin-top: 10px !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.02em !important;
  white-space: nowrap !important;
  transform: scaleX(0.86);
  transform-origin: left center;
}

/* ハンバーガー表示・メニュー展開時でもタグラインは表示 */
.site-header.is-nav-open .site-brand__tagline {
  display: block !important;
}

/* 縦スクロールでコンパクト化した時だけタグラインを非表示 */
.site-header.is-scrolled:not(.is-nav-open) .site-brand__tagline,
.site-header.is-compact:not(.is-nav-open) .site-brand__tagline {
  display: none !important;
}

/* スクロール後はロゴ名だけで収まりよく */
.site-header.is-scrolled .site-brand__name,
.site-header.is-compact .site-brand__name {
  margin: 0 !important;
  line-height: 1.2 !important;
}

/* 極端に狭いSPだけ、はみ出し防止でわずかに縮小 */
@media (max-width: 420px) {
  .site-header .site-brand__name {
    font-size: 30px !important;
  }

  .site-header .site-brand__tagline {
    font-size: 13px !important;
    transform: scaleX(0.86);
  }
}

/* ===== Header brand final behavior end ===== */

/* ===== Header final compact balance override start ===== */

/* PCロゴ：上段を少し小さくして、下段幅に近づける */
@media (min-width: 1401px) {
  .site-header .site-brand {
    width: auto !important;
    display: inline-block !important;
  }

  .site-header .site-brand__name {
    display: block !important;
    width: max-content !important;
    margin: 0 !important;
    font-size: 28px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.13em !important;
    white-space: nowrap !important;
  }

  .site-header .site-brand__tagline {
    display: block !important;
    width: max-content !important;
    margin-top: 7px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    letter-spacing: 0.025em !important;
    white-space: nowrap !important;
    transform: none !important;
  }
}

/* タブレット/SP：通常時の黒ヘッダーを詰める */
@media (max-width: 1400px) {
  .site-header:not(.is-nav-open) {
    height: auto !important;
    min-height: 0 !important;
  }

  .site-header:not(.is-nav-open) .site-header__inner {
    min-height: 0 !important;
    height: auto !important;
    padding-top: 26px !important;
    padding-bottom: 26px !important;
    align-items: center !important;
  }

  .site-header:not(.is-nav-open) .site-brand__name {
    font-size: 28px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.13em !important;
  }

  .site-header:not(.is-nav-open) .site-brand__tagline {
    display: block !important;
    margin-top: 6px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    letter-spacing: 0.02em !important;
    transform: none !important;
  }

  .site-header:not(.is-nav-open) .site-nav-toggle {
    top: auto !important;
    right: auto !important;
    position: relative !important;
  }
}

/* SP：上の空きをさらに詰める */
@media (max-width: 700px) {
  .site-header:not(.is-nav-open) .site-header__inner {
    padding-top: 22px !important;
    padding-bottom: 22px !important;
  }

  .site-header:not(.is-nav-open) .site-brand__name {
    font-size: 26px !important;
    letter-spacing: 0.12em !important;
  }

  .site-header:not(.is-nav-open) .site-brand__tagline {
    font-size: 11px !important;
    margin-top: 5px !important;
  }
}

/* スクロール後：黒ヘッダーを最小限に */
.site-header.is-scrolled:not(.is-nav-open),
.site-header.is-compact:not(.is-nav-open) {
  height: auto !important;
  min-height: 0 !important;
}

.site-header.is-scrolled:not(.is-nav-open) .site-header__inner,
.site-header.is-compact:not(.is-nav-open) .site-header__inner {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
  align-items: center !important;
}

.site-header.is-scrolled:not(.is-nav-open) .site-brand__tagline,
.site-header.is-compact:not(.is-nav-open) .site-brand__tagline {
  display: none !important;
}

.site-header.is-scrolled:not(.is-nav-open) .site-brand__name,
.site-header.is-compact:not(.is-nav-open) .site-brand__name {
  font-size: 24px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.12em !important;
}

/* SPのスクロール後はさらに圧縮 */
@media (max-width: 700px) {
  .site-header.is-scrolled:not(.is-nav-open) .site-header__inner,
  .site-header.is-compact:not(.is-nav-open) .site-header__inner {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  .site-header.is-scrolled:not(.is-nav-open) .site-brand__name,
  .site-header.is-compact:not(.is-nav-open) .site-brand__name {
    font-size: 23px !important;
  }
}

/* ===== Header final compact balance override end ===== */

/* ===== Header global height compact override start ===== */

/* PC / tablet / SP 共通：通常時のヘッダー縦幅を圧縮 */
.site-header:not(.is-nav-open) {
  height: auto !important;
  min-height: 0 !important;
}

.site-header:not(.is-nav-open) .site-header__inner {
  height: auto !important;
  min-height: 0 !important;
  padding-top: 24px !important;
  padding-bottom: 24px !important;
  align-items: center !important;
}

/* PC通常時のロゴバランス */
.site-header:not(.is-nav-open):not(.is-scrolled):not(.is-compact) .site-brand__name {
  font-size: 28px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.13em !important;
}

.site-header:not(.is-nav-open):not(.is-scrolled):not(.is-compact) .site-brand__tagline {
  display: block !important;
  margin-top: 6px !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.02em !important;
  transform: none !important;
}

/* スクロール後：さらに薄く */
.site-header.is-scrolled:not(.is-nav-open) .site-header__inner,
.site-header.is-compact:not(.is-nav-open) .site-header__inner {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

.site-header.is-scrolled:not(.is-nav-open) .site-brand__name,
.site-header.is-compact:not(.is-nav-open) .site-brand__name {
  font-size: 23px !important;
  line-height: 1.15 !important;
  letter-spacing: 0.12em !important;
}

.site-header.is-scrolled:not(.is-nav-open) .site-brand__tagline,
.site-header.is-compact:not(.is-nav-open) .site-brand__tagline {
  display: none !important;
}

/* タブレット */
@media (max-width: 1400px) {
  .site-header:not(.is-nav-open) .site-header__inner {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  .site-header:not(.is-nav-open):not(.is-scrolled):not(.is-compact) .site-brand__name {
    font-size: 27px !important;
  }

  .site-header:not(.is-nav-open):not(.is-scrolled):not(.is-compact) .site-brand__tagline {
    font-size: 11.5px !important;
    margin-top: 5px !important;
  }

  .site-header.is-scrolled:not(.is-nav-open) .site-header__inner,
  .site-header.is-compact:not(.is-nav-open) .site-header__inner {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
}

/* SP */
@media (max-width: 700px) {
  .site-header:not(.is-nav-open) .site-header__inner {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  .site-header:not(.is-nav-open):not(.is-scrolled):not(.is-compact) .site-brand__name {
    font-size: 25px !important;
    letter-spacing: 0.12em !important;
  }

  .site-header:not(.is-nav-open):not(.is-scrolled):not(.is-compact) .site-brand__tagline {
    font-size: 11px !important;
    margin-top: 5px !important;
  }

  .site-header.is-scrolled:not(.is-nav-open) .site-header__inner,
  .site-header.is-compact:not(.is-nav-open) .site-header__inner {
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }

  .site-header.is-scrolled:not(.is-nav-open) .site-brand__name,
  .site-header.is-compact:not(.is-nav-open) .site-brand__name {
    font-size: 21px !important;
  }

  .site-header.is-scrolled:not(.is-nav-open) .site-nav-toggle,
  .site-header.is-compact:not(.is-nav-open) .site-nav-toggle {
    transform: scale(0.86);
    transform-origin: right center;
  }
}

/* ===== Header global height compact override end ===== */

/* ===== Footer brand align with header brand start ===== */
.site-footer .site-brand,
.site-footer .site-brand--footer {
  width: auto !important;
  display: inline-block !important;
  color: #f7f4ee !important;
}

.site-footer .site-brand__name,
.site-footer .site-brand--footer .site-brand__name {
  display: block !important;
  width: max-content !important;
  margin: 0 !important;
  font-size: 28px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.13em !important;
  white-space: nowrap !important;
  color: #f7f4ee !important;
}

.site-footer .site-brand__tagline,
.site-footer .site-brand--footer .site-brand__tagline {
  display: block !important;
  width: max-content !important;
  margin-top: 7px !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.025em !important;
  white-space: nowrap !important;
  color: rgba(247, 244, 238, 0.78) !important;
  transform: none !important;
}

@media (max-width: 700px) {
  .site-footer .site-brand__name,
  .site-footer .site-brand--footer .site-brand__name {
    font-size: 26px !important;
    letter-spacing: 0.12em !important;
  }

  .site-footer .site-brand__tagline,
  .site-footer .site-brand--footer .site-brand__tagline {
    font-size: 11px !important;
    margin-top: 6px !important;
  }
}
/* ===== Footer brand align with header brand end ===== */

/* ===== Footer actual brand align with header start ===== */
.site-footer .footer-brand {
  width: auto !important;
  display: inline-block !important;
  color: #f7f4ee !important;
  text-decoration: none !important;
}

.site-footer .footer-brand__name {
  display: block !important;
  width: max-content !important;
  margin: 0 !important;
  font-size: 28px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.13em !important;
  white-space: nowrap !important;
  color: #f7f4ee !important;
}

.site-footer .footer-brand__tagline {
  display: block !important;
  width: max-content !important;
  margin-top: 6px !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.02em !important;
  white-space: nowrap !important;
  color: rgba(247, 244, 238, 0.78) !important;
  transform: none !important;
}

@media (max-width: 700px) {
  .site-footer .footer-brand__name {
    font-size: 26px !important;
    letter-spacing: 0.12em !important;
  }

  .site-footer .footer-brand__tagline {
    font-size: 11px !important;
    margin-top: 5px !important;
  }
}
/* ===== Footer actual brand align with header end ===== */

/* ===== Final content polish 20260910 start ===== */

/* 1. Top FV overlay: slightly lighter */
.front-visual__panel::after {
  background:
    linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.34) 0%,
      rgba(0, 0, 0, 0.22) 46%,
      rgba(0, 0, 0, 0.10) 100%
    ) !important;
}

.front-visual__panel::before {
  filter: brightness(0.93) contrast(1.03) !important;
}

/* 3,4. About quote and temporary signature */
.about-timeline__quote p {
  max-width: 620px;
  line-height: 1.72 !important;
}

.about-timeline__signature {
  display: block;
  width: clamp(132px, 14vw, 190px);
  height: auto;
  margin: 28px 0 0 auto;
  opacity: 0.86;
}

.about-timeline__quote span {
  display: none !important;
}

/* 5. News archive heading size */
.news-archive__head h2 {
  font-size: clamp(30px, 3.2vw, 46px) !important;
  line-height: 1.45 !important;
  letter-spacing: 0.08em !important;
}

/* 7. Contact intro heading readability */
.contact-body__intro h2 {
  font-size: clamp(28px, 3.1vw, 42px) !important;
  line-height: 1.72 !important;
  letter-spacing: 0.08em !important;
}

@media (max-width: 700px) {
  .about-timeline__quote p {
    line-height: 1.68 !important;
  }

  .about-timeline__signature {
    width: 140px;
    margin-top: 18px;
  }

  .news-archive__head h2 {
    font-size: 28px !important;
    line-height: 1.55 !important;
  }

  .contact-body__intro h2 {
    font-size: 28px !important;
    line-height: 1.65 !important;
  }
}

/* ===== Final content polish 20260910 end ===== */

/* ===== About quote desktop line break fix start ===== */
@media (min-width: 901px) {
  .about-timeline__quote p {
    max-width: 720px !important;
    font-size: clamp(28px, 2vw, 36px) !important;
    line-height: 1.72 !important;
    letter-spacing: 0.055em !important;
  }

  .about-quote-nowrap {
    display: inline !important;
    white-space: nowrap;
  }
}

@media (max-width: 900px) {
  .about-quote-nowrap {
    display: inline !important;
    white-space: normal;
  }
}
/* ===== About quote desktop line break fix end ===== */

/* ===== Privacy and about final text polish start ===== */

/* Privacy policy page heading */
.privacy-policy h1,
.privacy-policy .entry-title,
body.privacy-policy .wp-block-post-title {
  font-size: clamp(42px, 5.2vw, 72px) !important;
  line-height: 1.35 !important;
  letter-spacing: 0.08em !important;
}

/* About quote readability */
.about-timeline__quote p {
  max-width: 760px !important;
  font-size: clamp(28px, 1.9vw, 34px) !important;
  line-height: 1.75 !important;
  letter-spacing: 0.04em !important;
}

.about-timeline__signature {
  display: block;
  width: clamp(132px, 14vw, 190px);
  height: auto;
  margin: 28px 0 0 auto;
  opacity: 0.86;
}

@media (max-width: 700px) {
  .privacy-policy h1,
  .privacy-policy .entry-title,
  body.privacy-policy .wp-block-post-title {
    font-size: 36px !important;
    line-height: 1.45 !important;
  }

  .about-timeline__quote p {
    font-size: 20px !important;
    line-height: 1.82 !important;
  }

  .about-timeline__signature {
    width: 140px;
    margin-top: 18px;
  }
}

/* ===== Privacy and about final text polish end ===== */

/* ===== Works single navigation, carousel and hero final polish start ===== */

/* 2,3. 作品詳細の戻り導線 */
.works-single-return-nav {
  background: #050505;
  color: #f7f4ee;
  padding: clamp(24px, 3.2vw, 44px) clamp(28px, 6vw, 120px) 0;
}

.works-single-return-nav__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 28px;
  align-items: center;
  max-width: 1680px;
  margin: 0 auto;
}

.works-single-return-nav__link {
  display: inline-flex;
  align-items: center;
  color: rgba(247, 244, 238, 0.82);
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-bottom: 1px solid rgba(247, 244, 238, 0.28);
  padding-bottom: 4px;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.works-single-return-nav__link:hover {
  color: #fff;
  border-color: rgba(247, 244, 238, 0.76);
}

.works-single-return-nav__link--all {
  color: rgba(247, 244, 238, 0.62);
}

/* 1. 関連作品を横スクロール型カルーセルに */
.works-single-related__grid,
.works-single-related .works-grid,
.works-single-related .works-list {
  display: flex !important;
  gap: clamp(22px, 2.4vw, 36px) !important;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  padding-bottom: 24px;
}

.works-single-related__grid > *,
.works-single-related .works-grid > *,
.works-single-related .works-list > * {
  flex: 0 0 clamp(280px, 29vw, 430px);
  scroll-snap-align: start;
}

.works-single-related__grid::-webkit-scrollbar,
.works-single-related .works-grid::-webkit-scrollbar,
.works-single-related .works-list::-webkit-scrollbar {
  height: 6px;
}

.works-single-related__grid::-webkit-scrollbar-track,
.works-single-related .works-grid::-webkit-scrollbar-track,
.works-single-related .works-list::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.08);
}

.works-single-related__grid::-webkit-scrollbar-thumb,
.works-single-related .works-grid::-webkit-scrollbar-thumb,
.works-single-related .works-list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.34);
}

/* 4. CTA上の余白を確保 */
.single-works .works-single-related + .works-single-cta,
.single-works .works-single-related + .works-contact-cta,
.single-works .works-single-related + .contact-cta,
.single-works .works-single-cta,
.single-works .works-contact-cta {
  margin-top: clamp(72px, 8vw, 128px) !important;
}

/* 5. 作品詳細ヒーローの高さを画像比率に左右されないよう固定 */
.works-single-hero {
  min-height: 0 !important;
  height: clamp(440px, 48vw, 620px) !important;
}

.works-single-hero__image,
.works-single-hero__visual,
.works-single-hero__media {
  height: 100% !important;
}

.works-single-hero img,
.works-single-hero__image img,
.works-single-hero__visual img,
.works-single-hero__media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* タブレット */
@media (max-width: 1100px) {
  .works-single-hero {
    height: clamp(400px, 56vw, 540px) !important;
  }

  .works-single-related__grid > *,
  .works-single-related .works-grid > *,
  .works-single-related .works-list > * {
    flex-basis: clamp(260px, 42vw, 380px);
  }
}

/* SP */
@media (max-width: 700px) {
  .works-single-return-nav {
    padding: 22px 28px 0;
  }

  .works-single-return-nav__inner {
    display: grid;
    gap: 12px;
  }

  .works-single-return-nav__link {
    font-size: 12px;
  }

  .works-single-hero {
    height: 420px !important;
  }

  .works-single-related__grid,
  .works-single-related .works-grid,
  .works-single-related .works-list {
    gap: 18px !important;
    padding-bottom: 18px;
  }

  .works-single-related__grid > *,
  .works-single-related .works-grid > *,
  .works-single-related .works-list > * {
    flex-basis: 78vw;
  }

  .single-works .works-single-cta,
  .single-works .works-contact-cta {
    margin-top: 72px !important;
  }
}

/* ===== Works single navigation, carousel and hero final polish end ===== */

/* ===== Works related navigation rethink start ===== */

/* ヒーロー直下に残っていた戻り導線は使わない */
.works-single-return-nav {
  display: none !important;
}

/* 関連作品セクション内に導線を集約 */
.works-single-related__subnav {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-top: 18px;
  margin-bottom: 28px;
}

.works-single-related__subnav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
}

.works-single-related__subnav-links a {
  color: rgba(247, 244, 238, 0.74);
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-bottom: 1px solid rgba(247, 244, 238, 0.28);
  padding-bottom: 4px;
}

.works-single-related__subnav-links a:hover {
  color: #fff;
  border-color: rgba(247, 244, 238, 0.74);
}

.works-single-related__scroll-hint {
  margin: 0;
  color: rgba(247, 244, 238, 0.46);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.12em;
  white-space: nowrap;
}

/* カルーセル感を出す。Macではネイティブスクロールバーが隠れるため下線も併用 */
.works-single-related__grid,
.works-single-related .works-grid,
.works-single-related .works-list {
  padding-bottom: 34px !important;
  border-bottom: 1px solid rgba(247, 244, 238, 0.16);
  scrollbar-width: thin;
  scrollbar-color: rgba(247, 244, 238, 0.42) rgba(247, 244, 238, 0.10);
}

.works-single-related__grid::-webkit-scrollbar,
.works-single-related .works-grid::-webkit-scrollbar,
.works-single-related .works-list::-webkit-scrollbar {
  height: 7px;
}

.works-single-related__grid::-webkit-scrollbar-track,
.works-single-related .works-grid::-webkit-scrollbar-track,
.works-single-related .works-list::-webkit-scrollbar-track {
  background: rgba(247, 244, 238, 0.10);
}

.works-single-related__grid::-webkit-scrollbar-thumb,
.works-single-related .works-grid::-webkit-scrollbar-thumb,
.works-single-related .works-list::-webkit-scrollbar-thumb {
  background: rgba(247, 244, 238, 0.42);
  border-radius: 999px;
}

/* CTA上の余白を明確に広げる */
.works-single-related {
  margin-bottom: clamp(88px, 9vw, 150px) !important;
  padding-bottom: clamp(72px, 7vw, 120px) !important;
}

.single-works .works-single-related + * {
  margin-top: clamp(64px, 7vw, 112px) !important;
}

@media (max-width: 700px) {
  .works-single-related__subnav {
    display: block;
    margin-top: 16px;
    margin-bottom: 24px;
  }

  .works-single-related__subnav-links {
    margin-bottom: 14px;
  }

  .works-single-related__subnav-links a {
    font-size: 12px;
  }

  .works-single-related__scroll-hint {
    font-size: 10px;
    white-space: normal;
  }

  .works-single-related {
    margin-bottom: 76px !important;
    padding-bottom: 72px !important;
  }
}

/* ===== Works related navigation rethink end ===== */

/* ===== Works related more card and CTA spacing start ===== */

/* 関連作品の補助案内を控えめに */
.works-single-related__subnav {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
  margin-bottom: 26px;
}

.works-single-related__subnav-links {
  display: none !important;
}

.works-single-related__scroll-hint {
  color: rgba(247, 244, 238, 0.46);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.12em;
}

/* 5件 + Moreカード */
.works-related-more-card {
  flex: 0 0 clamp(280px, 29vw, 430px);
  min-height: clamp(300px, 31vw, 460px);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(28px, 3vw, 44px);
  color: #f7f4ee;
  text-decoration: none;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02)),
    #111;
  border: 1px solid rgba(247, 244, 238, 0.22);
  transition: border-color 0.22s ease, transform 0.22s ease, background 0.22s ease;
}

.works-related-more-card:hover {
  border-color: rgba(247, 244, 238, 0.58);
  transform: translateY(-3px);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.03)),
    #151515;
}

.works-related-more-card__label {
  display: block;
  margin-bottom: 18px;
  color: rgba(247, 244, 238, 0.52);
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.works-related-more-card__title {
  display: block;
  font-size: clamp(22px, 2vw, 32px);
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.works-related-more-card__arrow {
  display: block;
  margin-top: 28px;
  font-size: 22px;
  line-height: 1;
}

/* CTA上下の余白を均等に */
.single-works .works-single-related {
  margin-bottom: 0 !important;
  padding-bottom: clamp(88px, 8vw, 136px) !important;
}

.single-works .works-single-contact {
  margin-top: 0 !important;
  margin-bottom: clamp(88px, 8vw, 136px) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* カードタイトルの左端欠け対策 */
.works-card h2,
.works-card h3,
.works-card__title,
.works-card-title {
  overflow: visible !important;
  text-indent: 0 !important;
  padding-left: 0.04em;
}

@media (max-width: 700px) {
  .works-single-related__subnav {
    justify-content: flex-start;
    margin-top: 12px;
    margin-bottom: 22px;
  }

  .works-related-more-card {
    flex-basis: 78vw;
    min-height: 300px;
    padding: 28px;
  }

  .works-related-more-card__title {
    font-size: 24px;
  }

  .single-works .works-single-related {
    padding-bottom: 76px !important;
  }

  .single-works .works-single-contact {
    margin-bottom: 76px !important;
  }
}

/* ===== Works related more card and CTA spacing end ===== */

/* ===== Works related more card visual match and CTA spacing start ===== */

/* CTA上下を一覧ページの呼吸感に寄せる */
.single-works .works-single-related {
  padding-bottom: clamp(96px, 9vw, 150px) !important;
  margin-bottom: 0 !important;
}

.single-works .works-single-contact {
  margin-top: 0 !important;
  margin-bottom: clamp(96px, 9vw, 150px) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Moreカードを通常の作品カードに寄せる */
.works-related-more-card {
  flex: 0 0 clamp(280px, 29vw, 430px) !important;
  scroll-snap-align: start;
  display: block !important;
  min-height: 0 !important;
  padding: 0 !important;
  color: #f7f4ee !important;
  text-decoration: none !important;
  background: #101010 !important;
  border: 0 !important;
  transform: none !important;
  transition: opacity 0.24s ease, transform 0.24s ease !important;
}

.works-related-more-card:hover {
  opacity: 0.84;
  transform: translateY(-2px) !important;
}

.works-related-more-card__visual {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background:
    radial-gradient(circle at 72% 28%, rgba(247, 244, 238, 0.12), transparent 34%),
    linear-gradient(135deg, rgba(247, 244, 238, 0.08), rgba(247, 244, 238, 0.02)),
    #181818;
  border: 1px solid rgba(247, 244, 238, 0.16);
}

.works-related-more-card__visual::after {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(247, 244, 238, 0.16);
  pointer-events: none;
}

.works-related-more-card__more {
  position: absolute;
  left: clamp(22px, 2.2vw, 34px);
  bottom: clamp(24px, 2.4vw, 38px);
  color: rgba(247, 244, 238, 0.58);
  font-family: inherit;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.24em;
}

.works-related-more-card__arrow {
  position: absolute;
  right: clamp(22px, 2.2vw, 34px);
  bottom: clamp(22px, 2.4vw, 36px);
  color: rgba(247, 244, 238, 0.72);
  font-size: 22px;
  line-height: 1;
}

.works-related-more-card__body {
  display: block;
  padding-top: 26px;
}

.works-related-more-card__category {
  display: block;
  margin-bottom: 18px;
  color: rgba(247, 244, 238, 0.48);
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.works-related-more-card__title {
  display: block;
  color: #f7f4ee;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
  font-size: clamp(24px, 1.9vw, 32px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.08em;
}

.works-related-more-card__meta {
  display: block;
  margin-top: 18px;
  color: rgba(247, 244, 238, 0.52);
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

/* 関連作品カードの左端欠けを強めに補正 */
.works-single-related .works-card,
.works-single-related .works-card * {
  overflow: visible;
}

.works-single-related .works-card__title,
.works-single-related .works-card h2,
.works-single-related .works-card h3 {
  padding-left: 0.08em !important;
  text-indent: 0 !important;
}

@media (max-width: 700px) {
  .single-works .works-single-related {
    padding-bottom: 84px !important;
  }

  .single-works .works-single-contact {
    margin-bottom: 84px !important;
  }

  .works-related-more-card {
    flex-basis: 78vw !important;
  }

  .works-related-more-card__body {
    padding-top: 22px;
  }

  .works-related-more-card__title {
    font-size: 24px;
  }
}

/* ===== Works related more card visual match and CTA spacing end ===== */

/* ===== Works related more card quiet refinement start ===== */

/* Moreカードを通常の作品カードにさらに寄せる */
.works-related-more-card {
  background: #111 !important;
  border: none !important;
}

/* 上部ビジュアル面を控えめに */
.works-related-more-card__visual {
  aspect-ratio: 4 / 3;
  background:
    linear-gradient(135deg, rgba(247, 244, 238, 0.055), rgba(247, 244, 238, 0.015)),
    #161616 !important;
  border: none !important;
}

/* 内側の二重罫線は削除 */
.works-related-more-card__visual::after {
  display: none !important;
}

/* MORE表記は通常カードのカテゴリ表記に近い控えめさへ */
.works-related-more-card__more {
  left: 0 !important;
  bottom: 0 !important;
  padding: 0 0 24px 0;
  color: rgba(247, 244, 238, 0.46) !important;
  font-size: 12px !important;
  letter-spacing: 0.2em !important;
}

/* 矢印も控えめに */
.works-related-more-card__arrow {
  right: 0 !important;
  bottom: 24px !important;
  color: rgba(247, 244, 238, 0.58) !important;
  font-size: 20px !important;
}

/* 本文側を通常カードの情報設計に近づける */
.works-related-more-card__body {
  padding-top: 26px !important;
  background: #050505 !important;
}

.works-related-more-card__category {
  margin-bottom: 16px !important;
  color: rgba(247, 244, 238, 0.42) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

.works-related-more-card__title {
  font-size: clamp(22px, 1.65vw, 28px) !important;
  line-height: 1.55 !important;
  letter-spacing: 0.075em !important;
}

.works-related-more-card__meta {
  margin-top: 16px !important;
  color: rgba(247, 244, 238, 0.5) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

/* hoverも通常カード程度に抑える */
.works-related-more-card:hover {
  opacity: 0.86 !important;
  transform: none !important;
}

@media (max-width: 700px) {
  .works-related-more-card__title {
    font-size: 23px !important;
  }
}

/* ===== Works related more card quiet refinement end ===== */

/* ===== Works single related and CTA hard final fix start ===== */

/* 1. CTA上下余白を一覧ページに近いバランスへ */
.single-works .works-single-contact {
  margin: 0 !important;
  padding: clamp(104px, 9vw, 160px) clamp(28px, 5vw, 96px) !important;
  background: #050505 !important;
}

.single-works .works-single-contact__inner {
  margin: 0 auto !important;
}

/* 関連作品側の下余白はCTAと干渉しないよう整理 */
.single-works .works-single-related {
  margin-bottom: 0 !important;
  padding-bottom: clamp(88px, 8vw, 132px) !important;
}

/* 2. 関連作品カードの画像比率を固定。縦長・横長で崩れないようにする */
.single-works .works-single-related__grid > * {
  position: relative !important;
  isolation: isolate !important;
  contain: paint !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.single-works .works-single-related__grid figure,
.single-works .works-single-related__grid picture,
.single-works .works-single-related__grid .works-card__image,
.single-works .works-single-related__grid .works-card__thumb,
.single-works .works-single-related__grid .works-card__media,
.single-works .works-single-related__grid .card__media {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  overflow: hidden !important;
  background: #111 !important;
}

.single-works .works-single-related__grid img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
}

/* 3. Moreカードのhover干渉・はみ出し・浮き上がりを停止 */
.single-works .works-related-more-card {
  position: relative !important;
  z-index: 0 !important;
  isolation: isolate !important;
  contain: paint !important;
  overflow: hidden !important;
  transform: none !important;
  opacity: 1 !important;
  background: #101010 !important;
}

.single-works .works-related-more-card:hover,
.single-works .works-related-more-card:focus,
.single-works .works-related-more-card:focus-visible {
  z-index: 0 !important;
  transform: none !important;
  opacity: 1 !important;
}

.single-works .works-related-more-card *,
.single-works .works-related-more-card *::before,
.single-works .works-related-more-card *::after {
  transform: none !important;
}

.single-works .works-related-more-card__visual {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  overflow: hidden !important;
  background:
    linear-gradient(135deg, rgba(247, 244, 238, 0.045), rgba(247, 244, 238, 0.012)),
    #161616 !important;
}

.single-works .works-related-more-card__visual::before,
.single-works .works-related-more-card__visual::after {
  display: none !important;
}

.single-works .works-related-more-card__more,
.single-works .works-related-more-card__arrow {
  position: absolute !important;
  transform: none !important;
}

.single-works .works-related-more-card__body {
  background: #050505 !important;
}

/* Moreタイトルは明朝体・通常カード寄せ */
.single-works .works-related-more-card__title {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif !important;
  font-size: clamp(22px, 1.6vw, 28px) !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.075em !important;
}

@media (max-width: 700px) {
  .single-works .works-single-contact {
    padding-top: 84px !important;
    padding-bottom: 84px !important;
  }

  .single-works .works-single-related {
    padding-bottom: 76px !important;
  }
}

/* ===== Works single related and CTA hard final fix end ===== */

/* ===== Works related card media height unify start ===== */

/* 関連作品カルーセル内の各カード幅を統一 */
.single-works .works-single-related__grid > * {
  flex: 0 0 clamp(320px, 29vw, 430px) !important;
  box-sizing: border-box !important;
}

/* 通常カードの画像エリアを固定 */
.single-works .works-single-related__grid .works-card,
.single-works .works-single-related__grid .works-card a {
  display: block !important;
  width: 100% !important;
}

.single-works .works-single-related__grid .works-card__image,
.single-works .works-single-related__grid .works-card__thumb,
.single-works .works-single-related__grid .works-card__media,
.single-works .works-single-related__grid figure,
.single-works .works-single-related__grid picture {
  display: block !important;
  width: 100% !important;
  height: clamp(220px, 21vw, 330px) !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
  background: #111 !important;
}

/* 通常カード画像 */
.single-works .works-single-related__grid .works-card img,
.single-works .works-single-related__grid figure img,
.single-works .works-single-related__grid picture img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Moreカードの上部も通常カード画像と完全に同じ高さにする */
.single-works .works-related-more-card__visual {
  display: block !important;
  width: 100% !important;
  height: clamp(220px, 21vw, 330px) !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
}

/* Moreカードの本文位置も通常カードに寄せる */
.single-works .works-related-more-card__body {
  padding-top: 24px !important;
}

/* 横スクロール時に隣カードと重ならないようにする */
.single-works .works-single-related__grid {
  gap: clamp(28px, 3vw, 44px) !important;
  align-items: flex-start !important;
}

/* SP */
@media (max-width: 700px) {
  .single-works .works-single-related__grid > * {
    flex-basis: 78vw !important;
  }

  .single-works .works-single-related__grid .works-card__image,
  .single-works .works-single-related__grid .works-card__thumb,
  .single-works .works-single-related__grid .works-card__media,
  .single-works .works-single-related__grid figure,
  .single-works .works-single-related__grid picture,
  .single-works .works-related-more-card__visual {
    height: 58vw !important;
    max-height: 320px !important;
  }
}

/* ===== Works related card media height unify end ===== */

/* ===== Works related more card text size final align start ===== */

/* Moreカード全体を通常カードの情報量に合わせる */
.single-works .works-related-more-card {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* 上部ビジュアルは通常カード画像と同じ高さに固定 */
.single-works .works-related-more-card__visual {
  display: block !important;
  width: 100% !important;
  height: clamp(220px, 21vw, 330px) !important;
  aspect-ratio: auto !important;
  background:
    linear-gradient(135deg, rgba(247, 244, 238, 0.045), rgba(247, 244, 238, 0.012)),
    #161616 !important;
}

/* MORE表示は控えめに */
.single-works .works-related-more-card__more {
  left: 0 !important;
  bottom: 0 !important;
  padding: 0 0 24px 0 !important;
  font-size: 11px !important;
  line-height: 1 !important;
  letter-spacing: 0.22em !important;
  color: rgba(247, 244, 238, 0.45) !important;
}

.single-works .works-related-more-card__arrow {
  right: 0 !important;
  bottom: 23px !important;
  font-size: 18px !important;
  color: rgba(247, 244, 238, 0.55) !important;
}

/* 下部テキストを通常作品カードに合わせる */
.single-works .works-related-more-card__body {
  display: block !important;
  padding-top: 24px !important;
  background: transparent !important;
}

.single-works .works-related-more-card__category {
  display: block !important;
  margin: 0 0 18px !important;
  color: rgba(247, 244, 238, 0.42) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.06em !important;
}

.single-works .works-related-more-card__title {
  display: block !important;
  color: #f7f4ee !important;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif !important;
  font-size: clamp(24px, 1.45vw, 30px) !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.06em !important;
}

.single-works .works-related-more-card__meta {
  display: block !important;
  margin-top: 18px !important;
  color: rgba(247, 244, 238, 0.52) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  letter-spacing: 0.04em !important;
}

/* hoverで隣カードに影響しないように完全固定 */
.single-works .works-related-more-card,
.single-works .works-related-more-card:hover,
.single-works .works-related-more-card:focus {
  transform: none !important;
  opacity: 1 !important;
  z-index: 0 !important;
}

/* SP */
@media (max-width: 700px) {
  .single-works .works-related-more-card__visual {
    height: 58vw !important;
    max-height: 320px !important;
  }

  .single-works .works-related-more-card__title {
    font-size: 24px !important;
  }

  .single-works .works-related-more-card__category,
  .single-works .works-related-more-card__meta {
    font-size: 13px !important;
  }
}

/* ===== Works related more card text size final align end ===== */

/* ===== Works related card exact final interaction start ===== */

/* 関連作品：通常カードとMoreカードの幅を統一 */
.single-works .works-single-related__grid > .works-card,
.single-works .works-single-related__grid > .works-related-more-card {
  flex: 0 0 clamp(320px, 29vw, 430px) !important;
  box-sizing: border-box !important;
}

/* 通常カード画像とMore上部の高さを完全一致 */
.single-works .works-single-related .works-card__image,
.single-works .works-related-more-card__visual {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: clamp(220px, 21vw, 330px) !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #151515 !important;
}

/* 通常画像の収まり */
.single-works .works-single-related .works-card__image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: scale(1) !important;
  transition:
    transform 0.7s ease,
    filter 0.7s ease,
    opacity 0.45s ease !important;
}

/* 通常画像のホバーアクション */
.single-works .works-single-related .works-card__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(247, 244, 238, 0.10);
  opacity: 0;
  transition: opacity 0.45s ease;
  pointer-events: none;
}

.single-works .works-single-related .works-card__link:hover .works-card__image img,
.single-works .works-single-related .works-card__link:focus-visible .works-card__image img {
  transform: scale(1.045) !important;
  filter: brightness(1.08) contrast(1.04) !important;
}

.single-works .works-single-related .works-card__link:hover .works-card__image::after,
.single-works .works-single-related .works-card__link:focus-visible .works-card__image::after {
  opacity: 1;
}

/* More上部：MOREと矢印を縦横センターに */
.single-works .works-related-more-card__visual {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 18px !important;
  background:
    radial-gradient(circle at 50% 45%, rgba(247, 244, 238, 0.08), transparent 42%),
    linear-gradient(135deg, rgba(247, 244, 238, 0.045), rgba(247, 244, 238, 0.012)),
    #161616 !important;
  transition:
    background 0.45s ease,
    opacity 0.45s ease !important;
}

/* 既存のabsolute指定を解除 */
.single-works .works-related-more-card__more,
.single-works .works-related-more-card__arrow {
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  padding: 0 !important;
  margin: 0 !important;
}

.single-works .works-related-more-card__more {
  color: rgba(247, 244, 238, 0.54) !important;
  font-size: 12px !important;
  line-height: 1 !important;
  letter-spacing: 0.24em !important;
  transition:
    color 0.35s ease,
    letter-spacing 0.35s ease !important;
}

.single-works .works-related-more-card__arrow {
  color: rgba(247, 244, 238, 0.58) !important;
  font-size: 20px !important;
  line-height: 1 !important;
  transition:
    color 0.35s ease,
    transform 0.35s ease !important;
}

/* Moreホバーアクション */
.single-works .works-related-more-card:hover .works-related-more-card__visual,
.single-works .works-related-more-card:focus-visible .works-related-more-card__visual {
  background:
    radial-gradient(circle at 50% 45%, rgba(247, 244, 238, 0.14), transparent 44%),
    linear-gradient(135deg, rgba(247, 244, 238, 0.075), rgba(247, 244, 238, 0.018)),
    #1a1a1a !important;
}

.single-works .works-related-more-card:hover .works-related-more-card__more,
.single-works .works-related-more-card:focus-visible .works-related-more-card__more {
  color: rgba(247, 244, 238, 0.9) !important;
  letter-spacing: 0.30em !important;
}

.single-works .works-related-more-card:hover .works-related-more-card__arrow,
.single-works .works-related-more-card:focus-visible .works-related-more-card__arrow {
  color: rgba(247, 244, 238, 0.9) !important;
  transform: translateX(7px) !important;
}

/* More下部テキストを通常カードに近づける */
.single-works .works-related-more-card__body {
  padding-top: 24px !important;
  background: transparent !important;
}

.single-works .works-related-more-card__title {
  font-size: clamp(24px, 1.45vw, 30px) !important;
  line-height: 1.5 !important;
  letter-spacing: 0.06em !important;
}

/* SP */
@media (max-width: 700px) {
  .single-works .works-single-related .works-card__image,
  .single-works .works-related-more-card__visual {
    height: 58vw !important;
    max-height: 320px !important;
  }
}

/* ===== Works related card exact final interaction end ===== */

/* ===== Works related text alignment final start ===== */

/* 関連作品内：通常カードとMoreカードの本文余白を統一 */
.single-works .works-single-related .works-card__body,
.single-works .works-related-more-card__body {
  display: block !important;
  padding-top: 24px !important;
  background: transparent !important;
}

/* カテゴリ表記を統一 */
.single-works .works-single-related .works-card__category,
.single-works .works-related-more-card__category {
  display: block !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  color: rgba(247, 244, 238, 0.42) !important;
  font-family: inherit !important;
  font-size: clamp(13px, 0.72vw, 14px) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.06em !important;
}

/* タイトル表記を統一 */
.single-works .works-single-related .works-card__title,
.single-works .works-related-more-card__title {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #f7f4ee !important;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif !important;
  font-size: clamp(24px, 1.45vw, 30px) !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.06em !important;
}

/* 用途・補足テキストを統一 */
.single-works .works-single-related .works-card__purpose,
.single-works .works-related-more-card__meta {
  display: block !important;
  margin: 18px 0 0 !important;
  padding: 0 !important;
  color: rgba(247, 244, 238, 0.52) !important;
  font-family: inherit !important;
  font-size: clamp(13px, 0.72vw, 14px) !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.04em !important;
}

/* Moreカードだけ下部テキストが大きくならないよう固定 */
.single-works .works-related-more-card__body * {
  box-sizing: border-box !important;
}

/* タブレット/SPでも同じ見え方に寄せる */
@media (max-width: 900px) {
  .single-works .works-single-related .works-card__body,
  .single-works .works-related-more-card__body {
    padding-top: 22px !important;
  }

  .single-works .works-single-related .works-card__category,
  .single-works .works-related-more-card__category {
    margin-bottom: 16px !important;
    font-size: 13px !important;
  }

  .single-works .works-single-related .works-card__title,
  .single-works .works-related-more-card__title {
    font-size: 24px !important;
    line-height: 1.48 !important;
  }

  .single-works .works-single-related .works-card__purpose,
  .single-works .works-related-more-card__meta {
    margin-top: 16px !important;
    font-size: 13px !important;
  }
}

/* ===== Works related text alignment final end ===== */

/* ===== Footer map link start ===== */
.site-footer .footer-map-link {
  display: inline-block;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.site-footer .footer-map-link:hover {
  opacity: 0.72;
}

.site-footer .footer-map-link:focus-visible {
  outline: 1px solid rgba(247, 244, 238, 0.7);
  outline-offset: 4px;
}
/* ===== Footer map link end ===== */

/* ===== Footer address Google Maps link final start ===== */
.site-footer a.footer-map-link,
.site-footer .footer-map-link {
  display: inline-block !important;
  color: inherit !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

.site-footer a.footer-map-link:hover {
  opacity: 0.72 !important;
}

.site-footer a.footer-map-link:focus-visible {
  outline: 1px solid rgba(247, 244, 238, 0.7) !important;
  outline-offset: 4px !important;
}
/* ===== Footer address Google Maps link final end ===== */

/* ===== Contact form badge production fix start ===== */
.contact-page .required,
.contact-page .optional,
.contact-body .required,
.contact-body .optional,
.wpcf7-form .required,
.wpcf7-form .optional {
  display: inline-block !important;
  margin-left: 10px !important;
  padding: 2px 7px !important;
  border: 1px solid rgba(176, 62, 48, 0.28) !important;
  color: #b03e30 !important;
  background: rgba(176, 62, 48, 0.045) !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  vertical-align: middle !important;
}

.contact-page .optional,
.contact-body .optional,
.wpcf7-form .optional {
  border-color: rgba(80, 80, 80, 0.22) !important;
  color: rgba(40, 40, 40, 0.58) !important;
  background: rgba(80, 80, 80, 0.035) !important;
}
/* ===== Contact form badge production fix end ===== */

/* ===== Contact form label and field spacing fix start ===== */

/* ラベル文字と入力欄の間隔を確保 */
.contact-page .wpcf7-form label {
  display: block !important;
}

/* Contact Form 7 の入力ラッパーをブロック化して下へ離す */
.contact-page .wpcf7-form .wpcf7-form-control-wrap {
  display: block !important;
  margin-top: 16px !important;
}

/* 入力欄自体の余計な上詰まりを整理 */
.contact-page .wpcf7-form input[type="text"],
.contact-page .wpcf7-form input[type="email"],
.contact-page .wpcf7-form input[type="tel"],
.contact-page .wpcf7-form select,
.contact-page .wpcf7-form textarea {
  margin-top: 0 !important;
}

/* 項目同士の縦間隔も少し整える */
.contact-page .contact-form-grid {
  row-gap: clamp(44px, 4vw, 64px) !important;
}

/* セレクト・テキストエリア前も同じ呼吸感にする */
.contact-page .wpcf7-form > label {
  margin-top: clamp(34px, 3vw, 48px) !important;
}

.contact-page .wpcf7-form .contact-form-grid + label {
  margin-top: clamp(44px, 4vw, 64px) !important;
}

@media (max-width: 700px) {
  .contact-page .wpcf7-form .wpcf7-form-control-wrap {
    margin-top: 12px !important;
  }

  .contact-page .contact-form-grid {
    row-gap: 34px !important;
  }

  .contact-page .wpcf7-form > label {
    margin-top: 34px !important;
  }
}

/* ===== Contact form label and field spacing fix end ===== */

/* ===== Shooting page item SVG icons start ===== */

.shooting-info-card__icon,
.shooting-flow-card__icon,
.shooting-price-list__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(28, 28, 28, 0.58);
}

.shooting-info-card__icon {
  width: 28px;
  height: 28px;
  margin-bottom: 22px;
}

.shooting-flow-card__icon {
  width: 30px;
  height: 30px;
  margin: 0 0 28px;
  opacity: 0.8;
}

.shooting-price-list__icon {
  width: 22px;
  height: 22px;
  min-width: 22px;
  margin-right: 12px;
  opacity: 0.72;
}

.shooting-info-card__icon svg,
.shooting-flow-card__icon svg,
.shooting-price-list__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.shooting-info-card__icon svg path,
.shooting-flow-card__icon svg path,
.shooting-price-list__icon svg path {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* 料金リストをアイコン付きで整える */
.shooting-price-box__list li {
  display: flex;
  align-items: center;
  gap: 0;
}

/* flowカードは番号→アイコン→見出しの順で見せる */
.shooting-flow-card > span:first-child {
  display: block;
  margin-bottom: 34px;
}

@media (max-width: 700px) {
  .shooting-info-card__icon {
    width: 26px;
    height: 26px;
    margin-bottom: 18px;
  }

  .shooting-flow-card__icon {
    width: 28px;
    height: 28px;
    margin-bottom: 22px;
  }

  .shooting-price-list__icon {
    width: 20px;
    height: 20px;
    min-width: 20px;
    margin-right: 10px;
  }
}

/* ===== Shooting page item SVG icons end ===== */

/* ===== Shooting page item layout final adjust start ===== */

/* 撮影の基本情報：各カード内でアイコンを左右中央へ */
.shooting-info-card__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  margin: 0 auto 32px !important;
  color: rgba(28, 28, 28, 0.56) !important;
  opacity: 0.92 !important;
}

.shooting-info-card__icon svg {
  display: block !important;
  width: 46px !important;
  height: 46px !important;
}

/* 基本情報カード内のアイコン線画 */
.shooting-info-card__icon svg path,
.shooting-info-card__icon svg circle,
.shooting-info-card__icon svg rect,
.shooting-info-card__icon svg line,
.shooting-info-card__icon svg polyline {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.55 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* お見積りに関わる主な項目：2列 × 3行に戻す */
.shooting-price-box__list ul {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: 68px !important;
  row-gap: 0 !important;
}

.shooting-price-box__list li {
  display: flex !important;
  align-items: center !important;
  min-height: 58px !important;
  padding: 0 !important;
}

.shooting-price-list__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  margin-right: 14px !important;
  color: rgba(28, 28, 28, 0.55) !important;
  opacity: 0.9 !important;
}

.shooting-price-list__icon svg {
  display: block !important;
  width: 26px !important;
  height: 26px !important;
}

.shooting-price-list__icon svg path,
.shooting-price-list__icon svg circle,
.shooting-price-list__icon svg rect,
.shooting-price-list__icon svg line,
.shooting-price-list__icon svg polyline {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.55 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* ご依頼の流れ：左寄せのままサイズを大きめに維持 */
.shooting-flow-card__icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  margin: 0 0 34px 0 !important;
  color: rgba(28, 28, 28, 0.56) !important;
  opacity: 0.92 !important;
}

.shooting-flow-card__icon svg {
  display: block !important;
  width: 48px !important;
  height: 48px !important;
}

.shooting-flow-card__icon svg path,
.shooting-flow-card__icon svg circle,
.shooting-flow-card__icon svg rect,
.shooting-flow-card__icon svg line,
.shooting-flow-card__icon svg polyline {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.55 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.shooting-flow-card > span:first-child {
  display: block !important;
  margin-bottom: 34px !important;
}

/* SPでは1列に戻す */
@media (max-width: 700px) {
  .shooting-info-card__icon {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    margin-bottom: 24px !important;
  }

  .shooting-info-card__icon svg {
    width: 40px !important;
    height: 40px !important;
  }

  .shooting-price-box__list ul {
    grid-template-columns: 1fr !important;
    column-gap: 0 !important;
  }

  .shooting-price-list__icon {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    margin-right: 12px !important;
  }

  .shooting-price-list__icon svg {
    width: 22px !important;
    height: 22px !important;
  }

  .shooting-flow-card__icon {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    margin-bottom: 26px !important;
  }

  .shooting-flow-card__icon svg {
    width: 42px !important;
    height: 42px !important;
  }

  .shooting-flow-card > span:first-child {
    margin-bottom: 24px !important;
  }
}

/* ===== Shooting page item layout final adjust end ===== */

/* ===== About quote span visibility fix ===== */
.about-timeline__quote .about-quote-nowrap {
  display: inline !important;
}

@media (min-width: 901px) {
  .about-timeline__quote .about-quote-nowrap {
    white-space: nowrap;
  }
}

@media (max-width: 900px) {
  .about-timeline__quote .about-quote-nowrap {
    white-space: normal;
  }
}
/* ===== About quote span visibility fix end ===== */

/* ===== About quote text final override ===== */
.about-timeline__quote .about-quote-nowrap {
  display: inline !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  margin-top: 0 !important;
}
/* ===== About quote text final override end ===== */

/* ===== About quote layout restore ===== */
.about-timeline__quote .about-quote-nowrap {
  white-space: normal !important;
}
/* ===== About quote layout restore end ===== */

/* ===== About quote final typography ===== */
.about-timeline__quote p {
  font-size: clamp(26px, 1.65vw, 30px) !important;
  line-height: 1.8 !important;
  letter-spacing: 0.035em !important;
}

@media (max-width: 700px) {
  .about-timeline__quote p {
    font-size: 20px !important;
    line-height: 1.8 !important;
  }
}
/* ===== About quote final typography end ===== */

/* ===== About quote final natural layout ===== */
.about-timeline__quote p {
  max-width: 760px !important;
  font-size: clamp(23px, 1.4vw, 26px) !important;
  line-height: 1.9 !important;
  letter-spacing: 0.03em !important;
}

@media (max-width: 700px) {
  .about-timeline__quote p {
    font-size: 19px !important;
    line-height: 1.85 !important;
  }
}
/* ===== About quote final natural layout end ===== */

/* ===== Works single flexible detail final ===== */

/* 撮影について */
.works-single-story__content {
  max-width: 1180px;
  margin: 36px auto 0;
  border-top: 1px solid var(--color-line);
}

.works-single-story__row {
  display: grid;
  grid-template-columns: minmax(180px, 0.32fr) minmax(0, 0.68fr);
  gap: clamp(40px, 6vw, 96px);
  padding: 36px 0;
  border-bottom: 1px solid var(--color-line);
}

.works-single-story__row-heading {
  min-width: 0;
}

.works-single-story__eyebrow {
  margin: 0 0 10px !important;
  color: #888 !important;
  font-family: var(--font-sans);
  font-size: 11px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.works-single-story__row-heading h3 {
  margin: 0;
  color: #202020;
  font-family: var(--font-serif);
  font-size: clamp(19px, 1.6vw, 24px);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.works-single-story__body {
  max-width: 820px;
}

.works-single-story__body p,
.works-single-story__legacy p {
  margin: 0 0 1.3em;
  color: #4f4f4f !important;
  font-size: 15px !important;
  line-height: 2.05 !important;
}

.works-single-story__body p:last-child,
.works-single-story__legacy p:last-child {
  margin-bottom: 0;
}

.works-single-story__legacy {
  max-width: 820px;
  margin: 36px auto 0;
}


/* 掲載写真 */
.works-single-gallery__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 56px 24px !important;
  align-items: start;
}

.works-single-gallery__grid--single {
  grid-template-columns: minmax(0, 1fr) !important;
  max-width: 900px !important;
  margin-inline: auto !important;
}

.works-single-gallery__item {
  display: block !important;
  margin: 0 !important;
}

.works-single-gallery__visual {
  overflow: visible !important;
  background: transparent !important;
}

.works-single-gallery__grid .works-single-gallery__item img,
.works-single-gallery__item img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

.works-single-gallery__caption {
  max-width: 42em;
  margin-top: 14px;
  color: rgba(247, 244, 238, 0.7) !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
}

.works-single-gallery__caption p {
  margin: 0 0 0.8em;
}

.works-single-gallery__caption p:last-child {
  margin-bottom: 0;
}

.works-single-gallery__number {
  display: block;
  margin-bottom: 8px !important;
  color: rgba(247, 244, 238, 0.9) !important;
  font-size: 11px !important;
  line-height: 1.4;
  letter-spacing: 0.14em;
}


/* 制作情報 */
.works-production-grid {
  grid-template-columns:
    repeat(auto-fit, minmax(180px, 1fr)) !important;
}


@media (max-width: 700px) {

  .works-single-story__content {
    margin-top: 28px;
  }

  .works-single-story__row {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 28px 0;
  }

  .works-single-story__body p,
  .works-single-story__legacy p {
    font-size: 14px !important;
    line-height: 1.95 !important;
  }

  .works-single-gallery__grid {
    grid-template-columns: 1fr !important;
    gap: 46px !important;
  }

  .works-single-gallery__caption {
    margin-top: 12px;
    font-size: 13px !important;
  }

  .works-production-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Works single flexible detail final end ===== */

/* ===== Works gallery row stretch fix ===== */
.works-single-gallery__grid {
  align-content: start !important;
  grid-auto-rows: max-content !important;
}

.works-single-gallery__item {
  align-self: start !important;
  height: auto !important;
}
/* ===== Works gallery row stretch fix end ===== */

/* ===== Works gallery flex layout final ===== */
.works-single-gallery__grid {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  align-content: flex-start !important;
  gap: 56px 24px !important;
}

.works-single-gallery__grid .works-single-gallery__item {
  flex: 0 0 calc(50% - 12px) !important;
  width: calc(50% - 12px) !important;
  height: auto !important;
  min-height: 0 !important;
  align-self: flex-start !important;
}

.works-single-gallery__grid--single {
  display: block !important;
  max-width: 900px !important;
  margin-inline: auto !important;
}

.works-single-gallery__grid--single .works-single-gallery__item {
  width: 100% !important;
  max-width: 900px !important;
}

.works-single-gallery__visual {
  height: auto !important;
  min-height: 0 !important;
}

.works-single-gallery__visual img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

@media (max-width: 700px) {
  .works-single-gallery__grid {
    gap: 46px !important;
  }

  .works-single-gallery__grid .works-single-gallery__item {
    flex: 0 0 100% !important;
    width: 100% !important;
  }
}
/* ===== Works gallery flex layout final end ===== */

/* ===== Works gallery equal image height FINAL ===== */
.works-single-gallery .works-single-gallery__grid .works-single-gallery__item {
  display: flex !important;
  flex-direction: column !important;
}

.works-single-gallery .works-single-gallery__grid .works-single-gallery__visual {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 2 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  overflow: hidden !important;
  background: #050505 !important;
}

.works-single-gallery .works-single-gallery__grid .works-single-gallery__visual > img {
  display: block !important;

  width: auto !important;
  height: 100% !important;

  max-width: 100% !important;
  max-height: 100% !important;

  aspect-ratio: auto !important;
  object-fit: contain !important;
}

/* SPでは写真本来の縦横比で表示 */
@media (max-width: 700px) {
  .works-single-gallery .works-single-gallery__grid .works-single-gallery__visual {
    aspect-ratio: auto !important;
  }

  .works-single-gallery .works-single-gallery__grid .works-single-gallery__visual > img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
  }
}
/* ===== Works gallery equal image height FINAL end ===== */



/* ===== Works gallery caption spacing final ===== */
.works-single-gallery__caption .works-single-gallery__number {
  margin-bottom: 6px !important;
}

.works-single-gallery__caption p {
  margin-top: 0 !important;
}
/* ===== Works gallery caption spacing final end ===== */

/* ===== Works gallery automatic numbering final ===== */

/* 各写真の自動番号 */
.works-single-gallery__photo-number {
  display: block;
  margin-top: 10px;
  color: rgba(247, 244, 238, 0.9);
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 0.14em;
}

/* 説明文 */
.works-single-gallery__caption {
  margin-top: 6px !important;
}

/* 1-4など複数写真共通の説明対象 */
.works-single-gallery__caption-target {
  display: block;
  margin-bottom: 6px;
  color: rgba(247, 244, 238, 0.62);
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.works-single-gallery__caption p {
  margin-top: 0 !important;
}

/* ===== Works gallery automatic numbering final end ===== */


/* ===== Works story typography final ===== */

/*
 * DOCX由来で複数のpに分かれた文章でも、
 * 見た目の行間・段落間隔を揃える。
 */
.works-single-story__body p,
.works-single-story__legacy p {
  margin: 0 !important;
  color: #4f4f4f !important;
  font-size: 15px !important;
  line-height: 2.05 !important;
}

.works-single-story__body p + p,
.works-single-story__legacy p + p {
  margin-top: 0.55em !important;
}

@media (max-width: 700px) {
  .works-single-story__body p,
  .works-single-story__legacy p {
    font-size: 14px !important;
    line-height: 1.95 !important;
  }

  .works-single-story__body p + p,
  .works-single-story__legacy p + p {
    margin-top: 0.5em !important;
  }
}

/* ===== Works story typography final end ===== */


/* ===== Works taxonomy title final ===== */

.works-taxonomy-page .works-hero__title {
  margin: 0 !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(42px, 5vw, 68px) !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.08em !important;
  word-break: keep-all;
  overflow-wrap: normal;
}

@media (max-width: 900px) {
  .works-taxonomy-page .works-hero__title {
    font-size: clamp(36px, 8vw, 52px) !important;
  }
}

@media (max-width: 700px) {
  .works-taxonomy-page .works-hero__title {
    font-size: clamp(32px, 9vw, 44px) !important;
    line-height: 1.3 !important;
    letter-spacing: 0.06em !important;
  }
}

/* ===== Works taxonomy title final end ===== */


/* ===== Works single breadcrumb final ===== */

/* パンくず内にカテゴリがあるため、単独カテゴリ表示は非表示 */
.works-single .works-single-hero__category {
  display: none !important;
}

/* PC */
@media (min-width: 1181px) {
  .works-single .works-single-breadcrumb {
    position: absolute !important;
    top: auto !important;
    bottom: 28px !important;
    left: 5vw !important;
    margin: 0 !important;
    z-index: 3;
  }
}

/* Tablet */
@media (min-width: 701px) and (max-width: 1180px) {
  .works-single .works-single-breadcrumb {
    position: absolute !important;
    top: auto !important;
    bottom: 24px !important;
    left: 6vw !important;
    margin: 0 !important;
    z-index: 3;
  }
}

/* SP */
@media (max-width: 700px) {
  .works-single .works-single-breadcrumb {
    position: static !important;
    margin: 0 0 24px !important;
  }
}

/* ===== Works single breadcrumb final end ===== */


/* ===== Works single hero layout FINAL ===== */

/* 共通 */
.works-single .works-single-breadcrumb {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  margin: 0 0 28px !important;
}

.works-single .works-single-hero__category {
  display: none !important;
}

.works-single .works-single-hero__title,
.works-single .works-single-hero__spec {
  position: static !important;
  transform: none !important;
}

/* PC：従来の左右2カラムを維持 */
@media (min-width: 1181px) {
  .works-single .works-single-hero {
    display: grid !important;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr) !important;
    min-height: 540px !important;
    height: auto !important;
  }

  .works-single .works-single-hero__content {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-height: 540px !important;
    height: auto !important;
    padding: 72px 5vw !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .works-single .works-single-hero__image {
    min-height: 540px !important;
    height: auto !important;
  }
}

/* Tablet：画像 → 黒い情報ブロック */
@media (min-width: 701px) and (max-width: 1180px) {
  .works-single .works-single-hero {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }

  .works-single .works-single-hero__image {
    order: -1 !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
    flex: 0 0 auto !important;
  }

  .works-single .works-single-hero__image img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .works-single .works-single-hero__content {
    order: 0 !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 46px 6vw 54px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    flex: 0 0 auto !important;
  }

  .works-single .works-single-breadcrumb {
    margin-bottom: 26px !important;
  }
}

/* SP */
@media (max-width: 700px) {
  .works-single .works-single-hero {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }

  .works-single .works-single-hero__image {
    order: -1 !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3 !important;
    flex: 0 0 auto !important;
  }

  .works-single .works-single-hero__image img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .works-single .works-single-hero__content {
    order: 0 !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 36px 6vw 44px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    flex: 0 0 auto !important;
  }

  .works-single .works-single-breadcrumb {
    margin-bottom: 22px !important;
  }
}

/* ===== Works single hero layout FINAL end ===== */


/* ===== SP navigation final refinement ===== */

@media (max-width: 700px) {

  /* メニュー展開時は「たとり直樹」のみ */
  .site-header.is-nav-open .site-brand__tagline {
    display: none !important;
  }

  .site-header.is-nav-open .site-brand__name {
    font-size: 24px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.12em !important;
  }

  /* CLOSEアイコンを明確な X に */
  .site-header.is-nav-open .site-nav-toggle__icon {
    position: relative !important;
    width: 34px !important;
    height: 34px !important;
  }

  .site-header.is-nav-open .site-nav-toggle__line {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 30px !important;
    margin: 0 !important;
    transform-origin: center !important;
  }

  .site-header.is-nav-open .site-nav-toggle__line:first-child {
    transform: translate(-50%, -50%) rotate(45deg) !important;
  }

  .site-header.is-nav-open .site-nav-toggle__line:last-child {
    transform: translate(-50%, -50%) rotate(-45deg) !important;
  }
}

/* ===== SP navigation final refinement end ===== */


/* ===== Studio CTA title refinement ===== */
.studio-contact-cta h2 {
  font-size: clamp(26px, 2.6vw, 36px) !important;
  line-height: 1.5 !important;
  letter-spacing: 0.05em !important;
}

@media (max-width: 700px) {
  .studio-contact-cta h2 {
    font-size: clamp(22px, 6vw, 28px) !important;
  }
}
/* ===== Studio CTA title refinement end ===== */


/* ===== Business intro before areas 20260930 ===== */
.business-areas__intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(36px, 5vw, 72px);
  max-width: 1120px;
  margin: 0 0 64px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(32, 32, 32, 0.14);
}

.business-areas__intro p {
  margin: 0;
  color: #4f4f4f;
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

.business-areas__intro strong {
  display: block;
  margin-bottom: 14px;
  color: #202020;
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

@media (max-width: 700px) {
  .business-areas__intro {
    grid-template-columns: 1fr;
    gap: 36px;
    margin-bottom: 48px;
    padding-bottom: 44px;
  }

  .business-areas__intro p {
    font-size: 14px;
    line-height: 1.95;
  }

  .business-areas__intro strong {
    font-size: 19px;
  }
}
/* ===== Business intro before areas 20260930 end ===== */


/* ===== About books & exhibitions 20260930 ===== */

.about-featured {
  padding: 96px 0;
  background: #fff;
  color: #202020;
}

.about-featured__inner {
  width: min(86vw, 1280px);
  margin: 0 auto;
}

.about-featured__head {
  margin-bottom: 56px;
}

.about-featured__head h2 {
  margin: 10px 0 0;
  font-family: var(--font-serif);
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.about-featured__group + .about-featured__group {
  margin-top: 72px;
  padding-top: 72px;
  border-top: 1px solid rgba(32, 32, 32, 0.14);
}

.about-featured__group-title {
  margin: 0 0 28px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.about-featured__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.about-feature-card {
  display: block;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(32, 32, 32, 0.12);
  background: #f7f4ee;
  color: #202020;
  text-decoration: none;
}

a.about-feature-card {
  transition:
    transform 0.35s ease,
    border-color 0.35s ease;
}

a.about-feature-card:hover {
  transform: translateY(-4px);
  border-color: rgba(32, 32, 32, 0.3);
}

.about-feature-card__image {
  margin: 0;
  overflow: hidden;
  background: #111;
}

.about-feature-card__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform 0.7s ease;
}

a.about-feature-card:hover .about-feature-card__image img {
  transform: scale(1.025);
}

.about-feature-card__body {
  padding: 26px 28px 30px;
}

.about-feature-card__meta {
  margin: 0 0 12px;
  color: #777;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.about-feature-card h4 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(23px, 2vw, 30px);
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.06em;
}

.about-feature-card__text {
  margin: 16px 0 0;
  color: #555;
  font-size: 14px;
  line-height: 1.9;
}

.about-feature-card__link {
  display: block;
  margin-top: 20px;
  font-size: 13px;
  letter-spacing: 0.08em;
}

@media (max-width: 900px) {
  .about-featured {
    padding: 72px 0;
  }

  .about-featured__grid {
    grid-template-columns: 1fr;
  }

  .about-featured__group + .about-featured__group {
    margin-top: 56px;
    padding-top: 56px;
  }
}

@media (max-width: 700px) {
  .about-featured {
    padding: 60px 0;
  }

  .about-featured__head {
    margin-bottom: 42px;
  }

  .about-feature-card__body {
    padding: 22px 22px 26px;
  }

  .about-feature-card__image img {
    aspect-ratio: 4 / 3;
  }
}

/* ===== About books & exhibitions 20260930 end ===== */


/* ===== Navigation open state final 20260930 ===== */

.site-header.is-nav-open .site-brand__tagline {
  display: none !important;
  visibility: hidden !important;
}

.site-header.is-nav-open .site-brand__name {
  font-size: 24px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.12em !important;
}

.site-header.is-nav-open .site-nav-toggle__icon {
  position: relative !important;
  display: block !important;
  width: 32px !important;
  height: 32px !important;
}

.site-header.is-nav-open .site-nav-toggle__line {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 28px !important;
  height: 1.5px !important;
  margin: 0 !important;
  transform-origin: center !important;
}

.site-header.is-nav-open .site-nav-toggle__line:nth-child(1) {
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

.site-header.is-nav-open .site-nav-toggle__line:nth-child(2) {
  display: none !important;
}

.site-header.is-nav-open .site-nav-toggle__line:nth-child(3) {
  transform: translate(-50%, -50%) rotate(-45deg) !important;
}

/* ===== Navigation open state final end ===== */


/* ===== About featured image natural ratio on stacked layout ===== */
@media (max-width: 900px) {
  .about-feature-card__image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
  }
}
/* ===== About featured image natural ratio end ===== */


/* ===== Front FV copy responsive refinement 20260930 ===== */

/* Tablet */
@media (min-width: 701px) and (max-width: 1180px) {
  .front-visual__copy {
    font-size: clamp(42px, 4.8vw, 52px) !important;
    line-height: 1.4 !important;
    letter-spacing: 0.05em !important;
    white-space: nowrap;
  }
}

/* SP */
@media (max-width: 700px) {
  .front-visual__copy {
    font-size: clamp(32px, 8.5vw, 38px) !important;
    line-height: 1.45 !important;
    letter-spacing: 0.04em !important;
    white-space: nowrap;
  }
}

/* very small SP */
@media (max-width: 390px) {
  .front-visual__copy {
    font-size: 30px !important;
  }
}

/* ===== Front FV copy responsive refinement end ===== */


/* ===== Front About profile image 20261001 ===== */
.front-about__profile-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  object-position: center center;
}

@media (max-width: 900px) {
  .front-about__profile-image {
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 5;
  }
}


/* ===== Front visual three CTA 20261007 ===== */
.front-visual__buttons {
  flex-wrap: wrap;
}

@media (max-width: 640px) {
  .front-visual__buttons {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  .front-visual__buttons .button-primary,
  .front-visual__buttons .button-outline {
    display: flex !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }
}
/* ===== Front visual three CTA 20261007 end ===== */


/* ===== Shooting price spacing after info removal 20261007 ===== */
.shooting-price-section {
  padding-top: clamp(110px, 9vw, 140px) !important;
}

@media (max-width: 700px) {
  .shooting-price-section {
    padding-top: 80px !important;
  }
}
/* ===== Shooting price spacing after info removal 20261007 end ===== */

/* ===== News single main image natural ratio 20261007 ===== */
.news-single-main-image {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
  height: auto !important;
}

.news-single-main-image img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: calc(100vh - 190px) !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

@media (max-width: 700px) {
  .news-single-main-image img {
    max-height: 72vh !important;
  }
}
/* ===== News single main image natural ratio 20261007 end ===== */
