﻿:root {
    /* Color */
    --color-primary: #1b57b2;
    --color-secondary: #779bd2;
    --color-primary-dark: #003984;
    --color-text: #000000;
    --color-text-strong: #080808;
    --color-text-muted: #bcbcbc;
    --color-bg: #ffffff;
    --color-bg-soft: #fafcff;
    --color-surface-overlay: rgba(236, 243, 253, 0.76);
    --color-border: #1b57b2;
    --color-border-soft: #779bd2;

    /* Typography */
    --font-family-base: "Zen Antique Soft", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    --font-family-ja: "Zen Antique Soft", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;
    --font-family-display: "Zen Antique Soft", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;

    --font-size-base: 16px;
    --line-height-base: 1.625;

    --font-size-xs: 14px;
    --font-size-sm: 16px;
    --font-size-md: 18px;
    --font-size-lg: 20px;
    --font-size-xl: 24px;
    --font-size-2xl: 30px;
    --font-size-3xl: 36px;
    --font-size-4xl: 40px;
    --font-size-hero: 90px;
    --font-size-display: 130px;

    --line-height-tight: 1.2;
    --line-height-heading: 1.4;
    --line-height-loose: 1.8;

    /* Spacing */
    --space-0: 0;
    --space-1: 8px;
    --space-2: 16px;
    --space-3: 24px;
    --space-4: 32px;
    --space-5: 40px;
    --space-6: 48px;
    --space-7: 56px;
    --space-8: 64px;
    --space-9: 72px;
    --space-10: 80px;

    /* Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 18px;
    --radius-pill: 36.5px;

    /* Shadow */
    --shadow-none: none;

    /* Layout */
    --container-max-width: 1100px;
    --container-padding-inline: 20px;
    --container-padding-inline-lg: 40px;
    --frame-desktop-width: 1920px;

    /* Breakpoints */
    --breakpoint-md: 768px;
    --breakpoint-xl: 1200px;
}

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

* {
    margin: 0;
}

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

body {
    min-height: 100vh;
    color: var(--color-text);
    background-color: var(--color-bg);
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    text-rendering: optimizeLegibility;
    margin-top: -26px;
}

html {
    margin-top: 0 !important;
}

body.admin-bar {
    margin-top: 0 !important;
}

#wpadminbar {
    position: fixed;
    top: 0;
}

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

main {
    display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 400;
    line-height: var(--line-height-heading);
    overflow-wrap: anywhere;
}

h1 {
    font-size: var(--font-size-3xl);
}

h2 {
    font-size: var(--font-size-2xl);
}

h3 {
    font-size: var(--font-size-xl);
}

p,
li,
dt,
dd,
figcaption {
    overflow-wrap: anywhere;
}

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

a:hover,
a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

img,
svg,
video {
    display: block;
    max-width: 100%;
    height: auto;
}

ul,
ol {
    padding-left: 1.5em;
}

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

.container {
    width: 100%;
    max-width: calc(var(--container-max-width) + (var(--container-padding-inline) * 2));
    margin-inline: auto;
    padding-inline: var(--container-padding-inline);
}

.site-main > section {
    padding-block: var(--space-8);
}

/* Scroll Reveal */
.is-reveal-ready {
    opacity: 0;
    transform: translate3d(0, 26px, 0);
    transition: opacity 0.7s ease, transform 0.7s ease;
    will-change: opacity, transform;
}

.is-reveal-ready.is-reveal-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
    .is-reveal-ready,
    .is-reveal-ready.is-reveal-visible {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Header / Global Nav */
.l-header {
    position: relative;
    z-index: 1000;
    background: linear-gradient(180deg, #003984 0%, #0a4aa2 100%);
}

.l-header__bar {
    min-height: 71px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    width: 100%;
    max-width: var(--frame-desktop-width);
    margin-inline: auto;
}

.l-header__brand {
    margin: 0;
}

.l-header__brand-link {
    display: inline-flex;
    align-items: center;
}

.l-header__brand-logo {
    width: min(150px, 42vw);
}

.l-header__toggle {
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-bg);
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    position: relative;
    z-index: 1001;
}

.l-header__toggle-line {
    width: 24px;
    height: 2px;
    background: currentColor;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.l-header__toggle[aria-expanded="true"] .l-header__toggle-line:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.l-header__toggle[aria-expanded="true"] .l-header__toggle-line:nth-child(2) {
    opacity: 0;
}

.l-header__toggle[aria-expanded="true"] .l-header__toggle-line:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

.l-header__overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 998;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.l-header__nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100dvh;
    min-height: 100dvh;
    max-height: 100dvh;
    overflow: auto;
    padding: 33px 23px 8px 23px;
    background: var(--color-surface-overlay);
    z-index: 999;
    border-right: 0;
    font-family: var(--font-family-display);
    color: var(--color-text);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

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

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

.l-header__toggle[aria-expanded="true"] {
    position: fixed;
    top: 14px;
    right: 16px;
    z-index: 1002;
}

.l-header__nav-head {
    margin: 0;
}

.l-header__nav-logo img {
    width: 216px;
    max-width: 100%;
}

.l-header__nav-mark {
    display: none;
}

.l-header__menu {
    list-style: none;
    padding: 0;
    margin: 10px 0 0 20px;
    display: grid;
    gap: 0;
    font-family: var(--font-family-display);
    font-size: 16px;
    line-height: 36px;
}

.l-header__menu a {
    color: var(--color-text);
    letter-spacing: 0;
    text-decoration: none;
    display: block;
    position: relative;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.l-header__menu > li > a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -20px;
    width: 12px;
    height: 13px;
    transform: translateY(-50%);
    background: url("../images/nav_arrow.png") center / contain no-repeat;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.l-header__menu a:hover,
.l-header__menu a:focus-visible {
    text-decoration: none;
}

.l-header__menu > li.current-menu-item > a::before,
.l-header__menu > li.current_page_item > a::before,
.l-header__menu > li:hover > a::before,
.l-header__menu > li:focus-within > a::before {
    opacity: 1;
}

.l-header__menu > li.current-menu-item > a,
.l-header__menu > li.current_page_item > a,
.l-header__menu > li:hover > a,
.l-header__menu > li:focus-within > a {
    color: #0f2c56;
}

.l-header__menu > li.menu-item-contact > a,
.l-header__menu > li a[href*="/contact"],
.l-header__menu > li:last-child > a {
    margin-top: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 202px;
    min-height: 48px;
    padding: 0 20px;
    background: var(--color-primary);
    color: var(--color-bg);
    font-family: var(--font-family-base);
    font-size: 16px;
    line-height: 1;
    border-radius: 0;
}

.l-header__menu > li.menu-item-contact > a::before,
.l-header__menu > li a[href*="/contact"]::before,
.l-header__menu > li:last-child > a::before {
    display: block;
    position: static;
    width: 18px;
    height: 18px;
    margin-right: 10px;
    opacity: 1;
    background: url("../images/nav_contact_icon.svg") center / contain no-repeat;
    transform: none;
}

/* Hero */
.hero {
    --hero-title-max-width: 960px;
    --hero-text-max-width: 892px;

    background-color: var(--color-bg);
}

.site-main > .hero {
    padding-block: 0;
    margin-top: 0;
}

.hero__media {
    width: 100%;
    max-width: var(--frame-desktop-width);
    margin-inline: auto;
}

.hero__image {
    width: 100%;
    aspect-ratio: 1400 / 786;
    object-fit: cover;
}

.hero__video {
    width: 100%;
    aspect-ratio: 1400 / 786;
    object-fit: cover;
}

.hero__inner {
    padding-top: 36px;
    padding-bottom: 56px;
    text-align: center;
}

.hero__title {
    margin: 0;
    font-family: var(--font-family-display);
    font-size: clamp(1.375rem, 6vw, 2.25rem);
    line-height: 1.5;
    color: var(--color-text);
}

.hero__text {
    max-width: 40rem;
    margin: 18px auto 0;
    font-family: var(--font-family-base);
    font-size: clamp(0.95rem, 2.4vw, 1.25rem);
    line-height: 1.7;
    color: var(--color-text);
}

.hero__text br {
    display: none;
}

/* Sub MV (About) */
.submv {
    --submv-height-sp: 260px;
    --submv-height-pc: 366px;

    background: #fff;
}

.site-main > .submv {
    padding-block: 0;
}

.submv__visual {
    position: relative;
    height: var(--submv-height-sp);
    max-width: var(--frame-desktop-width);
    margin-inline: auto;
    overflow: hidden;
}

.submv__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.86);
}

.submv__overlay {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    text-align: center;
    color: #fff;
}

.submv__title {
    font-family: var(--font-family-display);
    font-size: 30px;
    line-height: 1.2;
}

.is-reason-page .submv__title-break {
    display: block;
}

.submv__subtitle {
    margin-top: 8px;
    font-family: var(--font-family-display);
    font-size: 16px;
    line-height: 1;
}

/* Price Fee */
.price-fee {
    background: #f6f9ff;
}

.site-main > .price-fee {
    padding-block: 0;
}

.price-fee__inner {
    max-width: var(--frame-desktop-width);
    text-align: center;
    min-height: 0;
    padding-top: 110px;
    padding-bottom: 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.price-fee__title {
    position: relative;
    display: inline-block;
    width: 252px;
    z-index: 1;
    font-family: var(--font-family-display);
    font-size: 32px;
    line-height: normal;
    color: var(--color-primary);
    text-align: center;
}

.price-fee__title::before {
    content: "";
    position: absolute;
    left: -24px;
    top: -37px;
    width: 69px;
    height: 69px;
    background: url("../images/circle1.svg") center / contain no-repeat;
    z-index: -1;
    pointer-events: none;
}

.price-fee__card {
    margin: 18px auto 20px;
    width: min(252px, 100%);
    min-height: 98px;
    background: #fff;
    padding: 15px 10px 11px;
}

.price-fee__time {
    background: #7a9fd9;
    color: #fff;
    font-family: var(--font-family-base);
    font-size: 20px;
    font-weight: 600;
    line-height: 36px;
    width: 169px;
    height: 32px;
    margin-inline: auto;
    padding: 0;
    text-align: center;
}

.price-fee__amount {
    margin-top: 4px;
    font-family: var(--font-family-base);
    font-size: 24px;
    font-weight: 600;
    line-height: 36px;
    color: #000;
    white-space: nowrap;
    text-align: center;
}

.price-fee__tax {
    font-size: 16px;
    font-weight: 600;
    line-height: 36px;
}

/* Price Debt */
.price-debt {
    background: #fff;
}

.price-debt_text {
    margin-top: 30px;
    text-align: center;
    font-weight: 700;
}

.price-debt_text-sp-only-break {
    display: inline;
}

.site-main > .price-debt {
    padding-block: 0;
}

.price-debt__inner {
    max-width: var(--frame-desktop-width);
    padding-top: 62px;
    padding-bottom: 60px;
    text-align: left;
}

.price-debt__title {
    position: relative;
    display: block;
    width: min(1100px, 100%);
    margin: 0 auto;
    padding-left: 30px;
    text-align: left;
    z-index: 1;
    font-family: var(--font-family-display);
    font-size: 28px;
    line-height: normal;
    color: var(--color-primary);
}

.price-debt__title::before {
    content: "";
    position: absolute;
    left: 7px;
    top: -18px;
    width: 45px;
    height: 45px;
    background: url("../images/circle1.svg") center / contain no-repeat;
    z-index: -1;
    pointer-events: none;
}

.price-debt__table-wrap {
    margin-top: 18px;
    margin-inline: auto;
    width: min(1100px, 100%);
    overflow-x: auto;
}

.price-debt__table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
    border-bottom: 1px solid #c4c4c4;
}

.price-debt__table th {
    height: 32px;
    padding: 0 10px;
    background: #779bd2;
    color: #fff;
    font-family: var(--font-family-base);
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
}

.price-debt__table td {
    height: 80px;
    padding: 8px 12px;
    color: #000;
    font-family: var(--font-family-base);
    font-size: 18px;
    font-weight: 400;
    line-height: 28px;
    text-align: center;
    vertical-align: middle;
}

.price-debt__table tbody tr:nth-child(even) td {
    background: #eee;
}

.price-debt__table th:not(:first-child),
.price-debt__table td:not(:first-child) {
    border-left: 1px solid #c4c4c4;
}

.price-debt__table td span {
    display: block;
}

.price-debt--stack .price-debt__inner {
    padding-top: 42px;
}

.price-debt__block {
    margin-top: 22px;
}

.price-debt__block-title {
    width: min(1100px, 100%);
    margin: 0 auto;
    font-family: var(--font-family-display);
    font-size: 24px;
    line-height: 1.3;
    color: var(--color-primary);
}

.price-debt__block > .price-debt__table-wrap {
    margin-top: 8px;
}

.price-debt__table--two {
    min-width: 560px;
}

.price-debt__note {
    width: min(1100px, 100%);
    margin: 10px auto 0;
    font-family: var(--font-family-base);
    font-size: 18px;
    line-height: 1.5;
    color: #777;
}

/* Works Contract */
.works-contract {
    background: #fff;
}

.works-contract--labor {
    margin-top: -100px;
}

.works-contract--money,
.works-contract--business,
.works-contract--traffic,
.works-contract--inheritance {
    margin-top: -100px;
}

.works-contract--inheritance {
    margin-bottom: -100px;
}

.works-contract__inner {
    max-width: 1320px;
    padding-top: 0;
    padding-bottom: 64px;
}

.works-contract__head {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    position: relative;
}

.works-contract__head::before {
    content: "";
    position: absolute;
    left: -28px;
    top: -10px;
    width: 40px;
    height: 40px;
    background: url("../images/circle1.svg") center / contain no-repeat;
    z-index: 0;
}

.works-contract__title {
    position: relative;
    z-index: 1;
    font-family: var(--font-family-display);
    font-size: 32px;
    line-height: 1.2;
    color: var(--color-primary);
}

.works-contract__badge {
    position: relative;
    z-index: 1;
    min-height: 24px;
    padding: 0 14px;
    border-radius: 999px;
    background: #d7e3f6;
    color: var(--color-primary);
    display: inline-flex;
    align-items: center;
    font-family: var(--font-family-display);
    font-size: 16px;
    line-height: 1;
}

.works-contract__tags {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.works-contract__tag {
    border: 1px solid #88a8da;
    color: #688fcf;
    padding: 4px 12px;
    font-family: var(--font-family-display);
    font-size: 14px;
    line-height: 1;
}

.works-contract__lead {
    margin-top: 34px;
    font-family: var(--font-family-display);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.35;
    color: #111;
}

.works-contract__points {
    margin-top: 18px;
    padding-left: 1.2em;
    display: grid;
    gap: 2px;
}

.works-contract__point {
    font-size: 16px;
    line-height: 1.8;
    font-weight: bold;
}

.works-contract__text {
    margin-top: 26px;
    font-size: 16px;
    line-height: 1.85;
}

.works-contract__faq {
    margin-top: 44px;
    padding: 26px 20px;
    border-radius: 20px;
    background: #eff3fa;
    width: 100%;
    margin-inline: auto;
}

.works-contract__faq-title {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin: 0 auto;
    position: relative;
    padding-left: 24px;
    padding-bottom: 8px;
    border-bottom: 2px solid #88a8da;
    color: var(--color-primary);
    font-family: var(--font-family-display);
    font-size: 18px;
    line-height: 1.2;
    text-align: center;
}

.works-contract__faq-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-60%);
    background: url("../images/faq_icon.svg") center / contain no-repeat;
}

