@charset "utf-8";

/* =========================================================
   IASO COMMON
   全ページ共通のトークンとUIコンポーネントのみ。
   Header / Footer / 各ページ固有レイアウトは置かない。
========================================================= */
:root {
    --iaso-navy: #183247;
    --iaso-navy-soft: #28485b;
    --iaso-blue: #6e9db8;
    --iaso-blue-hover: #5f91ad;
    --iaso-blue-soft: #a9c8d8;
    --iaso-blue-pale: #edf6f9;
    --iaso-ivory: #faf9f6;
    --iaso-white: #ffffff;
    --iaso-text: #23313c;
    --iaso-muted: #697984;
    --iaso-line: rgba(24,50,71,.12);
    --iaso-shadow: 0 18px 50px rgba(54,85,103,.10);
    --iaso-header-height: 86px;
}

html { scroll-behavior: smooth; }

body.iaso-site {
    margin: 0;
    color: var(--iaso-text);
    background: var(--iaso-white);
    font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
    -webkit-font-smoothing: antialiased;
}
body.iaso-menu-open { overflow: hidden; }
body.iaso-site *,
body.iaso-site *::before,
body.iaso-site *::after { box-sizing: border-box; }
body.iaso-site img { 
    max-width: 100%; 
}
body.iaso-site a { color: inherit; }

.iaso-section-shell {
    width: min(1240px, calc(100% - 96px));
    margin-inline: auto;
}

.iaso-eyebrow {
    margin: 0 0 16px;
    color: var(--iaso-blue);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .22em;
}

.iaso-section-head {
    max-width: 820px;
    margin: 0 0 50px;
}

.iaso-section-head--row {
    max-width: none;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 48px;
}

.iaso-section-head h2,
.iaso-section-title {
    margin: 0;
    color: var(--iaso-navy);
    font-family: "Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
    font-size: clamp(38px,3.2vw,48px);
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: .02em;
}

.iaso-section-head > p:last-child {
    max-width: 680px;
    margin: 16px 0 0;
    color: var(--iaso-muted);
    font-size: 15px;
    line-height: 1.95;
}

.iaso-text-link {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-top: 24px;
    color: var(--iaso-navy);
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .05em;
}
.iaso-text-link::after { content: "→"; color: var(--iaso-blue); transition: transform .25s ease; }
.iaso-text-link:hover::after { transform: translateX(5px); }

.iaso-note {
    margin: 0;
    color: #7f8c94;
    font-size: 12px;
    line-height: 1.9;
}

.iaso-center { text-align: center; }

/* Button colors are complete in the normal state. Hover is only an enhancement. */
body.iaso-site a.iaso-button,
body.iaso-site button.iaso-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 28px;
    border: 1px solid transparent;
    border-radius: 999px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .05em;
    transition: transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
body.iaso-site a.iaso-button:hover,
body.iaso-site button.iaso-button:hover { transform: translateY(-2px); }

body.iaso-site a.iaso-button--primary,
body.iaso-site a.iaso-button--primary:visited {
    color: #fff;
    background: var(--iaso-blue);
    border-color: var(--iaso-blue);
    box-shadow: 0 10px 26px rgba(110,157,184,.18);
}
body.iaso-site a.iaso-button--primary:hover { color: #fff; background: var(--iaso-blue-hover); }

body.iaso-site a.iaso-button--secondary,
body.iaso-site a.iaso-button--secondary:visited {
    color: var(--iaso-navy);
    background: #fff;
    border-color: rgba(24,50,71,.24);
}
body.iaso-site a.iaso-button--secondary:hover {
    color: var(--iaso-navy);
    background: #f8fcfd;
    border-color: var(--iaso-blue);
}

body.iaso-site a.iaso-button--dark,
body.iaso-site a.iaso-button--dark:visited {
    color: #fff;
    background: var(--iaso-navy);
    border-color: var(--iaso-navy);
}
body.iaso-site a.iaso-button--dark:hover { color: #fff; background: #23475e; }

body.iaso-site a.iaso-button--ghost,
body.iaso-site a.iaso-button--ghost:visited {
    color: var(--iaso-navy);
    background: transparent;
    border-color: rgba(24,50,71,.18);
}

.br-pc {
    display: inline;
}

.br-tb,
.br-sp {
    display: none;
}

/* =========================================================
   IASO BREADCRUMB / PC
   Common lower-page component. Place immediately after HERO.
========================================================= */
.iaso-breadcrumb {
    width: 100%;
    background: rgba(255,255,255,.96);
}

.iaso-breadcrumb__inner {
    width: min(1120px, calc(100% - 96px));
    margin: 0 auto;
}

.iaso-breadcrumb__list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    min-height: 52px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.iaso-breadcrumb__item {
    display: inline-flex;
    align-items: center;
    color: var(--iaso-muted);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .06em;
}

.iaso-breadcrumb__item + .iaso-breadcrumb__item::before {
    content: "/";
    margin: 0 12px;
    color: rgba(110,157,184,.58);
    font-weight: 400;
}

.iaso-breadcrumb__link {
    color: #7d8b94;
    text-decoration: none;
    transition: color .2s ease;
}

.iaso-breadcrumb__link:hover,
.iaso-breadcrumb__link:focus-visible {
    color: var(--iaso-blue);
}

.iaso-breadcrumb__link:focus-visible {
    outline: 1px solid rgba(110,157,184,.55);
    outline-offset: 4px;
    border-radius: 2px;
}

.iaso-breadcrumb__current {
    color: var(--iaso-navy);
}

