/* Layout concept: 文字と線と余白だけで組む。12カラムの左寄せ、罫線で区切り、色は白・墨・ロゴの青緑の3つ */
:root{
  color-scheme:light;
  --bg:#FFFFFF; --bg2:#F3F4F2; --ink:#121715; --ink2:#3B4441; --mute:#737B78; --line:#DADDDA; --teal:#0F7A75; --teal2:#0B5B57; --citron:#D9CF2C;
  --jp:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;
  --en:"Archivo","Zen Kaku Gothic New",system-ui,sans-serif;
  --ease:cubic-bezier(.2,.75,.15,1);
  --mint:#EAF4F0; --mint2:#D6EAE3;
  --bc-red:#DE1E28; --bc-ink:#16110F; --bc-yellow:#FFD23F;
  --dela:"Dela Gothic One","Zen Kaku Gothic New",sans-serif;
  --gloss:linear-gradient(180deg,#5BC3A6 0%,#1C9A86 38%,#0F7A75 62%,#0A5853 100%);
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--jp);font-weight:500;font-size:16px;line-height:1.95;letter-spacing:.03em;overflow-x:clip;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{margin:0;font-weight:900;line-height:1.3;letter-spacing:.02em;text-wrap:balance}
p{margin:0}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:200;background:#fff;padding:8px 12px}
[hidden]{display:none!important}

/* ---------- text reveal ---------- */
.ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.ln>span{display:inline-block}
.rule{height:1px;background:var(--line);transform-origin:left center}

/* ---------- links & buttons ---------- */
.ul{position:relative;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--ease)}
.ul:hover{background-size:100% 1px}
.arrow{display:inline-flex;align-items:center;gap:12px;font-weight:700;text-decoration:none}
.arrow i{position:relative;display:inline-block;width:38px;height:38px;border-radius:50%;border:1px solid currentColor;overflow:hidden;flex:none}
.arrow i::before,.arrow i::after{content:"";position:absolute;inset:0;background:no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23121715' stroke-width='2'%3E%3Cpath d='M2 8h11M9 4l4 4-4 4'/%3E%3C/svg%3E");transition:transform .45s var(--ease)}
.arrow i::after{transform:translateX(-100%)}
.arrow:hover i::before{transform:translateX(100%)}
.arrow:hover i::after{transform:none}
.arrow--w i::before,.arrow--w i::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M2 8h11M9 4l4 4-4 4'/%3E%3C/svg%3E")}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 28px;font-family:var(--jp);font-weight:700;font-size:15px;text-decoration:none;border:0;cursor:pointer;position:relative;overflow:hidden;isolation:isolate;transition:color .4s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn--ink{background:linear-gradient(180deg,#2A322F,var(--ink) 55%);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 10px 22px -12px rgba(18,23,21,.6)}.btn--ink::before{background:var(--teal)}
.btn--line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.btn--line::before{background:var(--ink)}.btn--line:hover{color:#fff}
.btn--teal{background:var(--gloss);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 12px 24px -12px rgba(15,122,117,.7)}.btn--teal::before{background:var(--ink)}
.btn--green{background:linear-gradient(180deg,#2BDA76,#06C755 55%,#05AE4B);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 12px 24px -12px rgba(6,199,85,.7)}.btn--green::before{background:#04A447}
.btn--sm{min-height:44px;padding:0 20px;font-size:14px}

/* ---------- header ---------- */
.hd{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:box-shadow .3s}
.hd.is-scrolled{box-shadow:0 1px 0 var(--line)}
.hd__in{display:flex;align-items:center;gap:28px;height:80px}
.hd__logo{width:150px;flex:none}
.hd__nav{display:flex;gap:30px;margin-left:auto;font-weight:700;font-size:14.5px}
.hd__nav a{text-decoration:none;position:relative;padding-block:6px}
.hd__nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.hd__nav a:hover::after,.hd__nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.hd__cta{display:flex;gap:8px}
.burger{display:none;margin-left:auto;width:48px;height:48px;border:0;background:var(--ink);color:#fff;cursor:pointer;align-items:center;justify-content:center}
.burger span{display:block;width:20px;height:2px;background:currentColor;position:relative;transition:background .3s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor;transition:transform .35s var(--ease)}
.burger span::before{top:-6px}.burger span::after{top:6px}
.hd.is-open .burger span{background:transparent}
.hd.is-open .burger span::before{transform:translateY(6px) rotate(45deg)}
.hd.is-open .burger span::after{transform:translateY(-6px) rotate(-45deg)}
.drawer{display:none}
@media (max-width:1000px){
  .hd__nav,.hd__cta{display:none}.burger{display:inline-flex}.hd__in{height:66px}.hd__logo{width:124px}
  .drawer{display:block;position:fixed;inset:66px 0 auto 0;background:#fff;padding:8px max(20px,env(safe-area-inset-right,0px)) 26px max(20px,env(safe-area-inset-left,0px));clip-path:inset(0 0 100% 0);transition:clip-path .5s var(--ease);box-shadow:0 1px 0 var(--line)}
  .hd.is-open .drawer{clip-path:inset(0 0 0 0)}
  .drawer a.dl{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line);font-weight:900;font-size:19px;text-decoration:none}
  .drawer a.dl small{font-family:var(--en);font-weight:600;font-size:11px;letter-spacing:.16em;color:var(--mute)}
  .drawer__cta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
}

/* ---------- page transition ---------- */
.pt{position:fixed;inset:0;z-index:100;pointer-events:none;background:var(--ink);transform:scaleY(0);transform-origin:bottom}
@media (prefers-reduced-motion:reduce){.pt{display:none}}

/* ---------- section scaffolding ---------- */
.sec{padding-block:clamp(80px,11vw,150px)}
.lab{display:flex;align-items:center;gap:14px;font-weight:700;font-size:14px;color:var(--ink2)}
.lab::before{content:"";width:28px;height:1px;background:var(--ink)}
.lab em{font-style:normal;font-family:var(--en);font-weight:600;font-size:12px;letter-spacing:.16em;color:var(--mute);text-transform:uppercase}
.h2{font-size:clamp(32px,5vw,64px);margin-top:22px;line-height:1.25}
.lead{margin-top:26px;max-width:36em;color:var(--ink2);font-size:clamp(15px,1.3vw,17px)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 clamp(16px,2vw,28px)}

/* ---------- HERO ---------- */
.hero{position:relative;padding-block:clamp(56px,8vw,110px) clamp(48px,6vw,80px);overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-2;right:-12%;top:-20%;width:min(90vw,1100px);aspect-ratio:1;background:radial-gradient(closest-side,rgba(217,207,44,.30),rgba(217,207,44,0) 70%) 70% 30%/60% 60% no-repeat,radial-gradient(closest-side,rgba(28,154,134,.26),rgba(28,154,134,0) 72%) 30% 60%/75% 75% no-repeat;filter:blur(10px);animation:glow 14s ease-in-out infinite alternate}
@keyframes glow{to{transform:translate(-4%,6%) scale(1.06)}}
.topo{position:absolute;inset:0;z-index:-1;pointer-events:none;background-repeat:no-repeat;background-size:cover;background-position:center}
.hero .topo{-webkit-mask:linear-gradient(90deg,transparent 15%,#000 60%);mask:linear-gradient(90deg,transparent 15%,#000 60%)}
.has-topo{position:relative;isolation:isolate;overflow:hidden}
.has-topo::after{content:"";position:absolute;z-index:-1;pointer-events:none;width:min(70vw,820px);aspect-ratio:1;right:-18%;top:-30%;border-radius:50%;background:radial-gradient(closest-side,rgba(28,154,134,.16),rgba(28,154,134,0));filter:blur(8px)}
.svcsec::after{background:radial-gradient(closest-side,rgba(255,255,255,.75),rgba(255,255,255,0))}
.stsec::after,.cta::after{background:radial-gradient(closest-side,rgba(28,154,134,.28),rgba(28,154,134,0));right:-20%;top:-35%}
.wr::after{left:-22%;right:auto;top:auto;bottom:-40%;background:radial-gradient(closest-side,rgba(217,207,44,.16),rgba(217,207,44,0))}
@media (prefers-reduced-motion:reduce){.hero::before{animation:none}}
.hero__top{display:flex;justify-content:space-between;gap:20px;font-family:var(--en);font-weight:600;font-size:12px;letter-spacing:.16em;color:var(--mute);text-transform:uppercase}
.hero h1{margin-top:clamp(36px,5vw,64px);font-size:clamp(46px,9.2vw,140px);line-height:1.12;letter-spacing:0}
.hero h1 .t{position:relative;display:inline-block;background:var(--gloss);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero h1 .t::before,.hero h1 .t::after{content:attr(data-t);position:absolute;left:0;top:0;-webkit-background-clip:text;background-clip:text;color:transparent;pointer-events:none}
.hero h1 .t::before{background-image:linear-gradient(180deg,rgba(255,255,255,.6) 0%,rgba(255,255,255,0) 46%)}
.hero h1 .t::after{background-image:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.95) 50%,transparent 60%);background-size:300% 100%;background-repeat:no-repeat;animation:sweep 6s var(--ease) infinite 1.4s}
.hero__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;margin-top:clamp(40px,6vw,72px);padding-top:28px;border-top:1px solid var(--ink)}
.rot{font-size:clamp(18px,2.2vw,28px);font-weight:900;line-height:1.5}
.rot__box{display:inline-grid;height:1.5em;overflow:hidden;vertical-align:bottom}
.rot__box span{grid-area:1/1;color:var(--teal);transform:translateY(105%)}
.rot__box span.on{transform:none}
.rot small{display:block;margin-top:10px;font-size:15px;font-weight:500;color:var(--ink2);line-height:1.9;max-width:34em}
.hero__btns{display:flex;flex-wrap:wrap;gap:10px}
.hero__mark{position:absolute;right:max(-30px,-2vw);top:clamp(60px,9vw,140px);width:clamp(180px,24vw,380px);aspect-ratio:269/281;pointer-events:none;filter:drop-shadow(0 22px 22px rgba(15,122,117,.2)) drop-shadow(0 4px 5px rgba(18,23,21,.12))}
.hero__mark img{width:100%;height:100%;opacity:.95}
.mask-shine{position:absolute;inset:0;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;pointer-events:none}
.mask-shine.hl{background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 42%,rgba(0,0,0,0) 70%,rgba(0,0,0,.18) 100%)}
.mask-shine.sw{background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.95) 50%,transparent 62%) 0 0/300% 100% no-repeat;animation:sweep 5.5s var(--ease) infinite}
@keyframes sweep{0%,55%{background-position:120% 0}100%{background-position:-60% 0}}
.hd__logo{position:relative}
.hd__logo .mask-shine.sw{animation-duration:7s}
@media (max-width:820px){.hero__mark{width:150px;top:16px;right:-20px;opacity:.5}}
@media (max-width:820px){.hero__row{grid-template-columns:1fr}.hero__top span:last-child{display:none}}

/* ---------- ticker ---------- */
.tick{border-block:1px solid var(--ink);overflow:hidden;white-space:nowrap}
.tick__t{display:inline-flex;align-items:center;padding-block:20px;animation:tk 46s linear infinite;font-weight:900;font-size:clamp(18px,2vw,24px)}
.tick:hover .tick__t{animation-play-state:paused}
.stp{display:inline-flex;align-items:center;gap:16px;padding-inline:8px}
.stp__ic{position:relative;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;flex:none;background:radial-gradient(circle at 35% 28%,#FFFFFF 0%,#EAF4F1 55%,#D3E8E3 100%);box-shadow:inset 0 -3px 6px rgba(15,122,117,.18),inset 0 2px 2px rgba(255,255,255,.9),0 8px 16px -8px rgba(15,122,117,.45)}
.stp__ic svg{width:34px;height:34px}
.stp small{display:block;font-family:var(--en);font-weight:600;font-size:11px;letter-spacing:.16em;color:var(--teal);line-height:1.2}
.stp b{display:block;font-weight:900;line-height:1.35}
.stp__ar{display:inline-flex;align-items:center;gap:6px;margin-inline:22px;color:var(--teal)}
.stp__ar i{display:block;width:44px;height:2px;background:repeating-linear-gradient(90deg,var(--teal) 0 6px,transparent 6px 11px)}
.stp--goal .stp__ic{background:radial-gradient(circle at 35% 28%,#6FD2B5 0%,#1C9A86 50%,#0B5B57 100%);box-shadow:inset 0 2px 3px rgba(255,255,255,.55),0 10px 18px -8px rgba(15,122,117,.7)}
.stp--goal b{color:var(--teal)}
@keyframes tk{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.tick__t{animation:none}}

/* ---------- intro ---------- */
.intro .h2{grid-column:1/8}
.intro__body{grid-column:8/13;align-self:end;display:grid;gap:20px;color:var(--ink2)}
.intro__body .arrow{margin-top:10px;color:var(--ink)}
@media (max-width:900px){.intro .h2,.intro__body{grid-column:1/-1}.intro__body{margin-top:28px}}

/* ---------- services list ---------- */
.svl{margin-top:clamp(40px,6vw,72px);border-top:1px solid var(--ink)}
.svr{position:relative;display:grid;grid-template-columns:minmax(0,4.4fr) minmax(0,5fr) auto;gap:24px;align-items:center;padding:clamp(26px,3.4vw,40px) 0;border-bottom:1px solid var(--line);text-decoration:none;isolation:isolate}
.svr::before{content:"";position:absolute;inset:0 calc(-1 * max(20px,env(safe-area-inset-left,0px)));z-index:-1;background:var(--bg2);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease)}
.svr:hover::before{transform:scaleY(1)}
.orb{position:relative;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;flex:none;background:radial-gradient(circle at 35% 28%,#FFFFFF 0%,#EAF4F1 55%,#D3E8E3 100%);box-shadow:inset 0 -3px 6px rgba(15,122,117,.18),inset 0 2px 2px rgba(255,255,255,.9),0 8px 16px -8px rgba(15,122,117,.45);transition:transform .5s var(--ease),background .5s}
.orb svg{width:32px;height:32px}
.orb--teal{background:radial-gradient(circle at 35% 28%,#6FD2B5 0%,#1C9A86 50%,#0B5B57 100%);box-shadow:inset 0 2px 3px rgba(255,255,255,.55),0 12px 22px -10px rgba(15,122,117,.8)}
.svr__t{display:flex;align-items:center;gap:22px;min-width:0}
.svr:hover .orb{transform:rotate(-8deg) scale(1.08)}
.svr h3{font-size:clamp(24px,3.2vw,42px);display:flex;align-items:baseline;gap:18px;transition:transform .5s var(--ease)}
.svr:hover h3{transform:translateX(10px)}
.svr h3 small{font-family:var(--en);font-weight:600;font-size:12px;letter-spacing:.16em;color:var(--mute)}
.svr p{color:var(--ink2);font-size:15px}
@media (max-width:820px){.svr{grid-template-columns:1fr auto}.svr p{grid-column:1/-1;grid-row:2}.svr h3{flex-direction:column;gap:2px}.orb{width:52px;height:52px}.orb svg{width:26px;height:26px}.svr__t{gap:14px}}

/* ---------- worries ---------- */
.wr{background:var(--bg)}
.svcsec{background:var(--mint)}
.svcsec .svl{border-top-color:var(--ink)}
.svcsec .svr{border-bottom-color:var(--mint2)}
.svcsec .svr::before{background:#fff}
.stsec{background:var(--ink);color:#fff}
.stsec .lab{color:#C9D0CD}.stsec .lab::before{background:#fff}
.stsec .stg{border-top-color:rgba(255,255,255,.4)}
.stsec .stg article{border-left-color:rgba(255,255,255,.14)}
.stsec .stg p{color:#B9C4C0}
@media (max-width:900px){.stsec .stg article{border-bottom-color:rgba(255,255,255,.14)}}
.wr .h2{grid-column:1/6}
.wr__list{grid-column:6/13;list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.wr__list li{display:grid;grid-template-columns:2.4em minmax(0,1fr);padding:24px 0;border-bottom:1px solid var(--line);font-size:clamp(16px,1.5vw,19px);font-weight:700;line-height:1.7}
.wr__list li::before{content:"？";color:var(--teal);font-weight:900}
.wr__ans{grid-column:6/13;margin-top:36px;font-size:clamp(20px,2.3vw,28px);font-weight:900;line-height:1.6}
.wr__ans span{color:var(--teal)}
.wr__ans,.h2,.cta__big{word-break:keep-all;overflow-wrap:anywhere}
@media (max-width:900px){.wr .h2,.wr__list,.wr__ans{grid-column:1/-1}.wr__list{margin-top:36px}}

/* ---------- strengths ---------- */
.stg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(40px,6vw,72px);border-top:1px solid var(--ink)}
.stg article{padding:32px clamp(18px,2.4vw,36px) 8px;border-left:1px solid var(--line);min-width:0}
.stg article:first-child{border-left:0;padding-left:0}
.stg h3{font-size:clamp(20px,2vw,26px);line-height:1.5;margin-bottom:18px}
.stg p{color:var(--ink2);font-size:15px}
.stg .k{font-family:var(--en);font-weight:800;font-size:13px;letter-spacing:.14em;color:var(--teal);display:block;margin-bottom:18px}
.stsec .k{color:#7FD3C9}
.stg .orb{width:84px;height:84px;margin-bottom:24px}
.stg .orb svg{width:40px;height:40px}
.stg .big{position:absolute;right:clamp(10px,2vw,30px);top:20px;font-family:var(--en);font-weight:800;font-size:clamp(64px,7vw,110px);line-height:1;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0));-webkit-background-clip:text;background-clip:text;color:transparent;pointer-events:none}
.stg article{position:relative}
@media (max-width:900px){.stg{grid-template-columns:1fr}.stg article{border-left:0;border-bottom:1px solid var(--line);padding:28px 0}}

/* ---------- media ---------- */
.md{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);text-decoration:none}
.md__l{padding:clamp(28px,4vw,56px) clamp(0px,2vw,24px) clamp(28px,4vw,56px) 0;display:grid;gap:18px;align-content:center;border-right:1px solid var(--line)}
.md__l h3{font-size:clamp(26px,3.4vw,44px)}
.md__l p{color:var(--ink2)}
.md__r{display:grid;place-items:center;padding:clamp(28px,4vw,56px);background:var(--bg2);overflow:hidden}
.md__r img{width:min(100%,340px);transition:transform .8s var(--ease)}
.md:hover .md__r img{transform:scale(1.05)}
@media (max-width:820px){.md{grid-template-columns:1fr}.md__l{border-right:0;padding-right:0}}

/* ---------- ぶち上げ千葉（この部分だけ、ぶち上げ千葉の色で） ---------- */
.bc{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);background:var(--bc-red);color:#fff;border:3px solid var(--bc-ink);box-shadow:10px 10px 0 var(--bc-ink);text-decoration:none;overflow:hidden;isolation:isolate;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.bc:hover{transform:translate(-3px,-3px);box-shadow:13px 13px 0 var(--bc-ink)}
.bc::before{content:"";position:absolute;inset:-60%;z-index:-1;background:repeating-conic-gradient(from 0deg at 72% 55%,rgba(255,255,255,.09) 0 9deg,transparent 9deg 18deg);animation:bcspin 80s linear infinite}
@keyframes bcspin{to{transform:rotate(360deg)}}
.bc__l{padding:clamp(28px,4vw,56px);display:grid;gap:18px;align-content:center}
.bc__l small{font-family:var(--dela);font-size:13px;letter-spacing:.12em;color:var(--bc-yellow)}
.bc__l h3{font-family:var(--dela);font-weight:400;font-size:clamp(32px,4.4vw,60px);line-height:1.15;text-shadow:5px 5px 0 var(--bc-ink)}
.bc__l p{color:#FFE3E4;font-weight:700;max-width:28em}
.bc__go{justify-self:start;display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--bc-ink);font-weight:900;padding:12px 22px;border:3px solid var(--bc-ink);border-radius:999px;box-shadow:4px 4px 0 var(--bc-ink)}
.bc__r{position:relative;display:grid;place-items:center;padding:clamp(24px,3vw,40px);min-height:300px}
.bc__plaque{position:relative;width:min(100%,360px);background:#fff;border:3px solid var(--bc-ink);border-radius:18px;padding:16px 20px;box-shadow:7px 7px 0 var(--bc-ink);transform:rotate(-4deg);transition:transform .5s var(--ease)}
.bc:hover .bc__plaque{transform:rotate(0) scale(1.03)}
.bc__dancho{position:absolute;right:4%;bottom:-14px;width:clamp(110px,13vw,170px);transform:rotate(6deg);filter:drop-shadow(5px 6px 0 rgba(22,17,15,.35));transition:transform .5s var(--ease)}
.bc:hover .bc__dancho{transform:rotate(-2deg) translateY(-8px)}
@media (max-width:820px){.bc{grid-template-columns:1fr}.bc__r{min-height:240px}}
@media (prefers-reduced-motion:reduce){.bc::before{animation:none}}
.ph--bc{background:var(--bc-red);color:#fff;border-bottom:3px solid var(--bc-ink);position:relative;overflow:hidden;isolation:isolate}
.ph--bc::before{content:"";position:absolute;inset:-60%;z-index:-1;background:repeating-conic-gradient(from 0deg at 80% 60%,rgba(255,255,255,.08) 0 8deg,transparent 8deg 16deg);animation:bcspin 90s linear infinite}
.ph--bc .crumb{color:#FFD0D2}.ph--bc .crumb a:hover{color:#fff}
.ph--bc h1{font-family:var(--dela);font-weight:400;text-shadow:6px 6px 0 var(--bc-ink)}
.ph--bc .ph__en{color:var(--bc-yellow)}
.ph--bc p{color:#FFE3E4;font-weight:700}
.ph--bc .ph__dancho{position:absolute;right:max(20px,5vw);bottom:-18px;width:clamp(140px,18vw,250px);filter:drop-shadow(6px 8px 0 rgba(22,17,15,.35))}
@media (max-width:700px){.ph--bc .ph__dancho{width:92px;top:18px;bottom:auto;right:14px}}
.bcg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:clamp(36px,5vw,56px)}
.bcg article{background:#fff;border:3px solid var(--bc-ink);border-radius:20px;box-shadow:6px 6px 0 var(--bc-ink);padding:26px 24px;min-width:0}
.bcg .k{display:inline-block;font-family:var(--dela);color:#fff;background:var(--bc-red);border:2.5px solid var(--bc-ink);border-radius:999px;padding:2px 14px;font-size:13px;margin-bottom:14px}
.bcg h3{font-family:var(--dela);font-weight:400;font-size:clamp(19px,1.8vw,23px);line-height:1.4;margin-bottom:10px;color:var(--bc-ink)}
.bcg p{color:#4A3F3B;font-weight:700;font-size:15px}
@media (max-width:860px){.bcg{grid-template-columns:1fr}}
/* ---------- news ---------- */
.nw{list-style:none;margin:clamp(32px,5vw,56px) 0 0;padding:0;border-top:1px solid var(--ink)}
.nw li a{display:grid;grid-template-columns:8em 7em minmax(0,1fr) auto;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none}
.nw time{font-family:var(--en);font-weight:500;color:var(--mute);font-variant-numeric:tabular-nums}
.nw .c{font-size:12.5px;color:var(--teal);font-weight:700}
.nw b{font-weight:700}
.nw li a:hover b{color:var(--teal)}
@media (max-width:720px){.nw li a{grid-template-columns:auto auto;row-gap:4px}.nw b{grid-column:1/-1}.nw li a>:last-child{display:none}}

/* ---------- CTA ---------- */
.cta{background:var(--ink);color:#fff}
.cta__in{padding-block:clamp(80px,11vw,140px)}
.cta .lab{color:#C9D0CD}.cta .lab::before{background:#fff}
.cta__big{display:block;margin-top:26px;font-weight:900;font-size:clamp(44px,9vw,128px);line-height:1.1;text-decoration:none}
.cta__big span{display:inline-block;transition:color .4s}
.cta__big .ln>span{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 50%,#BFE9E1 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 0 22px rgba(91,195,166,.35))}
.cta__big:hover .ln>span{filter:drop-shadow(0 0 30px rgba(91,195,166,.7))}
.cta__row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:end;margin-top:44px;padding-top:28px;border-top:1px solid rgba(255,255,255,.25)}
.cta__row p{color:#C9D0CD;max-width:32em}
.cta__btns{display:flex;flex-wrap:wrap;gap:10px}
.cta .btn--line{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}.cta .btn--line::before{background:#fff}.cta .btn--line:hover{color:var(--ink)}

/* ---------- sub pages ---------- */
.ph{padding-block:clamp(56px,8vw,110px) clamp(40px,5vw,64px);border-bottom:1px solid var(--ink)}
.crumb{display:flex;gap:10px;font-size:13px;color:var(--mute);margin-bottom:clamp(28px,4vw,48px)}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--ink)}
.ph h1{font-size:clamp(44px,8vw,110px);line-height:1.1}
.ph__en{display:block;margin-top:14px;font-family:var(--en);font-weight:600;font-size:13px;letter-spacing:.2em;color:var(--mute);text-transform:uppercase}
.ph p{margin-top:28px;max-width:36em;color:var(--ink2)}
.svnav{border-bottom:1px solid var(--line);position:sticky;top:calc(env(safe-area-inset-top,0px) + 80px);background:rgba(255,255,255,.95);z-index:20}
.svnav .wrap{display:flex;gap:28px;overflow-x:auto;scrollbar-width:none;padding-block:14px;font-weight:700;font-size:14px;white-space:nowrap}
.svnav a{text-decoration:none;color:var(--ink2)}.svnav a:hover{color:var(--teal)}
@media (max-width:1000px){.svnav{top:calc(env(safe-area-inset-top,0px) + 66px)}}
.sv{scroll-margin-top:150px;padding-block:clamp(56px,8vw,100px);border-bottom:1px solid var(--line)}
.sv__h{grid-column:1/6}
.sv__h small{font-family:var(--en);font-weight:600;font-size:12px;letter-spacing:.16em;color:var(--mute)}
.sv__h h2{font-size:clamp(30px,4vw,52px);margin-top:12px}
.sv__h p{margin-top:22px;color:var(--ink2)}
.sv__b{grid-column:7/13;display:grid;gap:36px}
.sv__b h3{font-size:15px;font-weight:700;color:var(--mute);padding-bottom:12px;border-bottom:1px solid var(--ink);margin-bottom:6px}
.sv__b ul{list-style:none;margin:0;padding:0}
.sv__b li{padding:14px 0;border-bottom:1px solid var(--line);font-weight:700;display:grid;grid-template-columns:1.6em minmax(0,1fr)}
.sv__b li::before{content:"—";color:var(--teal)}
@media (max-width:900px){.sv__h,.sv__b{grid-column:1/-1}.sv__b{margin-top:36px}}
.msg .h2{grid-column:1/7}
.msg__body{grid-column:8/13;display:grid;gap:22px;color:var(--ink2)}
.sign{display:flex;align-items:baseline;gap:16px;margin-top:10px;color:var(--ink)}
.sign small{font-size:13px;color:var(--mute)}.sign b{font-size:26px;font-weight:900;letter-spacing:.14em}
.photo-slot{grid-column:1/6;margin-top:40px;aspect-ratio:4/5;max-width:100%;background:repeating-linear-gradient(135deg,var(--bg2) 0 14px,#fff 14px 28px);border:1px solid var(--line);display:grid;place-items:center;color:var(--mute);font-size:13px;text-align:center}
@media (max-width:900px){.msg .h2,.msg__body,.photo-slot{grid-column:1/-1}.msg__body{margin-top:28px}.photo-slot{aspect-ratio:4/3}}
.flow{list-style:none;margin:clamp(40px,6vw,72px) 0 0;padding:0;border-top:1px solid var(--ink);counter-reset:f}
.flow li{display:grid;grid-template-columns:5em minmax(0,1fr) minmax(0,1.6fr);gap:24px;padding:30px 0;border-bottom:1px solid var(--line);align-items:baseline}
.flow li::before{counter-increment:f;content:counter(f,decimal-leading-zero);font-family:var(--en);font-weight:800;font-size:28px;color:var(--teal);line-height:1}
.flow h3{font-size:clamp(20px,2vw,24px)}
.flow p{color:var(--ink2)}
@media (max-width:720px){.flow li{grid-template-columns:3.6em minmax(0,1fr)}.flow p{grid-column:2}}
.co{border-top:1px solid var(--ink);margin:0}
.co div{display:grid;grid-template-columns:12em minmax(0,1fr);gap:24px;padding:26px 0;border-bottom:1px solid var(--line)}
.co dt{font-weight:700;color:var(--mute)}
.co dd{margin:0;font-weight:700}
.co dd ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
@media (max-width:720px){.co div{grid-template-columns:1fr;gap:4px}}

/* ---------- contact ---------- */
.ct .form{grid-column:1/8}
.ct aside{grid-column:9/13;display:grid;gap:28px;align-content:start}
@media (max-width:960px){.ct .form,.ct aside{grid-column:1/-1}.ct aside{margin-top:48px}}
.form{display:grid;gap:30px}
.fld{display:grid;gap:10px}
.fld label,.fld legend{font-weight:700;font-size:15px;display:flex;align-items:center;gap:10px;padding:0}
.req{font-size:11px;color:var(--teal);border:1px solid var(--teal);padding:0 6px;line-height:1.7}
.fld input[type=text],.fld input[type=email],.fld input[type=tel],.fld textarea{width:100%;font:inherit;font-size:16px;padding:14px 0;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);border-radius:0;transition:border-color .3s,box-shadow .3s}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 1px 0 var(--teal)}
.fld textarea{min-height:150px;resize:vertical}
.fld fieldset{border:0;margin:0;padding:0;display:grid;gap:12px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills label{position:relative;cursor:pointer;font-weight:500;font-size:14px}
.pills input{position:absolute;opacity:0;pointer-events:none}
.pills span{display:inline-block;padding:9px 16px;box-shadow:inset 0 0 0 1px var(--line);transition:.25s}
.pills input:checked+span{background:var(--ink);color:#fff;box-shadow:none}
.pills input:focus-visible+span{outline:2px solid var(--teal);outline-offset:2px}
.err{color:#B23A30;font-size:13.5px;font-weight:700}
.agree{display:flex;gap:10px;align-items:center;font-size:14.5px}
.agree input{width:20px;height:20px;accent-color:var(--ink)}
.form .btn{justify-self:start}
.lineq{display:grid;gap:14px;padding-top:24px;border-top:1px solid var(--ink)}
.lineq img{width:150px;image-rendering:pixelated}
.lineq b{font-size:20px;font-weight:900}
.lineq p,.small{font-size:14px;color:var(--ink2)}
.done{display:grid;gap:18px;padding-top:28px;border-top:1px solid var(--ink)}
.done h2{font-size:clamp(26px,3vw,36px)}
.done dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 20px;font-size:14.5px}
.done dt{color:var(--mute);font-weight:700}.done dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap;font-weight:700}
.warn{background:var(--bg2);padding:16px 18px;font-size:14.5px;border-left:3px solid var(--citron)}
.pp{max-width:820px;display:grid;gap:34px}
.pp h2{font-size:20px;margin-bottom:10px}
.pp p,.pp li{color:var(--ink2)}
.pp ul{margin:0;padding-left:1.2em}

/* ---------- footer ---------- */
.ft{padding-block:clamp(64px,8vw,96px) 28px;border-top:1px solid var(--ink)}
.ft__grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,.7fr)) minmax(0,1fr);gap:40px}
.ft__logo{width:200px}
.ft__addr{margin-top:22px;font-size:14px;color:var(--ink2);line-height:1.9}
.ft h4{margin:0 0 16px;font-family:var(--en);font-weight:600;font-size:12px;letter-spacing:.16em;color:var(--mute);text-transform:uppercase}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-weight:700;font-size:14.5px}
.ft ul a{text-decoration:none}
.ft__line{display:flex;gap:16px;align-items:center}
.ft__line img{width:88px;image-rendering:pixelated;flex:none}
.ft__line b{display:block;font-weight:900;line-height:1.5}
.ft__line a{font-size:13.5px;font-weight:700;color:var(--teal);text-decoration:none}
.ft__big{margin-top:clamp(56px,8vw,96px);font-weight:900;font-size:clamp(46px,11.2vw,166px);line-height:1.1;letter-spacing:-.01em;white-space:nowrap;padding-bottom:.08em}
.gl{position:relative;display:inline-block;background:var(--gloss);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(255,255,255,.9)) drop-shadow(0 22px 26px rgba(15,122,117,.28))}
.gl::before,.gl::after{content:attr(data-t);position:absolute;left:0;top:0;-webkit-background-clip:text;background-clip:text;color:transparent;pointer-events:none}
.gl::before{background-image:linear-gradient(180deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,.12) 40%,rgba(255,255,255,0) 52%,rgba(0,40,36,.22) 100%)}
.gl::after{background-image:linear-gradient(105deg,transparent 42%,rgba(255,255,255,1) 50%,transparent 58%);background-size:300% 100%;background-repeat:no-repeat;animation:sweep 5s var(--ease) infinite}
.gl b{font-weight:inherit}
.ft__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--mute)}
.ft__bottom a{text-decoration:none}
@media (max-width:900px){.ft__grid{grid-template-columns:1fr 1fr}.ft__grid>:first-child,.ft__grid>:last-child{grid-column:1/-1}}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,16px);background:var(--ink);color:#fff;padding:12px 20px;font-size:14px;font-weight:700;opacity:0;pointer-events:none;transition:.3s;z-index:120;max-width:calc(100% - 32px)}
.toast.on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ===== オープニング ===== */
.op{position:fixed;inset:0;z-index:200;display:grid;place-items:center;overflow:hidden;cursor:pointer;background:radial-gradient(60% 50% at 50% 45%,#EAF6F3 0%,#fff 70%)}
.op[hidden]{display:none}
.op__stage{position:relative;width:min(84vw,640px);aspect-ratio:900/285}
.op__logo{position:absolute;inset:0;will-change:clip-path,transform}
.op__logo img{width:100%;height:100%;display:block}
.op__logo .mask-shine.sw{animation:none;background-position:150% 0}
.op__ring{position:absolute;left:15.5%;top:50%;width:min(30vw,220px);aspect-ratio:1;margin:calc(min(30vw,220px)/-2) 0 0 calc(min(30vw,220px)/-2);border-radius:50%;border:2px solid rgba(15,122,117,.45);opacity:0;pointer-events:none}
.op__st{position:absolute;left:var(--x);top:var(--y);width:var(--z);height:var(--z);margin:calc(var(--z)/-2) 0 0 calc(var(--z)/-2);background:radial-gradient(circle,#FFFBE0 10%,#FFD23F 45%,#E8B400 85%);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:0;pointer-events:none}
.op__tag{position:absolute;left:0;right:0;top:calc(100% + clamp(22px,4vw,40px));margin:0;text-align:center;font-weight:700;font-size:clamp(15px,1.8vw,20px);letter-spacing:.24em;color:var(--ink2)}
.op__tag span{display:inline-block;opacity:0}
.op__tag b{color:var(--teal);font-weight:900}
.op__wipe{position:absolute;inset:0;background:var(--gloss);clip-path:circle(0% at 27% 45%);pointer-events:none}
.op__skip{position:absolute;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);font-size:12px;font-weight:700;color:var(--mute);letter-spacing:.14em}