.works-contract__faq-grid {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
}

.works-contract__faq-item {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.works-contract__faq-question {
    display: block;
    width: 100%;
    list-style: none;
    cursor: pointer;
    margin: 0;
    padding: 0 24px 0 0 !important;
    border-bottom: 1px solid #666;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    position: relative;
}

.works-contract__faq-question::-webkit-details-marker {
    display: none;
}

.works-contract__faq-question::marker {
    content: "";
}

.works-contract__faq-question::after {
    content: "";
    position: absolute;
    right: 2px;
    top: 50%;
    width: 10px;
    height: 10px;
    border-right: 2px solid #9b9b9b;
    border-bottom: 2px solid #9b9b9b;
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.2s ease;
}

.works-contract__faq-item[open] .works-contract__faq-question::after {
    transform: translateY(-30%) rotate(-135deg);
}

.works-contract__faq-answer-wrap {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease;
}

.works-contract__faq-answer {
    margin-top: 14px;
    font-size: 16px;
    line-height: 1.85;
    padding-bottom: 2px;
}

/* About Greeting */
.about-greeting {
    background: #fff;
}

.about-greeting__inner {
    max-width: 1320px;
    text-align: center;
    padding-top: 44px;
    padding-bottom: 28px;
}

.about-greeting__title {
    position: relative;
    display: inline-block;
    z-index: 1;
    font-family: var(--font-family-display);
    font-size: 30px;
    line-height: 1.2;
    color: var(--color-primary);
}

.about-greeting__title::before {
    content: "";
    position: absolute;
    left: -30px;
    top: -16px;
    width: 44px;
    height: 44px;
    background: url("../images/circle1.svg") center / contain no-repeat;
    z-index: -1;
    pointer-events: none;
}

.about-greeting__lead {
    margin-top: 24px;
    font-family: var(--font-family-display);
    font-size: 20px;
    line-height: 1.45;
    color: #111;
}

.about-greeting__lead-en {
    margin-top: 10px;
    font-family: var(--font-family-display);
    font-size: 14px;
    line-height: 1.4;
    color: #7ea1d8;
}

.about-greeting__body {
    margin-top: 46px;
}

.about-greeting__text {
    margin-top: 14px;
    font-size: 16px;
    line-height: 2;
    color: #111;
}

.about-greeting__text:first-child {
    margin-top: 0;
}

/* About Office */
.about-office {
    background: var(--color-bg-soft);
}

.about-office__inner {
    max-width: 1320px;
    text-align: center;
    padding-top: 36px;
    padding-bottom: 36px;
}

.about-office__title {
    position: relative;
    display: inline-block;
    z-index: 1;
    font-family: var(--font-family-display);
    font-size: 30px;
    line-height: 1.2;
    color: var(--color-primary);
}

.about-office__title::before {
    content: "";
    position: absolute;
    left: -30px;
    top: -16px;
    width: 44px;
    height: 44px;
    background: url("../images/circle1.svg") center / contain no-repeat;
    z-index: -1;
    pointer-events: none;
}

.about-office__image-wrap {
    margin-top: 28px;
}

.about-office__image {
    width: 100%;
    max-width: 760px;
    margin-inline: auto;
    object-fit: cover;
}

.about-office__table {
    margin: 28px auto 0;
    max-width: 760px;
}

.about-office__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #9eb9e3;
    text-align: left;
}

.about-office__term {
    margin: 0;
    font-family: var(--font-family-ja);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}

.about-office__desc {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
}

