:root {
    --paper:#fcfcfc;
    --ink:#111;
    --muted:#5c5c5c;
    --orange:#ff7f0f;
    --line:#dededb;
    --soft:#f3f3f0;
    --width:1280px;
    --header-height:80px
}
*,*::before,*::after {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:115px
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Noto Sans JP",Arial,sans-serif;
    font-size:16px;
    line-height:1.5;
    -webkit-font-smoothing:antialiased
}
body.menu-open {
    overflow:hidden
}
img {
    display:block;
    max-width:100%;
    height:auto
}
a {
    color:inherit;
    text-decoration:none;
    text-underline-offset:5px
}
button,input,select,textarea {
    font:inherit
}
button,a,input {
    -webkit-tap-highlight-color:transparent
}
button {
    cursor:pointer
}
button:disabled {
    cursor:default
}
a:focus-visible,button:focus-visible,input:focus-visible {
    outline:3px solid #b64c00;
    outline-offset:5px
}
button,input {
    border-radius:0
}
button {
    color:inherit
}
h1,h2,h3,p,figure {
    margin:0
}
h1,h2,h3 {
    line-height:1.4;
    font-weight:900;
    overflow-wrap:anywhere
}
ul {
    padding-left:1.5em
}
[hidden] {
    display:none!important
}
.container {
    width:calc(100% - 96px);
    max-width:var(--width);
    margin-inline:auto
}
#main {
    min-height:55vh
}
.section {
    padding-block:80px
}
.page-main {
    padding-top:48px;
    padding-bottom:100px
}
.display {
    font-family:"Syne","Noto Sans JP",sans-serif;
    font-size:clamp(52px,7.7vw,110px);
    font-weight:900;
    line-height:.98;
    letter-spacing:-.025em
}
.sub-display {
    font-family:Arial,"Noto Sans JP",sans-serif;
    font-size:clamp(28px,4vw,48px);
    font-weight:900;
    letter-spacing:-.035em
}
.eyebrow {
    font-size:16px;
    font-weight:800;
    letter-spacing:.09em;
    line-height:1.4
}
.page-heading {
    padding-bottom:40px;
    margin-bottom:40px;
    border-bottom:2px solid var(--ink)
}
.page-subtitle {
    font-size:18px;
    font-weight:700;
    margin-top:22px
}
.lead {
    font-size:20px;
    color:var(--muted);
    max-width:48em;
    margin-top:20px
}
.section-heading {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:24px;
    margin-bottom:36px
}
.section-caption {
    font-size:16px;
    font-weight:700
}
.breadcrumb {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    font-size:14px;
    line-height:1.7;
    padding-block:24px;
    color:var(--muted)
}
.breadcrumb [aria-current] {
    color:var(--ink);
    overflow-wrap:anywhere
}
.breadcrumb a:hover {
    text-decoration:underline
}
.screen-reader-text,.skip-link:not(:focus) {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}
.skip-link:focus {
    position:fixed;
    z-index:1000;
    top:8px;
    left:8px;
    background:white;
    padding:12px 20px;
    border:2px solid var(--ink)
}
.button {
    display:inline-flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    min-height:52px;
    padding:13px 24px;
    border:1px solid var(--ink);
    font-size:16px;
    font-weight:700;
    line-height:1.5;
    background:transparent;
    transition:background .18s,color .18s
}
.button:hover {
    background:var(--ink);
    color:white
}
.button-orange {
    background:var(--orange);
    border-color:var(--orange);
    color:var(--ink)
}
.button-orange:hover {
    background:#ed6c00;
    border-color:#ed6c00;
    color:var(--ink)
}
.button-row {
    display:flex;
    flex-wrap:wrap;
    gap:12px
}
.text-link {
    display:inline-flex;
    align-items:center;
    gap:28px;
    min-height:44px;
    font-size:16px;
    font-weight:700;
    border-bottom:1px solid currentColor
}
.text-link:hover {
    color:#ad4900
}
.contact-strip {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    border-top:2px solid var(--ink);
    padding-block:54px;
    margin-bottom:60px
}
.contact-strip h2 {
    font-size:32px;
    margin-top:12px
}
.admin-bar .site-header {
    top:32px
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*::before,*::after {
        transition:none!important;
        animation:none!important
    }
}
