/* 案件固有のスタイル。型(styles.css)は編集禁止 — 上書きはすべてここに書く。
   読み込み順は styles.css → custom.css なので、同じセレクタ/変数はこちらが勝つ。 */

:root {
  --mold-version: 9;
  /* font-preset: clean */
  --lh-body: 1.90;
  --lh-display: 1.38;
  --ls-en: .06em;
  --ls-body: .02em;
  --ls-display: .01em;
  --fw-strong: 700;
  --fw-body: 400;
  --fw-display: 700;
  --font-en: "Jost", sans-serif;
  --font-body: "Noto Sans JP", sans-serif;
  --font-display: "Zen Kaku Gothic New", sans-serif;
  /* 配色: extract_palette.py の4値をここに */
  /* 書体: apply_design_tokens.py --preset <key> が自動で書く */
}

/* ルートAヒーロー(make_hero_bg.py の出力座標)はここに書く */


:root{--ink:#0b2e54;--muted:#53657a;--paper:#fff;--soft:#f4f7f9;--line:#d7e0e7;--gold:#f8c61d;--content-max:1240px;--pad-x:5vw;--lh-body:1.9}
body{color:var(--ink);background:#fff;font-size:16px}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #deaa00;outline-offset:6px}button{font:inherit}p{line-height:1.95}.skip-link{position:fixed;top:-100px;left:20px;z-index:200;background:#fff;padding:12px}.skip-link:focus{top:8px}.site-header{position:absolute;background:transparent;backdrop-filter:none;border:0;height:88px;padding:0 4.8%;grid-template-columns:1fr auto auto}.logo-window{display:block;position:relative;width:190px;height:58px;overflow:hidden}.logo-window img{position:absolute;width:190px;height:190px;max-width:none;left:0;top:-70px}.nav{font-family:var(--font-body);font-size:14px;gap:32px}.nav a{font-weight:500}.nav-toggle{color:var(--ink)}.nav-overlay{background:#fff;color:var(--ink)}.nav-overlay nav a{font-family:var(--font-body)}
.hero{position:relative;min-height:0;height:auto;padding:0;margin:0;aspect-ratio:1672/941;background:url('assets/hero.png') center/cover no-repeat;overflow:visible}.hero::before,.hero::after{display:none}.hero__stage{position:absolute;inset:0;display:block;min-height:0;padding:0;margin:0}.hero__copy{position:absolute;left:5%;top:22.5%;width:53%;padding:0;display:block;z-index:2;max-width:none}.hero-kicker{font-family:var(--font-body);font-size:1.24vw;letter-spacing:.2em;margin:0 0 2.05vw;line-height:1.4}.hero-kicker span{color:#d7a900}.hero h1{font-family:var(--font-display);font-weight:700;font-size:3.6vw;letter-spacing:.015em;line-height:1.43;margin:0;color:var(--ink);max-width:none}.hero h1>span{display:block}.hero__lead{font-family:var(--font-body);font-size:1.62vw;letter-spacing:.065em;line-height:1.8;margin:1.45vw 0 2.8vw;max-width:none}.hero__actions{display:flex;gap:1.9vw;align-items:stretch;margin:0}.cw-btn{min-height:58px;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:18px 26px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:3px;font-weight:600;font-size:15px;line-height:1.5;transition:background .3s,transform .3s}.cw-btn span{font-size:25px;line-height:1;transition:transform .3s}.cw-btn:hover{background:#1e4873;transform:translateY(-2px)}.cw-btn:hover span{transform:translateX(4px)}.cw-btn--outline{color:var(--ink);background:rgba(255,255,255,.8)}.cw-btn--outline:hover{background:#eef3f7}.hero .cw-btn{min-height:0;padding:1.23vw 2.5vw;font-size:1.2vw;min-width:19.3vw}.hero .cw-btn--outline{min-width:17.8vw}.hero-services{position:absolute;left:5%;bottom:10%;display:flex;align-items:center;gap:0;font-size:.95vw;font-weight:500}.hero-services a{padding:0 1.75vw;border-right:1px solid #a8b6c4;line-height:1.65}.hero-services a:first-child{padding-left:0}.hero-services a:last-child{border:0}.hero-mobile{display:none}
.section{padding:100px max(6vw,calc((100vw - 1240px)/2));margin:0;scroll-margin-top:30px}.section__head{display:block;margin:0 0 60px;max-width:none}.eyebrow{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.17em;margin:0 0 22px;line-height:1.7}.eyebrow:before{content:'';display:inline-block;width:24px;height:2px;background:var(--gold);vertical-align:middle;margin-right:14px}.section h2{font-family:var(--font-display);font-size:clamp(28px,3vw,44px);line-height:1.5;letter-spacing:.04em;font-weight:700;margin:0 0 25px}.section__head>p:last-child:not(.eyebrow){color:var(--muted);margin:20px 0 0;max-width:720px}.service-section{background:#fff}.service-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6%;padding:52px 0;border-top:1px solid var(--line);scroll-margin-top:20px}.service-row:nth-of-type(even) figure{order:2}.service-row figure{margin:0;position:relative}.service-row figure img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.service-row figcaption{font-size:11px;color:#69798b;margin-top:10px}.service-copy h3{font-size:clamp(22px,2vw,31px);font-family:var(--font-display);line-height:1.55;margin:14px 0 20px}.service-copy p{color:var(--muted);margin:15px 0}.service-copy .eyebrow{font-size:11px;color:var(--ink);letter-spacing:.12em}.service-copy .eyebrow:before{display:none}.service-copy .eyebrow span{color:#ad8700;padding-right:15px;font-size:18px}.service-copy .service-catch{color:var(--ink);font-weight:600;font-size:18px}.service-copy .scope{font-size:12px;border-top:1px solid var(--line);padding-top:18px}.text-link{display:inline-flex;align-items:center;gap:32px;border-bottom:1px solid currentColor;padding:10px 0;font-size:14px;font-weight:600}.text-link span{font-size:20px}.works-section{background:var(--soft);display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.works-section .section__head{margin:0}.small-label{font-size:13px;letter-spacing:.06em}.works-note{border-left:2px solid var(--gold);padding-left:28px}.works-note p{color:var(--muted);font-size:15px}.works-note p:first-of-type{color:var(--ink);font-weight:500}.about-section{background:#0b2e54;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:7%}.about-section h2{font-size:clamp(26px,2.5vw,37px)}.about-section .section__head{margin:0}.about-body p{font-size:16px;line-height:2.1;margin:0 0 25px;color:#eef2f6}.values{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}.values span{border:1px solid #7389a0;padding:7px 13px;font-size:12px}.flow-section{display:grid;grid-template-columns:1fr 1fr;gap:9%;background:#fff}.flow-section .section__head{margin:0}.flow-list{list-style:none;margin:0;padding:0}.flow-list li{display:grid;grid-template-columns:52px 1fr;gap:22px;position:relative;padding-bottom:30px}.flow-list li:before{content:'';position:absolute;top:44px;bottom:0;left:20px;width:1px;background:var(--gold);transform-origin:top}.flow-list li:last-child:before{display:none}.step-number{font-size:17px;color:#a37d00;font-weight:600;line-height:44px}.flow-list h3{font-size:19px;line-height:1.7;margin:7px 0 10px;font-family:var(--font-display)}.flow-list p{margin:0;font-size:14px;color:var(--muted)}.faq-section{background:#f5f7f9;display:grid;grid-template-columns:1fr 1.6fr;gap:6%}.faq-section .section__head{margin:0}.faq-list details{border-top:1px solid #c8d2dd;padding:20px 0}.faq-list details:last-child{border-bottom:1px solid #c8d2dd}.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:22px;font-size:15px;font-weight:500;line-height:1.8;cursor:pointer;list-style:none;padding:7px 0}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{flex:none;font-size:22px;color:#9c7900}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{color:var(--muted);font-size:14px;padding-right:35px}.cw-contact{text-align:center;position:relative;overflow:hidden;background:#fff;padding-top:110px;padding-bottom:110px}.cw-contact>div{position:relative;z-index:1}.cw-contact h2{font-size:clamp(36px,4vw,56px)}.cw-contact>div>p:not(.eyebrow){color:var(--muted)}.contact-destination{margin-top:32px}.contact-status{display:inline-block;color:var(--muted);border-top:1px solid var(--line);padding:20px 30px;font-size:14px}.contact-orbit{position:absolute;width:540px;height:540px;border:1px solid #efd46c;border-radius:50%;left:calc(50% - 270px);top:35px}.cw-footer{padding:55px 6vw 25px;background:#f3f6f8;display:grid;grid-template-columns:1fr 1fr;gap:35px 70px;color:var(--ink)}.cw-footer p{font-size:13px;color:var(--muted)}.cw-footer .footer-note{font-size:12px;margin-top:24px}.cw-footer nav{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:13px;align-content:center}.cw-footer nav a{padding:5px}.cw-footer .copyright{grid-column:1/-1;font-size:11px;border-top:1px solid #d7e0e7;padding-top:25px;margin:0}.contact-status{cursor:default}
@media(min-width:1680px){.hero{max-height:1100px}.hero__copy{top:22%}}
@media(max-width:1040px){.site-header{height:80px;padding:0 5%}.nav{display:none}.nav-toggle{display:flex}.logo-window{width:160px;height:52px}.logo-window img{width:160px;height:160px;top:-58px}.hero{aspect-ratio:auto;background:none;padding-top:105px}.hero__stage{position:relative;inset:auto;min-height:0}.hero__copy{position:relative;left:auto;top:auto;width:auto;max-width:none;padding:18px 6vw 0}.hero-kicker{font-size:12px;margin-bottom:22px}.hero h1{font-size:clamp(28px,4.3vw,42px);line-height:1.5;letter-spacing:.01em}.hero__lead{font-size:17px;margin:22px 0 28px;letter-spacing:.025em}.hero__actions{gap:16px}.hero .cw-btn{font-size:14px;padding:16px 20px;min-width:0;min-height:55px;flex:0 1 260px}.hero-mobile{display:block;width:100%;height:320px;object-fit:cover;object-position:right;margin-top:20px}.hero-services{position:relative;left:auto;bottom:auto;padding:24px 6vw;display:flex;flex-wrap:wrap;gap:14px;font-size:12px;border-bottom:1px solid var(--line)}.hero-services a{padding:0 14px 0 0}.section{padding:75px 6vw}.service-row{gap:5%;padding:40px 0}.service-copy p{font-size:14px}.service-copy h3{font-size:23px}.about-section,.flow-section{grid-template-columns:1fr;gap:40px}.about-body{max-width:680px}.faq-section{grid-template-columns:1fr;gap:24px}.section__head{margin-bottom:40px}.works-section{gap:5%}}
@media(max-width:600px){.hero__copy{padding-top:6px}.hero h1{font-size:27px;line-height:1.65;letter-spacing:0}.hero h1>span{display:inline}.hero h1>span:nth-child(2):before{content:'';display:block}.hero__lead{font-size:15px;margin:19px 0 24px}.hero-kicker{font-size:10px;letter-spacing:.16em}.hero__actions{gap:10px;display:grid;grid-template-columns:1fr}.hero .cw-btn{width:100%;font-size:14px;min-height:52px;padding:14px 20px;justify-content:space-between}.hero-mobile{height:225px;margin-top:12px;object-position:78% center}.hero-services{gap:13px 0;font-size:11px;display:grid;grid-template-columns:1fr 1fr;padding:22px 6vw}.hero-services a{padding-left:12px}.hero-services a:nth-child(odd){padding-left:0}.hero-services a:nth-child(even){border:0}.section{padding:58px 6vw}.section h2{font-size:28px}.section__head>p:last-child:not(.eyebrow){font-size:14px}.service-row{grid-template-columns:1fr;gap:22px;padding:30px 0 40px}.service-row:nth-of-type(even) figure{order:0}.service-row figure img{aspect-ratio:4/3}.service-copy .eyebrow{margin-top:0}.service-copy h3{font-size:23px;margin-top:10px}.service-copy .scope{font-size:12px}.service-copy .service-catch{font-size:17px}.works-section{grid-template-columns:1fr;gap:30px}.works-note{padding-left:20px}.about-section h2{font-size:25px}.about-body p{font-size:15px}.flow-list li{gap:12px}.faq-list summary{font-size:14px}.cw-contact h2{font-size:32px}.cw-contact{padding-top:75px;padding-bottom:75px}.contact-orbit{width:390px;height:390px;left:calc(50% - 195px)}.contact-status{font-size:13px;padding:18px 8px}.cw-footer{grid-template-columns:1fr;padding:40px 6vw 24px;gap:25px}.cw-footer nav{gap:12px}.cw-footer .copyright{font-size:10px}.eyebrow{font-size:11px}}
@media(prefers-reduced-motion:reduce){[data-reveal]{transform:none!important;clip-path:none!important;transition:opacity .6s ease!important}.hero__ambient{display:none}.marquee__inner{animation-duration:55s}html{scroll-behavior:auto}}

.eyebrow{color:var(--ink)}.about-section .eyebrow{color:#f8c61d}.hero__lead{color:var(--ink)}
.faq-list details:not([open])>p{display:none}.faq-list details[open]>p{display:block;margin-top:12px;padding-bottom:6px}.faq-list summary:hover{color:#305b82}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:400px}.values span{text-align:center}
.service-copy .scope,.cw-footer p,.cw-footer .footer-note{font-size:15px}
.logo-window{background:url('assets/logo-navy.png') center 45%/100% auto no-repeat}.logo-window img{display:none}

@media(min-width:1041px){.flow-section .section__head{position:sticky;top:60px;align-self:start}}
.flow-list li:before{transform:scaleY(0);transition:transform .9s ease .2s}.flow-list li.is-visible:before{transform:scaleY(1)}
.nav a,.cw-footer nav a{min-height:44px;display:flex;align-items:center}.nav{gap:28px}
@media(prefers-reduced-motion:reduce){.flow-list li:before{transform:none;transition:none}}
@media(max-width:600px){[data-reveal="right"]:not(.is-visible){transform:translateX(16px)}[data-reveal="left"]:not(.is-visible){transform:translateX(-16px)}}
.logo-window{background-position:center 53%}
@media(max-width:600px){.hero h1>span{display:block}.hero h1 .mobile-phrase{display:block}.hero h1>span:nth-child(2):before{display:none}}

.email-address{margin-top:22px;overflow-wrap:anywhere}.email-address a{text-decoration:underline;text-underline-offset:5px}.mail-note{font-size:14px;max-width:550px;margin:16px auto 0}.footer-email{overflow-wrap:anywhere}.about-body>.text-link{color:white;margin:18px 0}.contact-destination{position:relative;z-index:1}