.about-office__philosophy {
    margin-top: 56px;
    position: relative;
    padding-top: 54px;
}

.about-office__philosophy::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 36px;
    transform: translateX(-50%);
    background: var(--color-primary);
}

.about-office__philosophy-title {
    font-family: var(--font-family-display);
    font-size: 30px;
    line-height: 1.2;
}

.about-office__philosophy-en {
    margin-top: 8px;
    font-family: var(--font-family-display);
    font-size: 14px;
    line-height: 1.3;
    color: #7ea1d8;
}

.about-office__philosophy-list {
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 28px;
}

.about-office__philosophy-item {
    text-align: center;
}

.about-office__philosophy-num {
    width: 62px;
    margin-inline: auto;
}

.about-office__philosophy-text {
    margin-top: 12px;
    font-size: 20px;
    font-family: var(--font-family-display);
    line-height: 1.7;
    color: var(--color-text);
}

.about-office__philosophy-text::first-line {
    color: #1b57b2;
}

/* About Lawyer */
.about-lawyer {
    background: #fff;
}

.about-lawyer__inner {
    max-width: 1320px;
    text-align: center;
    padding-top: 34px;
    padding-bottom: 40px;
}

.about-lawyer__title {
    position: relative;
    display: inline-block;
    z-index: 1;
    font-family: var(--font-family-display);
    font-size: 30px;
    line-height: 1.2;
    color: var(--color-primary);
}

.about-lawyer__title::before {
    content: "";
    position: absolute;
    left: -30px;
    top: -16px;
    width: 44px;
    height: 44px;
    background: url("../images/circle1.svg") center / contain no-repeat;
    z-index: -1;
}

.about-lawyer__hero {
    margin-top: 26px;
    position: relative;
    max-width: 760px;
    margin-inline: auto;
}

.about-lawyer__hero-image {
    width: 80%;
    margin-inline: auto;
    display: block;
    object-fit: cover;
}

.about-lawyer__hero-card {
    margin: 0 auto 0;
    width: min(340px, 92%);
    padding: 26px 22px 20px;
    border-radius: 999px;
    background: #fff;
    text-align: center;
}

.about-lawyer__role {
    font-size: 14px;
    line-height: 1.4;
}

.about-lawyer__name {
    margin-top: 8px;
    font-family: var(--font-family-display);
    font-size: 42px;
    line-height: 1.2;
}

.about-lawyer__name-en {
    margin-top: 6px;
    color: #7ea1d8;
    font-size: 16px;
    line-height: 1.3;
    font-family: var(--font-family-display);
}

.about-lawyer__block {
    margin-top: 44px;
}

.about-lawyer__block-title {
    position: relative;
    display: inline-block;
    padding-top: 40px;
    font-family: var(--font-family-display);
    font-size: 30px;
    line-height: 1.2;
    color: var(--color-primary);
}

.about-lawyer__block-title::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 28px;
    transform: translateX(-50%);
    background: #89aee7;
}

.about-lawyer__sublead {
    margin-top: 8px;
    color: #7ea1d8;
    font-size: 14px;
    line-height: 1.3;
    font-family: var(--font-family-display);
}

.about-lawyer__cols {
    margin-top: 50px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
}

.about-lawyer__list {
    margin: 0;
    padding-left: 1.2em;
    text-align: left;
    display: grid;
    gap: 8px;
}

#about-lawyer-history-title + .about-lawyer__list {
    margin-top: 50px;
}

.about-lawyer__list-item {
    font-size: 16px;
    line-height: 1.8;
}

.about-lawyer__result-highlight {
    margin-top: 34px;
    text-align: left;
}

.about-lawyer__result-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
}

.about-lawyer__result-list {
    margin-top: 10px;
    padding-left: 1.2em;
    display: grid;
    gap: 8px;
}

.about-lawyer__result-item {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
}

/* About Access */
.about-access {
    background: #fff;
}

.site-main > .about-access {
    padding-block: 0;
}

.about-access__inner {
    max-width: 1320px;
    text-align: center;
    margin-top: -50px;
    padding-top: 34px;
    padding-bottom: 50px;
}

.about-access__title {
    position: relative;
    display: inline-block;
    z-index: 1;
    font-family: var(--font-family-display);
    font-size: 30px;
    line-height: 1.2;
    color: var(--color-primary);
}

.about-access__title::before {
    content: "";
    position: absolute;
    left: -30px;
    top: -16px;
    width: 44px;
    height: 44px;
    background: url("../images/circle1.svg") center / contain no-repeat;
    z-index: -1;
}

.about-access__map-frame {
    margin-top: 24px;
    width: 100%;
    height: 250px;
    border: 0;
    overflow: hidden;
}

.about-access__map {
    width: 100%;
    height: 100%;
    border: 0;
}

.about-access__cols {
    margin-top: 30px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    text-align: left;
}

.about-access__col-title {
    margin: 0;
    padding: 8px 14px;
    background: #d7e3f6;
    border-bottom: 2px solid #7ea1d8;
    color: var(--color-primary);
    font-family: var(--font-family-ja);
    font-size: 24px;
    /* font-weight: 700; */
    line-height: 1.25;
}

#about-access-car-title {
    font-size: 18px;
}

#about-access-train-title {
    font-size: 18px;
}

.about-access__list {
    margin: 16px 0 0;
    padding-left: 0;
    list-style: none;
    display: grid;
    gap: 10px;
}

.about-access__list-item {
    position: relative;
    padding-left: 1.2em;
    font-size: 16px;
    /* font-weight: 700; */
    line-height: 1.65;
}

.about-access__list-item::before {
    content: "●";
    position: absolute;
    left: 0;
    top: 0.05em;
    font-size: 0.9em;
}

.about-access__note {
    margin-top: 18px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.75;
}

/* Point */
.point {
    background: var(--color-bg);
    padding-top: max(0px, calc(var(--space-8) - 50px));
}

.point__inner {
    max-width: 1100px;
}

.point__heading {
    text-align: left;
    margin-top: -50px;
}

.point__title {
    margin: 0;
}

.point__title-image {
    width: auto;
    height: 80px;
    margin-inline: 0;
}

.point__lead {
    margin-top: 20px;
    font-family: var(--font-family-display);
    font-size: clamp(1.1rem, 4.5vw, 2.25rem);
    line-height: 1.45;
    color: var(--color-text);
    text-align: center;
}

.point__cards {
    margin-top: 28px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
}

.point__card {
    --point-card-bg: var(--color-primary);
    --point-card-bg-top: 245px;
    background: var(--color-bg);
    color: var(--color-text);
    text-align: center;
    border: 0;
    overflow: visible;
    display: grid;
    grid-template-rows: auto auto auto 1fr;
    position: relative;
}

.point__card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: var(--point-card-bg-top);
    bottom: 0;
    background: var(--point-card-bg);
    z-index: 0;
}

.point__card-number {
    margin: 14px 0 0;
    font-family: var(--font-family-display);
    font-size: 3rem;
    line-height: 1;
    color: var(--color-primary);
}

.point__card-image {
    width: min(100%, 312px);
    aspect-ratio: 312 / 195;
    object-fit: cover;
    margin: 12px auto 0;
    position: relative;
    z-index: 1;
}

.point__card-title {
    margin: 8px 16px 0;
    font-family: var(--font-family-display);
    font-size: 1.125rem;
    line-height: 1.45;
    color: var(--color-text);
}

.point__card-text {
    margin: 0;
    margin-top: 12px;
    padding: 14px 16px 16px;
    font-size: 0.95rem;
    line-height: 1.7;
    text-align: left;
    color: var(--color-bg);
    background: transparent;
    position: relative;
    z-index: 1;
}

.point__card:nth-child(2) .point__card-text {
    background: transparent;
}

.point__card:nth-child(2) {
    --point-card-bg: var(--color-secondary);
}

.point__cta {
    margin-top: 26px;
    text-align: center;
}

.point__cta-link {
    min-width: 240px;
    min-height: 56px;
    padding: 0 52px 0 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-text);
    border-radius: 999px;
    font-family: var(--font-family-display);
    font-size: 1rem;
    line-height: 1;
    background: var(--color-bg);
    position: relative;
}

.point__cta-link::after {
    content: "";
    position: absolute;
    right: -22px;
    top: 50%;
    width: 44px;
    height: 7px;
    transform: translateY(-50%);
    background: url("../images/btn_arrow.svg") center / contain no-repeat;
}

/* Service */
.service {
    background: var(--color-bg-soft);
}

.service__inner {
    max-width: 1100px;
}

.service__title {
    margin: 0;
    text-align: left;
}

.service__title-image {
    width: auto;
    height: 80px;
}

.service__lead {
    margin-top: 20px;
    font-family: var(--font-family-display);
    font-size: clamp(1rem, 3.5vw, 1.25rem);
    line-height: 1.7;
    color: var(--color-secondary);
}

.service__grid {
    margin-top: 28px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.service__item {
    background: var(--color-primary);
    color: var(--color-bg);
    padding: 16px;
    position: relative;
}

.service__item-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.service__item-link:hover,
.service__item-link:focus-visible {
    text-decoration: none;
}

.service__item::after {
    content: "";
    position: absolute;
    right: 12px;
    bottom: 12px;
    width: 14px;
    height: 14px;
    background: url("../images/sankaku.svg") center / contain no-repeat;
    z-index: 2;
    pointer-events: none;
}

.service__item-head {
    display: flex;
    align-items: center;
    gap: 10px;
}

.service__item-icon {
    width: 28px;
    height: 28px;
    object-fit: contain;
    flex: 0 0 auto;
}

.service__item-title {
    margin-top: 0;
    font-family: var(--font-family-display);
    font-size: 1.2rem;
    line-height: 1.4;
    color: var(--color-bg);
}

.service__item-text {
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--color-bg);
    font-family: var(--font-family-display);
}

.service__cta {
    margin-top: 24px;
    text-align: center;
}

.service__cta-link {
    min-width: 240px;
    min-height: 56px;
    padding: 0 52px 0 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-text);
    border-radius: 999px;
    font-family: var(--font-family-display);
    font-size: 1rem;
    line-height: 1;
    background: var(--color-bg);
    position: relative;
}

.service__cta-link::after {
    content: "";
    position: absolute;
    right: -22px;
    top: 50%;
    width: 44px;
    height: 7px;
    transform: translateY(-50%);
    background: url("../images/btn_arrow.svg") center / contain no-repeat;
}

/* Flow */
.flow {
    background: var(--color-bg);
}

.flow__inner {
    max-width: 1100px;
}

.flow__frame {
    border: 8px solid #265cb0;
    padding: 28px 12px 20px;
    position: relative;
}

.flow__frame::before {
    content: "";
    position: absolute;
    top: -38px;
    left: 50%;
    width: 2px;
    height: 61px;
    transform: translateX(-50%);
    background: #7aa0d9;
}

.flow__heading {
    text-align: center;
}

.flow__title {
    margin: 0;
    font-family: var(--font-family-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--color-text);
}

.flow__label {
    margin-top: 10px;
    font-family: var(--font-family-display);
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    color: #7aa0d9;
}

.flow__steps {
    margin: 36px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
}

.flow__step-number {
    width: 52px;
    height: 52px;
    margin: 0 auto;
    position: absolute;
    top: -26px;
    left: 50%;
    transform: translateX(-50%);
}

.flow__step-number img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.flow__step {
    border: 5px solid #7aa0d9;
    border-radius: 20px;
    background: #fff;
    padding: 32px 12px 16px;
    position: relative;
    text-align: center;
    margin-bottom: 10px;
}

.flow__step-title {
    margin-top: 0;
    color: #265cb0;
    font-family: var(--font-family-display);
    font-size: 22px;
    line-height: 1.25;
}

.flow__step-text {
    margin-top: 8px;
    color: #111;
    font-size: 15px;
    line-height: 1.5;
}

/* Consultant */
.consultant {
    background: var(--color-bg);
}

.consultant__inner {
    max-width: 1100px;
}

.consultant__title {
    margin: 0;
    text-align: left;
}

.consultant__title-image {
    width: auto;
    height: 80px;
}

.consultant__intro {
    max-width: 940px;
    margin-inline: auto;
}

.consultant__intro-title {
    margin: 0;
    text-align: center;
    font-family: var(--font-family-display);
    font-size: clamp(1.4rem, 5vw, 2.1rem);
    line-height: 1.4;
    color: var(--color-primary-dark);
}

.consultant__intro-text {
    margin-top: 14px;
    text-align: center;
    font-size: 1rem;
    line-height: 1.9;
    color: var(--color-text);
}

.consultant__intro-text-break {
    display: none;
}

.consultant__lead {
    margin-top: 28px;
    text-align: center;
    font-family: var(--font-family-display);
    font-size: 30px;
    line-height: 1.4;
    color: var(--color-primary-dark);
}

.consultant__lead-num {
    display: inline-block;
    font-size: 1.7em;
    line-height: 0.9;
    transform: translateY(0.06em);
}

.consultant__cards {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

.consultant__card {
    background: var(--color-bg);
}

.consultant__card-media {
    position: relative;
    padding: 0;
}

.consultant__card-media::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: calc(38% - 40px);
    background: var(--color-primary);
    z-index: 0;
}

.consultant__card--secondary .consultant__card-media::after {
    background: #6d90c9;
}

.consultant__card-title {
    margin: 0;
    padding: 12px 12px 13px;
    text-align: center;
    font-family: var(--font-family-display);
    font-size: 1.8rem;
    line-height: 1.2;
    color: var(--color-bg);
    background: var(--color-primary);
    position: relative;
    z-index: 1;
}

.consultant__card--secondary .consultant__card-title {
    background: #6d90c9;
}

.consultant__card-image {
    width: calc(100% - 32px);
    margin-inline: auto;
    aspect-ratio: 312 / 195;
    object-fit: cover;
    position: relative;
    z-index: 1;
}

.consultant__card-list {
    margin: 0;
    padding: 14px 12px 0;
    list-style: none;
}

.consultant__card-item {
    position: relative;
    padding-left: 1em;
    font-size: 16px;
    line-height: 1.8;
}

.consultant__card-item::before {
    content: "・";
    position: absolute;
    left: 0;
}

.consultant__cta {
    margin-top: 36px;
    text-align: center;
}

.consultant__cta-link {
    min-width: 240px;
    min-height: 56px;
    padding: 0 52px 0 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-text);
    border-radius: 999px;
    font-family: var(--font-family-display);
    font-size: 1rem;
    line-height: 1;
    background: var(--color-bg);
    position: relative;
}

.consultant__cta-link::after {
    content: "";
    position: absolute;
    right: -22px;
    top: 50%;
    width: 44px;
    height: 7px;
    transform: translateY(-50%);
    background: url("../images/btn_arrow.svg") center / contain no-repeat;
}

/* Lawyer */
.lawyer {
    background: #fff;
}

.lawyer__inner {
    max-width: 1280px;
}

.lawyer__panel {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: center;
}

.lawyer__media {
    width: 100%;
}

.lawyer__image {
    width: 100%;
    object-fit: cover;
}

.lawyer__content-wrap {
    position: relative;
    min-height: 280px;
}

.lawyer__content-bg {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: #fff;
}

.lawyer__content {
    position: relative;
    z-index: 1;
    padding: 30px 20px;
}

.lawyer__heading {
    width: fit-content;
    margin-inline: auto;
    text-align: center;
}

.lawyer__role {
    font-size: 16px;
    line-height: 1.4;
}

.lawyer__name {
    margin-top: 0;
    font-family: var(--font-family-display);
    font-size: 44px;
    line-height: 1.1;
}

.lawyer__name-en {
    margin-top: 8px;
    color: #7aa0d9;
    font-family: var(--font-family-display);
    font-size: 16px;
    line-height: 1.4;
}

.lawyer__text {
    margin-top: 26px;
    font-size: 16px;
    line-height: 1.8;
}

.lawyer__cta {
    margin-top: 30px;
    text-align: center;
}

.lawyer__cta-link {
    min-width: 240px;
    min-height: 56px;
    padding: 0 52px 0 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-text);
    border-radius: 999px;
    font-family: var(--font-family-display);
    font-size: 1rem;
    line-height: 1;
    background: var(--color-bg);
    position: relative;
}

.lawyer__cta-link::after {
    content: "";
    position: absolute;
    right: -22px;
    top: 50%;
    width: 44px;
    height: 7px;
    transform: translateY(-50%);
    background: url("../images/btn_arrow.svg") center / contain no-repeat;
}

/* Column */
.column {
    background: #fff;
}

.column__inner {
    max-width: 1320px;
}

.column__head {
    display: block;
}

.column__title {
    font-family: var(--font-family-display);
    font-size: 32px;
    line-height: 1;
}

.column__arrow {
    display: block;
    margin-top: 14px;
    margin-left: auto;
    width: 120px;
    height: 14px;
    background: url("../images/arrow_side.svg") center / contain no-repeat;
}

.column__body {
    margin-top: 20px;
    border: 1px solid #ececec;
    background: #fff;
}

.column__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.column__item {
    padding: 16px 14px;
    border-bottom: 1px solid #ececec;
}

.column__item:last-child {
    border-bottom: 0;
}

.column__link {
    display: block;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
}

/* News */
.news {
    background: #fff;
}

.news__inner {
    max-width: 1320px;
}

.news__head {
    display: block;
}

.news__title {
    font-family: var(--font-family-display);
    font-size: 32px;
    line-height: 1;
}

.news__arrow {
    display: block;
    margin-top: 14px;
    margin-left: auto;
    width: 120px;
    height: 14px;
    background: url("../images/arrow_side.svg") center / contain no-repeat;
}

.news__body {
    margin-top: 20px;
    border: 1px solid #ececec;
    background: #fff;
}

.news__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.news__item {
    padding: 16px 14px;
    border-bottom: 1px solid #ececec;
}

.news__item:last-child {
    border-bottom: 0;
}

.news__date {
    display: block;
    color: #bcbcbc;
    font-size: 16px;
    line-height: 1;
}

.news__link {
    display: block;
    margin-top: 12px;
    font-size: 18px;
    line-height: 1.4;
}

/* Map */
.map {
    background: #fff;
    padding-block: 0 !important;
}

.map__inner {
    max-width: 1320px;
}

.map__title {
    font-family: var(--font-family-display);
    font-size: 32px;
    line-height: 1;
}

.map__frame {
    border: 1px solid #ececec;
    height: 280px;
    width: 100%;
    overflow: hidden;
}

.map__iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

/* Back To Top */
.back-to-top {
    position: fixed;
    right: 14px;
    bottom: 14px;
    width: 56px;
    height: 56px;
    border: 0;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-family-base);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
    cursor: pointer;
    z-index: 950;
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.22);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}

.back-to-top::before {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    margin: 0 auto 4px;
    border-top: 2px solid currentColor;
    border-left: 2px solid currentColor;
    transform: rotate(45deg);
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.back-to-top:hover,
.back-to-top:focus-visible {
    text-decoration: none;
    background: #0f4ca8;
}

@media (min-width: 768px) {
    .back-to-top {
        right: 24px;
        bottom: 24px;
    }
}

/* Footer */
.site-footer {
    background: #255bb2;
    color: #fff;
}

.site-footer__contact {
    background: #789ad0;
}

.site-footer__contact-inner {
    max-width: 1320px;
    padding-top: 44px;
    padding-bottom: 44px;
    text-align: center;
}

.site-footer__contact-title {
    font-family: var(--font-family-ja);
    font-size: 18px;
    /* font-weight: 700; */
    line-height: 1.3;
}

.site-footer__contact-text {
    margin-top: 20px;
    font-size: 16px;
    line-height: 1.8;
}

.site-footer__contact-text br {
    display: none;
}

.site-footer__contact-cta {
    margin-top: 26px;
    padding-bottom: 0;
    border-bottom: 0;
}

.site-footer__contact-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    padding: 0;
}

.site-footer__contact-icon {
    width: min(100%, 340px);
    height: auto;
    object-fit: contain;
}

.site-footer__main {
    background: #255bb2;
    padding-top: 40px;
    padding-bottom: 28px;
}

.site-footer__inner {
    max-width: 1320px;
    display: grid;
    gap: 26px;
}

.site-footer__brand-logo {
    width: min(100%, 360px);
}

.site-footer__address {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.5;
}

.site-footer__menu,
.site-footer__policy {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 14px 20px;
}

.site-footer__menu {
    font-size: 18px;
    justify-content: center;
    text-align: center;
}

.site-footer__menu > li {
    width: 100%;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.45);
    padding-bottom: 10px;
}

.site-footer__policy {
    margin-top: 16px;
    font-size: 18px;
    justify-content: center;
    text-align: center;
}

.site-footer__policy-item {
    font-size: 18px;
    width: 100%;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.45);
    padding-bottom: 10px;
}

.site-footer__copyright {
    margin-top: 28px;
    text-align: center;
    font-size: 14px;
    line-height: 1.4;
}

.site-footer .page_item.page-item-8.current_page_item {
    width: 100%;
}

/* CTA Hover */
.point__cta-link:hover,
.point__cta-link:focus-visible,
.service__cta-link:hover,
.service__cta-link:focus-visible,
.consultant__cta-link:hover,
.consultant__cta-link:focus-visible,
.lawyer__cta-link:hover,
.lawyer__cta-link:focus-visible {
    text-decoration: none;
}

.point__cta-link::after,
.service__cta-link::after,
.consultant__cta-link::after,
.lawyer__cta-link::after {
    transition: transform 0.5s ease;
}

.point__cta-link:hover::after,
.point__cta-link:focus-visible::after,
.service__cta-link:hover::after,
.service__cta-link:focus-visible::after,
.consultant__cta-link:hover::after,
.consultant__cta-link:focus-visible::after,
.lawyer__cta-link:hover::after,
.lawyer__cta-link:focus-visible::after {
    transform: translateY(-50%) translateX(10px);
}

/* Reason Plan */
.reason-plan {
    background: #fff;
}

.site-main > .reason-plan {
    padding-block: 0;
}

.reason-plan__inner {
    max-width: 1320px;
    padding-top: 40px;
    padding-bottom: 60px;
}

.reason-plan__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.reason-plan__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
}

.reason-plan__item {
    text-align: center;
}

.reason-plan__num {
    font-family: var(--font-family-display);
    font-size: 50px;
    line-height: 1;
    color: var(--color-primary);
}

.reason-plan__title {
    margin-top: 14px;
    font-family: var(--font-family-display);
    font-size: 24px;
    line-height: 1.2;
    color: var(--color-primary);
}

.reason-plan__text {
    margin-top: 12px;
    font-family: var(--font-family-display);
    font-size: 18px;
    line-height: 1.4;
    color: #000;
}

.reason-plan__br-pc {
    display: none;
}

.reason-plan__merit {
    margin-top: 22px;
    border: 1px solid var(--color-primary);
    border-radius: 9px;
    padding: 18px 18px 16px;
    text-align: left;
}

.reason-plan__merit-title {
    margin: 0;
    font-family: var(--font-family-display);
    font-size: 20px;
    line-height: 1;
    color: var(--color-primary);
}

.reason-plan__merit-list {
    margin: 12px 0 0;
    padding-left: 1.1em;
    list-style: disc;
}

.reason-plan__merit-list li {
    font-family: var(--font-family-base);
    font-size: 16px;
    line-height: 1.5;
}

/* Reason Advisory */
.reason-advisory {
    background: #fafcff;
}

.site-main > .reason-advisory {
    padding-block: 0;
}

.reason-advisory__inner {
    max-width: var(--frame-desktop-width);
    padding-top: 50px;
    padding-bottom: 70px;
}

.reason-advisory__title {
    margin: 0;
    text-align: center;
    font-family: var(--font-family-display);
    font-size: 32px;
    line-height: 1.2;
    color: var(--color-primary);
}
.reason-advisory__title span{
    font-size: 20px;
}

.reason-advisory__limited {
    margin: 28px auto 0;
    width: min(1100px, 100%);
    display: flex;
    align-items: center;
    gap: 0;
    position: relative;
    z-index: 3;
    margin-bottom: 0;
    padding-left: 0;
    min-height: 57px;
}

.reason-advisory__limited-icon {
    width: 52px;
    height: 57px;
    object-fit: contain;
    position: absolute;
    left: 27px;
    top: 28px;
    transform: none;
}

.reason-advisory__limited-text {
    font-family: var(--font-family-display);
    font-size: 20px;
    line-height: 1.2;
    color: #966e11;
    position: absolute;
    left: 89px;
    bottom: 4px;
    margin: 0;
}

.reason-advisory__cards {
    width: min(1100px, 100%);
    margin: 0 auto 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.reason-advisory__card {
    min-height: 0;
    padding: 18px 22px 18px;
    display: flex;
    flex-direction: column;
    color: #fff;
}

.reason-advisory__card--small,
.reason-advisory__card--large {
    background: #1b57b2;
}

.reason-advisory__card--middle {
    background: #779bd2;
}

.reason-advisory__card--middle .reason-advisory__plan-name {
    color: #779bd2;
}

.reason-advisory__plan-name {
    margin: 0 auto;
    width: 100%;
    max-width: 312px;
    min-height: 61px;
    border-radius: 97.5px;
    background: #fff;
    color: #1b57b2;
    font-family: var(--font-family-display);
    font-size: 24px;
    line-height: 1.2;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 8px 16px;
}

.reason-advisory__price {
    margin-top: 18px;
    text-align: center;
    font-family: var(--font-family-display);
    line-height: 1;
    color: #fff;
}

.reason-advisory__yen,
.reason-advisory__unit {
    font-size: 24px;
}

.reason-advisory__amount {
    font-size: 36px;
}

.reason-advisory__desc {
    margin-top: 12px;
    text-align: center;
    font-family: var(--font-family-display);
    font-size: 18px;
    line-height: 1.4;
    color: #fff;
}

.reason-advisory__list {
    margin: 18px 0 0;
    padding-top: 15px;
    padding-left: 1.1em;
    list-style: disc;
    border-top: 1px solid rgba(255, 255, 255, 0.8);
}

.reason-advisory__list li {
    font-family: var(--font-family-display);
    font-size: 18px;
    line-height: 30px;
}

.reason-advisory__etc {
    margin-top: 8px;
    padding-top: 0;
    font-family: var(--font-family-display);
    font-size: 18px;
    line-height: 30px;
    color: #fff;
}

.reason-advisory__note {
    margin: 28px auto 0;
    width: min(1100px, 100%);
    text-align: left;
    font-size: 1rem;
    line-height: 1.9;
    color: var(--color-text);
}

/* Contact Form */
.contact-form {
    background: #fff;
}

.site-main > .contact-form {
    padding-block: 0;
}

.contact-form__inner {
    max-width: 1320px;
    padding-top: 40px;
    padding-bottom: 70px;
}

.contact-form__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.contact-form__content {
    width: min(1100px, 100%);
    margin-inline: auto;
}

.contact-form__content p {
    margin: 0;
}

/* Hide unexpected orphan input block rendered by CF7 before table */
.contact-form__content .wpcf7-form > p:first-of-type {
    display: none;
}

/* Hide orphan controls rendered directly before the table */
.contact-form__content .wpcf7-form > input:not([type="hidden"]),
.contact-form__content .wpcf7-form > .wpcf7-form-control-wrap > input:not([type="hidden"]),
.contact-form__content .wpcf7-form > p:first-child > input:not([type="hidden"]),
.contact-form__content .wpcf7-form > p:first-child > .wpcf7-form-control-wrap > input:not([type="hidden"]) {
    display: none !important;
}

.contact-form__content table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.contact-form__content th,
.contact-form__content td {
    display: block;
    width: 100%;
    border-bottom: 0;
    vertical-align: middle;
}

.contact-form__content tbody tr {
    display: block;
    border-bottom: 1px solid #b4b4b4;
}

.contact-form__content th {
    width: 100%;
    padding: 16px 18px;
    background: var(--color-bg-soft);
    text-align: left;
    font-family: var(--font-family-base);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.25;
    color: #000;
}

.contact-form__content td {
    padding: 14px 0;
}

.contact-form__content .required {
    color: #d72323;
}

.contact-form__content input[type="text"],
.contact-form__content input[type="email"],
.contact-form__content input[type="tel"],
.contact-form__content textarea {
    width: 100%;
    border: 1px solid #b4b4b4;
    border-radius: 0;
    background: #fff;
    padding: 10px 12px;
    font-family: var(--font-family-base);
    font-size: 16px;
    line-height: 1.25;
    color: #000;
}

.contact-form__content input[type="text"],
.contact-form__content input[type="email"],
.contact-form__content input[type="tel"] {
    height: 42px;
}

.contact-form__content textarea {
    min-height: 190px;
    resize: vertical;
}

.contact-form__content .contact-form__topics {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 16px;
    row-gap: 12px;
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
}

.contact-form__content .contact-form__topics,
.contact-form__content .contact-form__topics .wpcf7-form-control-wrap,
.contact-form__content .contact-form__topics .wpcf7-form-control.wpcf7-checkbox {
    display: block !important;
    width: 100% !important;
}

.contact-form__content .contact-form__topics p {
    margin: 0;
}

.contact-form__content .contact-form__topics br {
    display: none;
}

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

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

.contact-form__content .contact-form__topics .wpcf7-form-control.wpcf7-checkbox {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 16px;
    row-gap: 12px;
    width: 100%;
}

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

.contact-form__content .wpcf7-checkbox {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 16px;
    row-gap: 12px;
    width: 100%;
}

.contact-form__content .wpcf7-list-item {
    margin: 0 !important;
    display: block !important;
    min-width: 0;
    width: 100%;
}

.contact-form__content .wpcf7-list-item label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-family: var(--font-family-base);
    font-size: 16px;
    line-height: 1.25;
    color: #000;
    white-space: normal;
    word-break: keep-all;
}

.contact-form__content .wpcf7-list-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #1b57b2;
    flex: 0 0 18px;
}

.contact-form__content .contact-form__topics label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-family-base);
    font-size: 16px;
    line-height: 1.25;
    color: #000;
}

.contact-form__content .contact-form__topics input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #1b57b2;
}

.contact-form__content .contact-form__box {
    min-height: 165px;
    border: 1px solid #b4b4b4;
    background: #fff;
    padding: 12px;
    overflow: auto;
}

.contact-form__content .contact-form__actions {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 24px;
}

.contact-form__content .contact-form__actions p {
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
}

.contact-form__content .contact-form__actions br {
    display: none;
}

.contact-form__content .contact-form__actions .wpcf7-form-control-wrap {
    display: inline-flex;
}

.contact-form__content .contact-form__actions input[type="reset"],
.contact-form__content .contact-form__actions input[type="submit"],
.contact-form__content .contact-form__actions button {
    width: 156px;
    height: 52px;
    border: 0;
    border-radius: 0;
    font-family: var(--font-family-base);
    font-size: 16px;
    line-height: 20px;
    cursor: pointer;
}

.contact-form__content .contact-form__actions input[type="reset"] {
    background: #c3c3c3;
    color: #fff;
}

.contact-form__content input[type="reset"] {
    width: 156px;
    height: 52px;
    border: 0;
    border-radius: 0;
    background: #c3c3c3;
    color: #fff;
    font-family: var(--font-family-base);
    font-size: 16px;
    line-height: 20px;
    cursor: pointer;
}

.contact-form__content .contact-form__actions .wpcf7-reset,
.contact-form__content .contact-form__actions .wpcf7-submit {
    width: 156px;
    height: 52px;
    border: 0;
    border-radius: 0;
    font-family: var(--font-family-base);
    font-size: 16px;
    line-height: 20px;
    cursor: pointer;
}

.contact-form__content .contact-form__actions .wpcf7-reset {
    background: #c3c3c3;
    color: #fff;
}

.contact-form__content .contact-form__actions .wpcf7-submit {
    background: #1b57b2;
    color: #fff;
}

/* Policy Page */
.policy-page {
    background: #fff;
}

.policy-page__inner {
    max-width: 1100px;
    padding-top: 56px;
    padding-bottom: 70px;
}

.policy-page__title {
    margin: 0;
    text-align: center;
    font-family: var(--font-family-display);
    font-size: 34px;
    line-height: 1.35;
    color: var(--color-primary-dark);
}

.policy-page__text {
    margin-top: 28px;
    font-size: 16px;
    line-height: 2;
}

.policy-page__list {
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.policy-page__list > li + li {
    margin-top: 24px;
}

.policy-page__list h3 {
    margin: 0;
    font-size: 22px;
    line-height: 1.5;
    color: var(--color-primary-dark);
}

.policy-page__list p {
    margin-top: 8px;
    font-size: 16px;
    line-height: 2;
}

.policy-page__list ul {
    margin: 8px 0 0;
    padding-left: 1.2em;
}

.policy-page__list ul li {
    font-size: 16px;
    line-height: 1.9;
}

.contact-form__content .contact-form__actions input[type="submit"],
.contact-form__content .contact-form__actions button[type="submit"] {
    background: #1b57b2;
    color: #fff;
}

.contact-form__content tbody tr:last-child th,
.contact-form__content tbody tr:last-child td {
    border-bottom: 0;
}

@media (min-width: 768px) {
    .price-debt_text-sp-only-break {
        display: none;
    }

    :root {
        --font-size-base: 17px;
    }

    .l-header {
        height: 0;
    }

    .container {
        padding-inline: var(--container-padding-inline-lg);
    }

    .policy-page__inner {
        padding-top: 78px;
        padding-bottom: 96px;
    }

    .policy-page__title {
        font-size: 42px;
    }

    .policy-page__text,
    .policy-page__list p,
    .policy-page__list ul li {
        font-size: 18px;
    }

    .site-main > section {
        padding-block: var(--space-9);
    }

    .l-header__toggle,
    .l-header__overlay {
        display: none;
    }

    .l-header__bar {
        min-height: 0;
        height: 0;
        padding: 0;
        overflow: visible;
    }

    .l-header__nav {
        position: absolute;
        top: 0;
        left: 0;
        transform: none;
        width: 268px;
        height: 366px;
        min-height: 366px;
        max-height: 366px;
        overflow: hidden;
        padding: 33px 20px 8px 23px;
        background: var(--color-surface-overlay);
        border-right: 1px solid rgba(0, 57, 132, 0.15);
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition: none;
    }

    .l-header__nav[hidden] {
        display: block !important;
    }

    .l-header__brand {
        display: none;
    }

    .is-about-page .submv__visual {
        height: var(--submv-height-pc);
    }

    .is-works-page .submv__visual {
        height: var(--submv-height-pc);
    }

    .is-price-page .submv__visual {
        height: var(--submv-height-pc);
    }

    .is-reason-page .submv__visual {
        height: var(--submv-height-pc);
    }

    .is-contact-page .submv__visual {
        height: var(--submv-height-pc);
    }

    .is-about-page .submv__title {
        font-size: 40px;
    }

    .is-works-page .submv__title {
        font-size: 40px;
    }

    .is-price-page .submv__title {
        font-size: 40px;
    }

    .is-reason-page .submv__title {
        font-size: 40px;
    }

    .is-contact-page .submv__title {
        font-size: 40px;
    }

    .is-about-page .submv__subtitle {
        margin-top: 12px;
        font-size: 18px;
    }

    .is-works-page .submv__subtitle {
        margin-top: 12px;
        font-size: 18px;
    }

    .is-price-page .submv__subtitle {
        margin-top: 12px;
        font-size: 18px;
    }

    .is-reason-page .submv__subtitle {
        margin-top: 12px;
        font-size: 18px;
    }

    .is-contact-page .submv__subtitle {
        margin-top: 12px;
        font-size: 18px;
    }

    .is-reason-page .submv__title-break {
        display: none;
    }

    .works-contract__inner {
        padding-top: 24px;
        padding-bottom: 96px;
    }

    .price-fee__inner {
        min-height: 0;
        padding-top: 110px;
        padding-bottom: 60px;
    }

    .price-fee__title {
        font-size: 32px;
    }

    .price-fee__title::before {
        left: -24px;
        top: -37px;
        width: 69px;
        height: 69px;
    }

    .price-fee__card {
        margin-top: 18px;
        width: 252px;
        min-height: 98px;
        padding: 15px 10px 11px;
    }

    .price-fee__time {
        font-size: 20px;
        width: 169px;
        height: 32px;
        padding: 0;
    }

    .price-fee__amount {
        margin-top: 4px;
        font-size: 24px;
    }

    .price-fee__tax {
        font-size: 16px;
    }

    .price-debt__inner {
        padding-top: 62px;
        padding-bottom: 60px;
    }

    .price-debt__table-wrap {
        margin-top: 18px;
        width: 1100px;
    }

    .price-debt__table {
        width: 1100px;
        min-width: 1100px;
    }

    .price-debt__col--content {
        width: 367px;
    }

    .price-debt__col--retainer {
        width: 366px;
    }

    .price-debt__col--reward {
        width: 367px;
    }

    .works-contract--labor {
        margin-top: -150px;
    }

    .works-contract--money,
    .works-contract--business,
    .works-contract--traffic,
    .works-contract--inheritance {
        margin-top: -150px;
    }

    .works-contract--inheritance {
        margin-bottom: -100px;
    }

    .works-contract__head::before {
        left: -40px;
        top: -20px;
        width: 62px;
        height: 62px;
    }

    .works-contract__badge {
        min-height: 24px;
        padding: 0 18px;
        font-size: 16px;
    }

    .works-contract__tags {
        margin-top: 24px;
        gap: 12px;
    }

    .works-contract__tag {
        padding: 6px 14px;
    }

    .works-contract__lead {
        margin-top: 44px;
    }

    .works-contract__points {
        margin-top: 24px;
        gap: 2px;
    }

    .works-contract__text {
        margin-top: 30px;
    }

    .works-contract__faq {
        margin: 68px auto 0;
        padding: 42px 50px 44px;
        width: 950px;
        max-width: 100%;
    }

    .works-contract__faq-title {
        font-size: 18px;
    }

    .works-contract__faq-grid {
        margin-top: 34px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 44px 52px;
    }

    .works-contract__faq-question {
        font-size: 18px;
    }

    .works-contract__faq-question {
        min-height: 80px;
        display: flex;
        align-items: center;
        padding-bottom: 0 !important;
    }

    .about-greeting__inner {
        padding-top: 84px;
        padding-bottom: 62px;
    }

    .about-greeting__title {
        font-size: 40px;
    }

    .about-greeting__title::before {
        left: -42px;
        top: -28px;
        width: 66px;
        height: 66px;
    }

    .about-greeting__lead {
        margin-top: 62px;
        font-size: 30px;
        line-height: 1.2;
    }

    .about-greeting__lead-en {
        margin-top: 10px;
        font-size: 16px;
        line-height: 1.2;
    }

    .about-greeting__body {
        margin-top: 78px;
    }

    .about-greeting__text {
        margin-top: 18px;
        font-size: 16px;
        line-height: 2.1;
    }

    .about-office__inner {
        padding-top: 66px;
        padding-bottom: 74px;
    }

    .about-office__title {
        font-size: 40px;
    }

    .about-office__title::before {
        left: -42px;
        top: -28px;
        width: 66px;
        height: 66px;
    }

    .about-office__image-wrap {
        margin-top: 52px;
    }

    .about-office__image {
        max-width: 987px;
    }

    .about-office__table {
        margin-top: 64px;
        max-width: 820px;
    }

    .about-office__row {
        grid-template-columns: 130px minmax(0, 1fr);
        gap: 16px;
        padding: 18px 0;
    }

    .about-office__term {
        font-size: 16px;
    }

    .about-office__desc {
        font-size: 16px;
        line-height: 1.7;
    }

    .about-office__philosophy {
        margin-top: 86px;
        padding-top: 74px;
    }

    .about-office__philosophy::before {
        height: 54px;
    }

    .about-office__philosophy-title {
        font-size: 40px;
    }

    .about-office__philosophy-en {
        margin-top: 10px;
        font-size: 16px;
    }

    .about-office__philosophy-list {
        margin-top: 34px;
        gap: 42px;
    }

    .about-office__philosophy-num {
        width: 74px;
    }

    .about-office__philosophy-text {
        margin-top: 16px;
        font-size: 20px;
        font-family: var(--font-family-display);
        line-height: 1.8;
    }

    .about-lawyer__inner {
        padding-top: 62px;
        padding-bottom: 82px;
    }

    .about-lawyer__title {
        font-size: 40px;
    }

    .about-lawyer__title::before {
        left: -42px;
        top: -28px;
        width: 66px;
        height: 66px;
    }

    .about-lawyer__hero {
        margin-top: 46px;
        max-width: 930px;
    }

    .about-lawyer__hero-card {
        position: absolute;
        left: -145px;
        bottom: -72px;
        margin: 0;
        width: 440px;
        height: 440px;
        border-radius: 50%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 0 56px;
    }

    .about-lawyer__role {
        font-size: 16px;
    }

    .about-lawyer__name {
        margin-top: 14px;
        font-size: 42px;
    }

    .about-lawyer__name-en {
        margin-top: 16px;
        font-size: 16px;
        line-height: 1;
    }

    .about-lawyer__block {
        margin-top: 72px;
    }

    .about-lawyer__block-title {
        padding-top: 52px;
        font-size: 40px;
    }

    .about-lawyer__block-title::before {
        height: 38px;
    }

    .about-lawyer__sublead {
        margin-top: 12px;
        font-size: 16px;
    }

    .about-lawyer__cols {
        margin-top: 50px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 40px;
    }

    .about-lawyer__list {
        gap: 10px;
    }

    .about-lawyer__list-item {
        font-size: 16px;
        line-height: 1.85;
    }

    .about-lawyer__result-highlight {
        margin-top: 46px;
    }

    .about-lawyer__result-title {
        font-size: 16px;
    }

    .about-lawyer__result-item {
        font-size: 16px;
    }

    .about-access__inner {
        margin-top: -100px;
        padding-top: 64px;
        padding-bottom: 50px;
    }

    .about-access__title {
        font-size: 40px;
    }

    .about-access__title::before {
        left: -42px;
        top: -28px;
        width: 66px;
        height: 66px;
    }

    .about-access__map-frame {
        margin-top: 48px;
        height: 500px;
    }

    .about-access__cols {
        margin-top: 44px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 42px;
    }

    .about-access__col-title {
        font-size: 24px;
        padding: 10px 16px;
    }

    #about-access-car-title {
        font-size: 20px;
    }

    #about-access-train-title {
        font-size: 20px;
    }

    .about-access__list {
        margin-top: 16px;
        gap: 10px;
    }

    .about-access__list-item,
    .about-access__note {
        font-size: 16px;
        line-height: 1.75;
    }

    .site-main > .hero {
        padding-block: 0;
    }

    .hero__inner {
        padding-top: 48px;
        padding-bottom: 56px;
    }

    .hero__title {
        max-width: var(--hero-title-max-width);
        margin-inline: auto;
        font-size: 36px;
        line-height: 50px;
    }

    .hero__text {
        max-width: var(--hero-text-max-width);
        margin-top: 26px;
        font-size: 20px;
        line-height: 32px;
    }

    .hero__text br {
        display: inline;
    }

    .point__inner {
        padding-top: 18px;
    }

    .point {
        padding-top: max(0px, calc(var(--space-9) - 50px));
    }

    .point__title {
        margin-top: 0;
    }

    .point__title-image {
        width: auto;
        height: 140px;
    }

    .point__lead {
        margin-top: 28px;
        font-size: 36px;
        line-height: 36px;
        text-align: left;
    }

    .point__cards {
        margin-top: 44px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0 0;
    }

    .point__card {
        min-height: 540px;
        --point-card-bg-top: 248px;
    }

    .point__card-number {
        margin-top: 6px;
        font-size: 70px;
    }

    .point__card-title {
        margin: 8px 20px 0;
        min-height: 84px;
        font-size: 20px;
        color: var(--color-text);
    }

    .point__card-text {
        margin: 0;
        margin-top: 10px;
        padding: 12px 14px 16px;
        font-size: 16px;
        line-height: 26px;
        min-height: 120px;
    }

    .point__cta {
        margin-top: 38px;
    }

    .point__cta-link {
        min-width: 351px;
        min-height: 73px;
        font-size: 18px;
    }

    .service__inner {
        padding-top: 20px;
    }

    .service__title-image {
        width: auto;
        height: 140px;
    }

    .service__lead {
        margin-top: 24px;
        font-size: 20px;
        line-height: 36px;
    }

    .service__grid {
        margin-top: 28px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 24px;
    }

    .service__item {
        min-height: 250px;
        padding: 18px 26px 20px;
    }

    .service__item::after {
        width: 23px;
        height: 23px;
        right: 10px;
        bottom: 10px;
    }

    .service__item-icon {
        width: 48px;
        height: 48px;
    }

    .service__item-title {
        font-size: 30px;
        line-height: 1.2;
    }

    .service__item-text {
        margin-top: 10px;
        padding-top: 16px;
        font-size: 20px;
        line-height: 40px;
    }

    .service__cta {
        margin-top: 36px;
    }

    .service__cta-link {
        min-width: 351px;
        min-height: 73px;
        font-size: 18px;
    }

    .column__inner,
    .news__inner {
        display: grid;
        grid-template-columns: 30% minmax(0, 1fr);
        align-items: start;
        column-gap: 44px;
    }

    .column__head,
    .news__head {
        padding-top: 22px;
    }

    .column__title,
    .news__title {
        font-size: 36px;
    }

    .column__arrow,
    .news__arrow {
        width: 280px;
        height: 20px;
    }

    .column__body,
    .news__body {
        margin-top: 0;
    }

    .column__item {
        padding: 24px 34px 20px;
    }

    .column__link {
        font-size: 16px;
        line-height: 1.2;
    }

    .news__item {
        padding: 24px 34px 20px;
    }

    .news__date {
        font-size: 14px;
    }

    .news__link {
        margin-top: 18px;
        font-size: 16px;
        line-height: 1.2;
    }

    .map__frame {
        height: 430px;
    }

    .site-footer__contact-inner {
        padding-top: 58px;
        padding-bottom: 66px;
    }

    .site-footer__contact-title {
        font-size: 24px;
    }

    .site-footer__contact-text {
        margin-top: 34px;
        font-size: 16px;
        line-height: 2;
    }

    .site-footer__contact-text br {
        display: inline;
    }

    .site-footer__contact-cta {
        margin-top: 48px;
        padding-bottom: 0;
        border-bottom: 0;
    }

    .site-footer__contact-link {
        display: inline-block;
    }

    .site-footer__contact-icon {
        width: 400px;
        max-width: 100%;
        height: auto;
    }

    .site-footer__main {
        padding-top: 54px;
        padding-bottom: 40px;
    }

    .site-footer__inner {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
        gap: 28px;
    }

    .site-footer__brand-logo {
        width: 514px;
        max-width: 100%;
    }

    .site-footer__address {
        margin-top: 22px;
        font-size: 16px;
        line-height: 1.35;
    }

    .site-footer__nav-wrap {
        padding-top: 20px;
    }

    .site-footer__menu {
        justify-content: flex-end;
        gap: 14px 22px;
        font-size: 16px;
        text-align: left;
    }

    .site-footer__menu > li {
        width: auto;
        border-bottom: 0;
        padding-bottom: 0;
    }

    .site-footer__policy {
        margin-top: 26px;
        justify-content: flex-end;
        gap: 14px 36px;
        font-size: 16px;
        text-align: left;
    }

    .site-footer__policy-item {
        font-size: 16px;
        width: auto;
        border-bottom: 0;
        padding-bottom: 0;
    }

    .site-footer__copyright {
        margin-top: 38px;
        font-size: 14px;
        text-align: right;
    }

    .site-footer .page_item.page-item-8.current_page_item {
        width: auto;
    }

    .flow__frame {
        border-width: 14px;
        padding: 64px 46px 48px;
    }

    .reason-plan__inner {
        padding-top: 68px;
        padding-bottom: 80px;
    }

    .reason-plan__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 58px;
        row-gap: 86px;
    }

    .reason-plan__text {
        margin-top: 10px;
    }

    .reason-plan__br-pc {
        display: inline;
    }

    .reason-plan__item {
        display: flex;
        flex-direction: column;
    }

    .reason-plan__merit {
        margin-top: auto;
        transform: translateY(20px);
        padding: 30px 24px 22px;
        min-height: 190px;
    }

    .reason-plan__merit-title {
        font-size: 20px;
    }

    .reason-plan__merit-list {
        margin-top: 14px;
        padding-left: 1.2em;
    }

    .reason-plan__merit-list li {
        line-height: 1.5;
    }

    .reason-advisory__inner {
        padding-top: 82px;
        padding-bottom: 84px;
    }

    .reason-advisory__title {
        font-size: 32px;
    }

    .reason-advisory__limited {
        margin-top: 30px;
        position: relative;
        z-index: 3;
        margin-bottom: 0;
        padding-left: 0;
        gap: 0;
        min-height: 57px;
    }

    .reason-advisory__cards {
        margin-top: 0;
        grid-template-columns: 366px 367px 366px;
    }

    .reason-advisory__card {
        min-height: 420px;
        padding: 18px 21px 18px;
    }

    .reason-advisory__etc {
        margin-top: auto;
        padding-top: 10px;
    }

    .reason-advisory__desc {
        margin-top: 10px;
    }

    .reason-advisory__list {
        margin-top: 16px;
    }

    .reason-advisory__limited-icon {
        position: absolute;
        left: 27px;
        top: 28px;
        transform: none;
    }

    .reason-advisory__limited-text {
        position: absolute;
        left: 89px;
        bottom: 4px;
        margin: 0;
        line-height: 1.2;
    }

    .reason-advisory__note {
        margin-top: 36px;
        font-size: 20px;
        line-height: 1.8;
    }

    .contact-form__inner {
        padding-top: 66px;
        padding-bottom: 90px;
    }

    .contact-form__content th {
        display: table-cell;
        width: 201px;
        padding: 24px 24px;
    }

    .contact-form__content td {
        display: table-cell;
        width: auto;
        border-bottom: 1px solid #b4b4b4;
        padding: 20px 0 20px 28px;
    }

    .contact-form__content tbody tr {
        display: table-row;
        border-bottom: 0;
    }

    .contact-form__content table {
        border-collapse: collapse;
        border-spacing: 0;
    }

    .contact-form__content th {
        border-bottom: 1px solid #b4b4b4;
    }

    .contact-form__content .contact-form__topics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 18px;
        row-gap: 14px;
    }

    .contact-form__content .contact-form__topics .wpcf7-form-control.wpcf7-checkbox {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 18px;
        row-gap: 14px;
    }

    .contact-form__content .wpcf7-checkbox {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 18px;
        row-gap: 14px;
    }

    .contact-form__content .wpcf7-list-item {
        margin: 0 !important;
    }

    .contact-form__content .wpcf7-checkbox {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 18px;
        row-gap: 14px;
    }

    .contact-form__content textarea {
        min-height: 220px;
    }

    .contact-form__content .contact-form__actions {
        gap: 34px;
        margin-top: 40px;
    }

    .flow__title {
        font-size: 28px;
    }

    .flow__label {
        margin-top: 12px;
        font-size: 22px;
    }

    .flow__steps {
        margin-top: 56px;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 30px;
    }

    .flow__step {
        padding: 46px 14px 16px;
        border-width: 6px;
        border-radius: 22px;
        margin-bottom: 0;
    }

    .flow__step:not(:last-child)::after {
        content: "";
        position: absolute;
        left: calc(100% + 1px);
        top: 50%;
        width: 37px;
        height: 4px;
        transform: translateY(-50%);
        background: #7aa0d9;
        z-index: 2;
    }

    .flow__step-number {
        width: 64px;
        height: 64px;
        top: -32px;
        font-size: 38px;
    }

    .flow__step-title {
        font-size: 18px;
        line-height: 1.35;
        height: 50px;
    }

    .flow__step-text {
        margin-top: 8px;
        font-size: 14px;
        line-height: 1.5;
    }

    .flow__step-text br {
        display: none;
    }

    .lawyer__panel {
        grid-template-columns: minmax(0, 690px) minmax(0, 1fr);
        gap: 0;
    }

    .lawyer__content-wrap {
        min-height: 700px;
        margin-left: -48px;
    }

    .lawyer__content-bg {
        width: 620px;
        height: 620px;
        inset: 50% auto auto 50%;
        transform: translate(-50%, -50%);
        border-radius: 50%;
    }

    .lawyer__content {
        max-width: 470px;
        margin: 0 auto;
        padding: 146px 32px 0;
    }

    .lawyer__heading {
        text-align: left;
        transform: translateX(-100px);
    }

    .lawyer__name {
        margin-top: 0;
        font-size: 40px;
    }

    .lawyer__name-en {
        margin-top: 12px;
        font-family: var(--font-family-display);
        font-size: 16px;
        line-height: 1;
    }

    .lawyer__text {
        margin-top: 48px;
        line-height: 1.9;
    }

    .lawyer__cta {
        margin-top: 58px;
    }

    .lawyer__cta-link {
        min-width: 351px;
        min-height: 73px;
        font-size: 18px;
    }

    .consultant__title-image {
        width: auto;
        height: 140px;
    }

    .consultant__intro-title {
        font-size: 32px;
    }

    .consultant__intro-break {
        display: none;
    }

    .consultant__intro-text {
        margin-top: 18px;
        font-size: 18px;
        line-height: 1.8;
    }

    .consultant__intro-text-break {
        display: inline;
    }

    .consultant__lead {
        margin-top: 44px;
        font-size: 30px;
        line-height: 1.4;
    }

    .consultant__cards {
        margin-top: 46px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0;
    }

    .consultant__card-title {
        min-height: 70px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 10px 8px;
        font-size: 30px;
    }

    .consultant__card-list {
        padding: 12px 16px 0;
    }

    .consultant__card-item {
        font-size: 16px;
        line-height: 1.5;
    }

    .consultant__cta {
        margin-top: 52px;
    }

    .consultant__cta-link {
        min-width: 351px;
        min-height: 73px;
        font-size: 18px;
    }
}

@media (min-width: 1920px) {
    .l-header__nav {
        left: 50%;
        transform: translateX(-960px);
    }
}

/* Contact CF7 Fix: consultation topics layout */
.contact-form__content .contact-form__topics .wpcf7-form-control-wrap,
.contact-form__content .contact-form__topics .wpcf7-form-control.wpcf7-checkbox {
    display: block !important;
    width: 100% !important;
}

.contact-form__content .contact-form__topics .wpcf7-checkbox {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 16px !important;
    row-gap: 12px !important;
    width: 100% !important;
}

.contact-form__content .contact-form__topics .wpcf7-list-item {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    min-width: 0 !important;
}

.contact-form__content .contact-form__topics .wpcf7-list-item label {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
}

.contact-form__content .contact-form__topics .wpcf7-list-item-label {
    display: block;
    line-height: 1.3;
    white-space: normal;
    word-break: keep-all;
}

.contact-form__content .contact-form__topics .wpcf7-list-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
}

@media (min-width: 768px) {
    .contact-form__content .contact-form__topics .wpcf7-checkbox {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        column-gap: 18px !important;
        row-gap: 14px !important;
    }
}

/* Contact consultation row hard-fix */
.contact-form__content tbody tr:nth-of-type(6) td .contact-form__topics .wpcf7-form-control-wrap,
.contact-form__content tbody tr:nth-of-type(6) td .contact-form__topics .wpcf7-form-control.wpcf7-checkbox {
    width: 100% !important;
}

.contact-form__content tbody tr:nth-of-type(6) td .contact-form__topics .wpcf7-checkbox {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 16px !important;
    margin: 0 !important;
}

.contact-form__content tbody tr:nth-of-type(6) td .contact-form__topics .wpcf7-list-item {
    margin: 0 !important;
}

.contact-form__content tbody tr:nth-of-type(6) td .contact-form__topics .wpcf7-list-item label {
    display: grid !important;
    grid-template-columns: 18px 1fr;
    column-gap: 8px;
    align-items: start;
}

@media (min-width: 768px) {
    .contact-form__content tbody tr:nth-of-type(6) td .contact-form__topics .wpcf7-checkbox {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 14px 18px !important;
    }
}

@media (min-width: 1200px) {
    .site-main > section {
        padding-block: var(--space-10);
    }
}
