*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
:root{
 --paper:#FFFFFF; --cream:#F7F3E9; --tint:#F1EEE6; --ink:#1A1916; --sub:#67635B; --line:#1A1916;
 --red:#E2403A; --green:#3E9B6E; --blue:#2F6FD0; --gold:#E8A525;
 --butter:#FCEFD2; --amber:#B8780C;
 --gut:20px; --max:1240px;
 --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.86' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='150' height='150' filter='url(%23n)' opacity='0.42'/%3E%3C/svg%3E");
 --jp:"Noto Sans JP","Noto Sans CJK JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
 --bd:2px solid var(--ink);
 --sh:5px 5px 0 var(--ink);
 --shs:3px 3px 0 var(--ink);
 --btnh:48px; --btnsh:2px 2px 0 var(--ink);
}
body{font-family:var(--jp);color:var(--ink);background:var(--paper);line-height:1.9;font-size:16px;
 font-feature-settings:"palt" 1;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:var(--gold)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.lb{display:inline-block;font-size:16px;letter-spacing:.2em;font-weight:800;
 border:var(--bd);border-radius:999px;padding:4px 14px;background:#fff;box-shadow:var(--shs)}
.lb--r{background:var(--red);color:#fff} .lb--g{background:var(--green);color:#fff}
.lb--b{background:var(--blue);color:#fff} .lb--y{background:var(--gold)}
.bl{display:flex;align-items:center;justify-content:center;background:#EDE9DE;
 color:#9C9484;font-size:16px;letter-spacing:.14em;text-align:center;line-height:1.7}
h1,h2,h3{font-weight:800;letter-spacing:.01em}

/* ---------- ヘッダー ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:90;transition:background .35s,box-shadow .35s}
.hdr__in{display:flex;align-items:center;gap:14px;max-width:1440px;margin:0 auto;padding:12px var(--gut)}
.hdr__logo{flex:0 0 auto;height:var(--btnh);background:#fff;border:var(--bd);border-radius:999px;
 padding:0 20px;box-shadow:var(--btnsh);display:flex;align-items:center}
.hdr__logo img{height:calc(var(--btnh) * .5);width:auto;display:block}
.hdr.on{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);box-shadow:0 2px 0 var(--ink)}
.hdr.on .hdr__logo{border:none;box-shadow:none;padding:0;background:none}
.hdr__nav{display:none}
.mm__p{display:none}
.more{display:none}
/* 丸の中心を、ロゴの中心と同じ高さに置く（MENUの文字は下にぶら下げる） */
.hmenu{margin-left:auto;align-self:center;position:relative;
 width:calc(var(--btnh) + 8px);height:calc(var(--btnh) + 10px);border:none;background:none;
 padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.hmenu__ic{width:calc(var(--btnh) + 8px);height:var(--btnh);border:var(--bd);border-radius:999px;background:#fff;box-shadow:var(--btnsh);
 display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
 transition:transform .16s steps(2,end),box-shadow .16s steps(2,end),background .16s steps(2,end)}
.hmenu__ic i{display:block;width:18px;height:2.4px;background:var(--ink);border-radius:2px;
 transition:transform .22s steps(2,end),opacity .18s}
.hmenu__tx{position:absolute;left:0;right:0;top:calc(50% + var(--btnh) / 2 + 4px);text-align:center;
 font-size:10px;font-weight:800;letter-spacing:.14em;line-height:1}
.hmenu[aria-expanded="true"] .hmenu__ic{background:var(--ink);transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}
.hmenu[aria-expanded="true"] .hmenu__ic i{background:#fff}
.hmenu[aria-expanded="true"] .hmenu__ic i:nth-child(1){transform:translateY(7.4px) rotate(45deg)}
.hmenu[aria-expanded="true"] .hmenu__ic i:nth-child(2){opacity:0}
.hmenu[aria-expanded="true"] .hmenu__ic i:nth-child(3){transform:translateY(-7.4px) rotate(-45deg)}

/* ---------- ドロワー ---------- */
.drw{position:fixed;inset:0;z-index:88;background:var(--cream);overflow-y:auto;
 opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s}
.drw[hidden]{display:block}
.drw.on{opacity:1;visibility:visible}
.drw__in{padding:112px 20px 54px;max-width:760px;margin:0 auto}
.drw__sec{margin-bottom:30px}
.drw__lb{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.2em;
 background:var(--ink);color:#fff;border-radius:999px;padding:4px 13px;margin-bottom:13px}
.drw__nav{display:grid;gap:0;border-top:var(--bd)}
.drw__nav li{border-bottom:var(--bd)}
.drw__nav a{display:flex;align-items:center;justify-content:space-between;padding:15px 4px;
 font-size:17px;font-weight:800;letter-spacing:-.01em}
.drw__nav a:after{content:"";width:9px;height:9px;border-right:2.4px solid var(--ink);
 border-bottom:2.4px solid var(--ink);transform:rotate(-45deg)}
/* 迷っている人の入口。サービスのカードとは形も色も変えて、並べても競わせない */
.drw__first{display:flex;align-items:center;gap:13px;margin:0 0 26px;padding:15px 16px;
 background:var(--gold);border:var(--bd);border-radius:16px;color:var(--ink);
 transition:background .18s}
.drw__first:hover{background:#D3940F}
.drw__first img{width:56px;height:56px;object-fit:contain;flex:0 0 56px}
.drw__first span{display:block;flex:1 1 auto;min-width:0}
.drw__first b{display:block;font-size:19px;font-weight:900;letter-spacing:-.025em;line-height:1.35}
.drw__first i{display:block;font-style:normal;font-size:12.5px;font-weight:700;line-height:1.55;
 margin-top:3px;color:#4A3B16;text-wrap:balance}
.drw__first em{flex:0 0 auto;font-style:normal;font-size:18px;font-weight:800;line-height:1}
@media(min-width:900px){
 .drw__first{gap:17px;margin-bottom:32px;padding:19px 22px;border-radius:20px}
 .drw__first img{width:68px;height:68px;flex:0 0 68px}
 .drw__first b{font-size:23px}
 .drw__first i{font-size:14px;margin-top:4px}
 .drw__first em{font-size:21px}
}
.drw__mm{display:grid;grid-template-columns:1fr;gap:9px}
.drw__i{display:flex;align-items:center;gap:9px;background:#fff;border:var(--bd);border-radius:14px;
 padding:10px 11px;box-shadow:var(--shs)}
.drw__i img{width:46px;height:46px;object-fit:contain;flex:0 0 46px}
.drw__i i{display:block;font-style:normal;font-size:11.5px;font-weight:700;color:var(--sub);line-height:1.4;white-space:nowrap}
.drw__i b{display:block;font-size:16px;font-weight:800;line-height:1.4;margin-top:2px;letter-spacing:-.02em}
.drw__cta{display:grid;gap:9px}
.drw__c{display:flex;align-items:center;gap:10px;background:#fff;border:var(--bd);border-radius:14px;
 padding:14px 16px;box-shadow:var(--shs);font-size:16px;font-weight:800}
.drw__c--l{background:var(--red);color:#fff}
.drw__c--e{background:var(--gold);padding:10px 16px 10px 10px}
.drw__c--e img{width:52px;height:52px;object-fit:contain;flex:0 0 52px;
 filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff)}
.drw__c--e b{display:block;font-size:15px;line-height:1.35}
.drw__c--e i,.drw__c--t i{display:block;font-style:normal;font-size:12px;font-weight:700;opacity:.72;margin-top:2px;line-height:1.4}
.drw__c--t{flex-direction:column;align-items:flex-start;gap:0}
.drw__c--t b{font-size:21px;letter-spacing:.02em}
body.drw-open{overflow:hidden}
.hbtn{display:none}
.hcta{display:none}

/* ---------- FV ---------- */
.fv{position:sticky;top:0;z-index:1;height:100svh;min-height:600px;overflow:hidden;background:var(--cream)}
.fv__wall{position:absolute;inset:-6% -2%;display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
/* 列の間隔は gap ではなく図の margin で取る。
   gap だと最後の1つぶん間隔が足りず、translateY(-50%) が継ぎ目と合わずに毎周跳ねる */
.fv__col{display:flex;flex-direction:column;gap:0;will-change:transform}
.fv__col--a{animation:drift 70s linear 1.5s infinite}
.fv__col--b{animation:drift 86s linear 1.5s infinite reverse}
.fv__col--c{animation:drift 78s linear 1.5s infinite}
.fv__col--d{animation:drift 94s linear 1.5s infinite reverse}
@keyframes drift{from{transform:translateY(0)}to{transform:translateY(-50%)}}
.fv__col figure{flex:0 0 auto;margin-bottom:9px;overflow:hidden;border-radius:8px;border:var(--bd);
 opacity:0;animation:wallin .46s steps(3,end) var(--wd,0s) both}
@keyframes wallin{
 from{opacity:0;transform:translate(var(--dx,0),var(--dy,0)) rotate(var(--dr,0)) scale(.8)}
 to{opacity:1;transform:translate(0,0) rotate(0) scale(1)}}
.fv__col img{width:100%;height:100%;object-fit:cover;
 filter:saturate(1.05) contrast(1.04) brightness(.985)}
/* コピーの下だけを落とす写真的なビネット（面で敷くスクリムにしない） */
.fv:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
 background:
  radial-gradient(135% 72% at 10% 104%, rgba(12,10,8,.80) 0%, rgba(12,10,8,.58) 24%,
   rgba(12,10,8,.30) 46%, rgba(12,10,8,.10) 64%, rgba(12,10,8,0) 78%),
  linear-gradient(180deg, rgba(12,10,8,.26) 0%, rgba(12,10,8,.06) 18%, rgba(12,10,8,0) 34%)}
/* フィルムの粒子感 */
.fv:before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.5;
 mix-blend-mode:overlay;background-image:var(--grain);background-size:150px 150px}
.fv__col .a1{aspect-ratio:3/4}.fv__col .a2{aspect-ratio:1/1}.fv__col .a3{aspect-ratio:4/5}
/* 下の固定バー（.spb）の高さぶん空ける。iPhoneのホームバーぶんも足す */
.fv__c{position:absolute;z-index:4;left:var(--gut);right:var(--gut);
 bottom:calc(126px + env(safe-area-inset-bottom, 0px))}
.fv__box{display:inline-block;background:none;border:none;border-radius:0;box-shadow:none;padding:0;max-width:100%;
 color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5),0 6px 30px rgba(0,0,0,.6),0 0 70px rgba(0,0,0,.45)}
.fv__h{font-size:clamp(24.9px,7.39vw,33.6px);line-height:1.42;letter-spacing:-.025em}
.fv__h em{font-style:normal}
.fv__s{font-size:16px;letter-spacing:.06em;color:#fff;margin-top:16px;line-height:1.95;font-weight:700;
 text-shadow:0 2px 4px rgba(0,0,0,.5),0 4px 22px rgba(0,0,0,.55)}
.fv__s{transform:translateY(14px)}
.fv__h i{display:inline-block;font-style:normal;opacity:0;
 animation:stamp .22s steps(2,end) var(--d,0s) both}
@keyframes stamp{
 from{opacity:0;transform:translateY(-14px) scale(1.55)}
 60%{opacity:1;transform:translateY(2px) scale(.94)}
 to{opacity:1;transform:translateY(0) scale(1)}}
.fv__h em{color:inherit}
.fv__s{opacity:0;animation:up .8s 2.1s cubic-bezier(.2,.8,.25,1) forwards}
@keyframes up{to{opacity:1;transform:none}}
@keyframes fvin{from{opacity:0}to{opacity:1}}
@media(max-width:899px){
 /* 写真が出そろう前にコピーだけ先に出ると、あとから写真がパッと差し込まれて
    壊れて見える。JSが動いたときだけ伏せておき、出そろってからひと息で出す。
    JSが動かなければ今までどおり（伏せないので、消えることはない） */
 .fv--anim .fv__wall{opacity:0}
 .fv--anim .fv__col figure{animation:none;opacity:1;transform:none}
 .fv--go .fv__wall{animation:fvin .3s ease-out both}
 .fv--go .fv__h i{animation:stamp .2s steps(2,end) calc((var(--d, 0s) - .9s) * .45 + .06s) both}
 .fv--go .fv__s{animation:up .42s .42s cubic-bezier(.2,.8,.25,1) forwards}
 /* 出し終わる頃に、アニメーションを外して確定させる。
    端末が動きを間引いても、写真とコピーは必ず出る */
 .fv--done .fv__wall{animation:none;opacity:1}
 .fv--done .fv__h i{animation:none;opacity:1;transform:none}
 .fv--done .fv__s{animation:none;opacity:1;transform:none}
 /* 2列しか出ないので、3列目は描かない */
 .fv__col--c{display:none}
 /* 飛び込みと回転をやめて、軽く上がって出るだけにする */
 .fv__col figure{--dx:0px !important;--dy:10px !important;--dr:0deg !important;
  animation-duration:.5s;animation-timing-function:cubic-bezier(.2,.8,.25,1);
  animation-delay:calc(var(--wd, 0s) * .4)}
}
@media(prefers-reduced-motion:reduce){
 .fv__col figure,.fv__h i,.fv__s,.fv__sc{animation:none;opacity:1;transform:none}
 }
.fv__sc{display:block;position:relative;z-index:5;height:40px;width:auto;margin:0 0 -8px 20px;
 transform:rotate(-4deg);opacity:0;animation:up .8s 2.35s forwards}
.fv__d{position:absolute;right:var(--gut);bottom:74px;z-index:4;font-size:16px;font-weight:800;opacity:0;animation:up .8s 2.6s forwards;
 letter-spacing:.2em;background:var(--ink);color:#fff;border-radius:999px;padding:7px 13px}

/* ---------- リード ---------- */
.lead{position:relative;z-index:3;margin-top:0;padding:88px 0 118px;background:var(--cream);
 border:var(--bd);border-left:none;border-right:none;border-radius:34px 34px 0 0;
 box-shadow:0 -14px 34px rgba(26,25,22,.17)}
.lead{overflow:hidden}
.lead__in{position:relative;z-index:2;text-align:center;max-width:880px;margin:0 auto}
.lead__h{font-size:clamp(23.2px,6.69vw,28.6px);line-height:1.5;letter-spacing:-.01em}
.lead__h i{font-style:normal;color:var(--red)}
.lead__p{font-size:15px;font-weight:600;line-height:2;color:var(--sub);margin:26px auto 0;max-width:600px}
.lead__sig{margin-top:20px;font-size:16px;font-weight:800;line-height:1.85;letter-spacing:-.01em}
.brsp{display:block}
.brpc{display:none}
.lead__sig em{font-style:normal}
/* 既定は「定位置に、見えている」。出る前の状態は .lead:not(.on) のときだけ当てる。
   こうしておくと、もし登場のアニメーションが走らない環境でも、絵は定位置に残る。
   （rotate の中で calc(var()+var()) を動かすと Safari が解釈できず、絵が画面外に
     置き去りになって消えていた） */
.deco{position:absolute;z-index:1;pointer-events:none;line-height:0;
 --rot:0deg;--fx:0px;--fy:0px;--fr:0deg;
 opacity:1;transform:rotate(var(--rot))}
.lead:not(.on) .deco{opacity:0;
 transform:translate(var(--fx),var(--fy)) rotate(var(--fr)) scale(.82)}
.deco img{display:block;width:100%;height:auto}
.lead.on .deco{animation:dcin .5s steps(4,end) both}
.lead.on .d1{animation-delay:.04s} .lead.on .d2{animation-delay:.14s}
.lead.on .d4{animation-delay:.24s} .lead.on .d5{animation-delay:.34s}
.lead.on .d6{animation-delay:.44s}
/* 出し終わる頃にアニメーションを外して、定位置に固定する。
   端末が動きを途中で止めても、絵が飛んだ位置に取り残されない */
.lead.settled .deco{animation:none;opacity:1;transform:rotate(var(--rot))}
@keyframes dcin{
 from{opacity:0;transform:translate(var(--fx),var(--fy)) rotate(var(--fr)) scale(.82)}
 to{opacity:1;transform:translate(0,0) rotate(var(--rot)) scale(1)}}
@media(prefers-reduced-motion:reduce){
 .lead .deco,.lead:not(.on) .deco{opacity:1;transform:rotate(var(--rot))}
 .lead.on .deco{animation:none}}
/* SP：四隅＋上下に6点 */
.d1{left:-22px;top:6px;width:100px;--rot:-5deg;--fx:-190px;--fy:-130px;--fr:-25deg}
.d2{right:-16px;top:-4px;width:138px;--rot:5deg;--fx:210px;--fy:-150px;--fr:23deg}
.d3{display:none} .d4{display:none}
.d5{left:2px;bottom:-30px;width:92px;--rot:-5deg;--fx:-210px;--fy:150px;--fr:-22deg}
.d6{right:-8px;bottom:0;width:146px;--rot:4deg;--fx:230px;--fy:170px;--fr:20deg}

/* 吹き出し：中央のイラストに向かって左右から */
.talk{position:relative;display:grid;grid-template-columns:1fr;gap:8px;margin:26px -20px 0;
 max-width:none;background:#fff;border-top:var(--bd);border-bottom:var(--bd);padding:17px 16px 19px}
.talk__ill{display:none}
.talk__ill img{width:100%;height:auto;display:block}
.qs{display:contents}
.q1{order:1} .q2{order:2} .q3{order:3} .q4{order:4}
.q{position:relative;display:block;background:#fff;border:2px solid var(--ink);border-radius:0;
 padding:11px 8px;font-size:16px;font-weight:700;line-height:1.6;text-align:center;
 letter-spacing:-.02em;filter:none}
.q .brsp{display:none}
/* カッ、カッ、カッ と出てくる */
.talk .q{opacity:0}
.talk.on .q{animation:qpop .4s steps(3,end) both}
.talk.on .q1{animation-delay:.05s}
.talk.on .q2{animation-delay:.17s}
.talk.on .q3{animation-delay:.29s}
.talk.on .q4{animation-delay:.41s}
@keyframes qpop{
 0%{opacity:0;transform:translateY(24px) scale(.6)}
 45%{opacity:1;transform:translateY(-7px) scale(1.09)}
 75%{opacity:1;transform:translateY(3px) scale(.97)}
 100%{opacity:1;transform:translateY(0) scale(1)}}
.q b{font-weight:800}
.q1 b{color:var(--red)} .q2 b{color:var(--green)}
.q3 b{color:var(--blue)} .q4 b{color:var(--amber)}

@media(min-width:560px) and (max-width:899px){
 .talk{grid-template-columns:1fr 1fr;gap:13px 15px;max-width:720px;margin:30px auto 0;
  background:none;border:none;padding:0}
 .q{font-size:15.5px;padding:14px 17px;filter:drop-shadow(2.5px 2.5px 0 var(--ink));
  display:flex;align-items:center;justify-content:center;min-height:62px}
}

/* ---------- 写真の帯（スクロールで後ろから出てくる） ---------- */
.bnd{position:relative;height:clamp(280px,46vh,400px);overflow:hidden;z-index:2;background:var(--tint)}
.bnd__ph{position:absolute;left:0;right:0;top:-14%;bottom:-14%;background-size:cover;
 background-position:center 50%;background-repeat:no-repeat;will-change:transform}
/* 次のセクションを帯の上にかぶせる */
.sec--over{position:relative;z-index:4;margin-top:clamp(-56px,-4vw,-32px);
 border-top-left-radius:clamp(24px,3vw,40px);border-top-right-radius:clamp(24px,3vw,40px)}
@media(min-width:900px){
 .bnd{height:clamp(380px,52vh,560px)}
}
@media(prefers-reduced-motion:reduce){.bnd__ph{transform:none !important}}

/* ---------- サービス 4つ ---------- */
.sv{display:grid;grid-template-columns:1fr;gap:13px}
.sv a{position:relative;display:grid;grid-template-columns:94px 1fr;column-gap:14px;
 grid-template-rows:auto auto auto;align-items:start;background:#fff;border:var(--bd);
 border-radius:16px;box-shadow:var(--sh);padding:18px 18px 18px 14px;overflow:hidden;
 transition:transform .18s,box-shadow .18s,background .18s}
.sv a:hover{transform:translate(4px,4px);box-shadow:1px 1px 0 var(--ink)}
.sv .no{position:absolute;right:14px;top:12px;font-size:16px;font-weight:800;letter-spacing:.1em;color:#C9C2B3}
.sv .ic{grid-column:1;grid-row:1/4;align-self:center;height:94px;display:flex;align-items:center;justify-content:center}
.sv .ic img{max-height:100%;max-width:100%;width:auto}
.sv .t{grid-column:2;grid-row:1;display:block;text-align:left;padding-right:26px}
.sv .pre{display:flex;align-items:center;gap:8px;
 font-size:16px;font-weight:800;letter-spacing:.04em;color:var(--ink);line-height:1.5;opacity:.72}
.sv .pre:after{display:none}
.sv .main{display:block;margin-top:5px;font-size:18.1px;font-weight:800;line-height:1.35;letter-spacing:-.025em}
.sv .d{grid-column:2;grid-row:2;display:block;font-size:16px;color:var(--sub);line-height:1.95;margin-top:8px;text-align:left}
.sv .go{grid-column:2;grid-row:3;justify-self:end;display:inline-block;margin-top:12px;
 font-size:16px;font-weight:800;letter-spacing:.04em;
 border-radius:999px;padding:7px 17px;border:2px solid var(--ink)}
.sv .s1:hover{background:#FDEBEA} .sv .s1 .go{background:var(--red);color:#fff}
.sv .s2:hover{background:#E9F4EE} .sv .s2 .go{background:var(--green);color:#fff}
.sv .s3:hover{background:#EAF1FC} .sv .s3 .go{background:var(--blue);color:#fff}
.sv .s4:hover{background:#FCF2DD} .sv .s4 .go{background:var(--gold)}

/* ---------- 雑誌風の切り抜き（白フチのシール） ---------- */
.sticker{filter:
 drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff)
 drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff)
 drop-shadow(1.4px 1.4px 0 #fff) drop-shadow(-1.4px 1.4px 0 #fff)
 drop-shadow(1.4px -1.4px 0 #fff) drop-shadow(-1.4px -1.4px 0 #fff)
 drop-shadow(0 7px 10px rgba(26,25,22,.28))}
.sticker--k{filter:
 drop-shadow(2px 0 0 var(--ink)) drop-shadow(-2px 0 0 var(--ink))
 drop-shadow(0 2px 0 var(--ink)) drop-shadow(0 -2px 0 var(--ink))
 drop-shadow(0 6px 9px rgba(26,25,22,.26))}

/* ---------- 共通セクション ---------- */
.sec{padding:78px 0;background:var(--paper);position:relative;z-index:3}
.sec--cream{background:var(--cream);border-top:var(--bd);border-bottom:var(--bd)}
#gallery{padding-bottom:0}
.hd{margin-bottom:30px}
.hdrow{margin-bottom:30px}
.hdrow .hd{margin-bottom:0}
.hdrow__b{margin-top:22px}
.hd h2{font-size:clamp(23.2px,6.69vw,30.2px);line-height:1.42;margin-top:16px;letter-spacing:-.01em}
.hd h2 em{font-style:normal}
.hd p{font-size:16px;color:var(--sub);line-height:2.05;margin-top:16px;max-width:34em;font-weight:500;word-break:auto-phrase;text-wrap:pretty}
.btnw{text-align:center}
.btn{display:inline-flex;align-items:center;gap:9px;font-size:16px;font-weight:800;letter-spacing:.04em;
 background:#fff;border:var(--bd);border-radius:999px;padding:12px 24px;box-shadow:var(--shs);
 transition:transform .18s,box-shadow .18s,background .18s}
.btn:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);background:var(--gold)}

/* セカンダリボタン
   本文からの「もっと見る」系の導線。主ボタンより一段小さく、
   でも線と矢印の丸で、押せることがひと目で分かるようにする。 */
.btn2{display:inline-flex;align-items:center;gap:11px;font-size:15px;font-weight:800;
 letter-spacing:.02em;line-height:1.5;text-align:left;background:#fff;border:var(--bd);
 border-radius:999px;padding:9px 11px 9px 20px;box-shadow:var(--btnsh);
 transition:transform .18s,box-shadow .18s,background .18s}
.btn2:after{content:"\2192";flex:0 0 auto;display:grid;place-items:center;
 width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;
 font-size:13px;line-height:1;transition:transform .18s}
.btn2:hover{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink);background:var(--butter)}
.btn2:hover:after{transform:translateX(2px)}
.btn2w{display:flex;flex-wrap:wrap;gap:11px;margin-top:24px}
.btn2w--mid{justify-content:center}
@media(min-width:900px){
 .btn2{font-size:16px;padding:10px 12px 10px 24px;gap:13px}
 .btn2:after{width:28px;height:28px;font-size:14px}
 .btn2w{gap:14px;margin-top:32px}
}

/* ---------- 施工事例（整然・ホバーで色） ---------- */
.gl{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--ink);
 border-top:var(--bd);border-bottom:var(--bd);margin-top:34px}
.gl__c{position:relative;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);
 padding:12px 8px 14px;transition:background .28s ease,color .28s ease}
.gl__im{position:relative;display:block;overflow:visible;line-height:0}
.gl__im .bl{width:100%;aspect-ratio:4/3.5;min-height:0;border:var(--bd);border-radius:8px;
 transition:transform .22s steps(3,end),box-shadow .22s steps(3,end)}
.gl__c:hover .gl__im .bl{transform:translate(-4px,-4px);box-shadow:5px 5px 0 var(--ink)}
.gl__hd{display:flex;align-items:center;gap:7px;margin-top:14px}
.gl__area{font-size:13px;font-weight:800;letter-spacing:.04em;opacity:.62}
.gl__bg{flex:0 0 auto;font-size:12px;font-weight:800;letter-spacing:.04em;border:1.5px solid currentColor;
 border-radius:999px;padding:2px 10px;line-height:1.6}
.gl__t{display:block;font-size:16px;font-weight:800;line-height:1.45;margin-top:8px;letter-spacing:-.02em}
.gl__d{display:block;font-size:13.5px;line-height:1.8;margin-top:7px;opacity:.68}
.gl__m{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.gl__m span{font-size:12px;font-weight:700;letter-spacing:0;border:1.5px solid currentColor;
 border-radius:999px;padding:1px 9px;line-height:1.55;opacity:.78}
.gl__m span:nth-child(n+3){display:none}
.gl__more{display:inline-block;align-self:flex-start;margin-top:auto;padding-top:18px;
 font-size:16px;font-weight:800;letter-spacing:.04em}
.gl__c.c1:hover{background:var(--red);color:#fff}
.gl__c.c2:hover{background:var(--green);color:#fff}
.gl__c.c3:hover{background:var(--blue);color:#fff}
.gl__c.c4:hover{background:var(--gold);color:var(--ink)}
.gl__c:hover .gl__d{opacity:.9}
.gl__c:hover .gl__area{opacity:.85}

/* ---------- 読みもの ---------- */
.st{display:grid;gap:14px}
.st a{display:grid;grid-template-columns:104px 1fr;gap:0;background:#fff;border:var(--bd);border-radius:14px;
 overflow:hidden;box-shadow:var(--sh);transition:transform .2s,box-shadow .2s,background .2s}
.st a:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink)}
.st .bl{width:104px;height:100%;min-height:104px;border-right:var(--bd)}
.st__tx{padding:13px 14px}
.st__c{display:inline-block;font-size:16px;font-weight:800;letter-spacing:.1em;color:#fff;
 border-radius:999px;padding:2px 10px}
.st--g{background:var(--green)} .st--b{background:var(--blue)} .st--r{background:var(--red)}
.st__t{display:block;font-size:16px;font-weight:800;line-height:1.55;margin-top:9px}
.st__m{display:block;font-size:16px;color:#908A7E;letter-spacing:.04em;margin-top:8px}

/* ---------- かるた ---------- */
.kt{background:var(--butter);color:var(--ink);padding:78px 0 62px;position:relative;z-index:3;overflow:hidden;
 border-top:var(--bd);border-bottom:var(--bd);
 background-image:radial-gradient(rgba(232,165,37,.30) 1.7px,transparent 1.8px);
 background-size:19px 19px}
.kt__hd{text-align:center;margin-bottom:28px}
.kt__h{font-size:clamp(19.8px,5.46vw,30.2px);line-height:1.42;margin-top:18px;letter-spacing:-.015em}
.kt__h em{font-style:normal;white-space:nowrap}
.kt__p{font-size:16px;line-height:2.05;color:var(--sub);margin-top:15px;font-weight:500;max-width:30em;margin-left:auto;margin-right:auto}
.kt__all{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:16px;font-weight:800;
 background:var(--red);color:#fff;border:2px solid var(--ink);border-radius:999px;padding:12px 26px;
 box-shadow:4px 4px 0 var(--ink);transition:transform .18s,box-shadow .18s}
.kt__all:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.kt__all--g{background:#fff;color:var(--ink)}
.kt__btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}
.kt__btns .kt__all{margin-top:0}
.kt__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:28px;perspective:1400px}
.fuda{position:relative;aspect-ratio:3/4.55;cursor:pointer;background:none;border:none;padding:0;
 -webkit-tap-highlight-color:transparent;
 opacity:0;transform:translate(var(--tx,0),var(--ty,-60px)) rotate(var(--rot,-8deg)) scale(.88);
 transition:opacity .45s steps(5,end),transform .45s steps(5,end)}
.fuda.in{opacity:1;transform:translate(0,0) rotate(0) scale(1)}
.fuda.in:hover{transform:translate(0,-9px) rotate(-1.5deg) scale(1.03);transition-duration:.14s;z-index:3}
.fuda.in:hover .fuda__f,.fuda.in:hover .fuda__b{box-shadow:7px 9px 0 var(--ink)}
.fuda__in{display:block;position:relative;width:100%;height:100%;
 transition:transform .55s cubic-bezier(.4,.1,.2,1);transform-style:preserve-3d}
.fuda.flip .fuda__in{transform:rotateY(180deg)}
.fuda__f,.fuda__b{position:absolute;inset:0;backface-visibility:hidden;border-radius:10px;overflow:hidden;
 display:flex;flex-direction:column;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}
.fuda__f{background:#FFFDF6;color:var(--ink);align-items:center;padding:12px 9px 11px;gap:6px}
.fuda__k{font-size:18.9px;font-weight:800;line-height:1;color:#fff;background:var(--red);
 border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;
 border:2px solid var(--ink)}
.fuda:nth-child(4n+2) .fuda__k{background:var(--green)}
.fuda:nth-child(4n+3) .fuda__k{background:var(--blue)}
.fuda:nth-child(4n+4) .fuda__k{background:var(--gold);color:var(--ink)}
/* 裏の見出しは、その札の色でひと目で分かるように */
.fuda:nth-child(4n+2) .fuda__bt{color:var(--green)}
.fuda:nth-child(4n+3) .fuda__bt{color:var(--blue)}
.fuda:nth-child(4n+4) .fuda__bt{color:var(--amber)}
.fuda__ill{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;width:100%}
.fuda__ill img{max-height:100%;width:auto;max-width:94%;object-fit:contain}
.fuda__t{flex:0 0 auto;font-size:13.5px;font-weight:700;line-height:1.6;text-align:center;letter-spacing:-.01em}
.fuda__b{background:#fff;color:var(--ink);transform:rotateY(180deg);padding:12px 9px;justify-content:center;align-items:center;text-align:center}
/* 裏面は backface-visibility で隠すとリンクが押せなくなるので、不透明度で出し入れする */
.fuda__b{backface-visibility:visible;-webkit-backface-visibility:visible;
 opacity:0;pointer-events:none;transition:opacity 0s .22s}
.fuda.flip .fuda__b{opacity:1;pointer-events:auto}
.fuda.flip .fuda__f{pointer-events:none}
.fuda__bt{font-size:14px;font-weight:800;line-height:1.5;margin-bottom:10px;letter-spacing:-.025em;color:var(--red);
 text-align:center;text-wrap:balance;word-break:auto-phrase;overflow-wrap:normal;width:100%}
.fuda__bd{font-size:12.5px;line-height:1.85;color:var(--sub);text-align:left;width:100%;
 word-break:normal;overflow-wrap:normal}
.fuda__bl{position:relative;z-index:3;margin-top:10px;align-self:center;font-size:11px;font-weight:800;letter-spacing:.02em;white-space:nowrap;background:var(--ink);
 color:#fff;border-radius:999px;padding:4px 11px}
.kt__note{font-size:16px;color:var(--sub);margin-top:22px;text-align:center}

/* ---------- 街 ---------- */
.tw__l{position:relative}
.tw__h{font-size:clamp(18.1px,4.93vw,25.2px);line-height:1.5;margin-top:14px;letter-spacing:-.02em}
.tw__ph{border:var(--bd);border-radius:14px;overflow:hidden;box-shadow:var(--sh)}
.tw__head{margin-bottom:26px;position:relative;z-index:2}
.tw__body{display:flex;flex-direction:column;margin-top:10px}
.tw__me{display:flex;align-items:flex-end;margin:18px 0 0;pointer-events:none}
.tw__me>img{width:128px;height:auto;display:block;position:relative;z-index:2}
.q--me{margin:0 0 42px -34px;padding:11px 14px;font-size:16px;line-height:1.5;border-radius:0;
 text-align:left;z-index:1}
.q--me:before{left:18px} .q--me:after{left:20px}
.q--me b{display:block;font-weight:800}
.q--me span{display:block;font-size:16px;font-weight:700;letter-spacing:.04em;color:var(--sub);margin-top:5px}
.tw__ph img{width:100%;height:auto;display:block}
.tw__p{font-size:16px;line-height:2.05;color:var(--sub);margin-top:18px;max-width:560px}
.tw__p b{display:block;font-size:19px;font-weight:800;color:var(--ink);line-height:1.8;
 letter-spacing:-.01em;margin-bottom:0}
.pcbr{display:none}
.tw__pts{margin-top:22px;display:grid;gap:10px}
.tw__pts dl{background:#fff;border:var(--bd);border-radius:12px;padding:13px 16px;box-shadow:var(--shs);display:flex;gap:14px;align-items:baseline}
.tw__pts dt{font-size:16px;font-weight:800;flex:0 0 auto;white-space:nowrap}
.tw__pts dd{font-size:16px;line-height:1.7;color:var(--sub);margin:0;flex:1 1 auto}
.tw__area{margin-top:18px;font-size:16px;line-height:2;color:#908A7E}

/* ---------- CONTACT ---------- */
.ct{background:var(--gold);padding:76px 0 84px;position:relative;z-index:3;overflow:hidden;
 border-top:var(--bd);border-bottom:var(--bd)}
.ct__h{font-size:clamp(21.5px,5.98vw,28.6px);line-height:1.42;margin-top:18px;letter-spacing:-.015em}
.ct__t{font-size:16px;line-height:2.05;margin-top:16px;color:#4E4631;max-width:30em;font-weight:500}
.ct__row{display:grid;gap:12px;margin-top:32px;position:relative;z-index:2;max-width:560px}
.ct__b{background:var(--ink);color:#fff;border:2px solid var(--ink);border-radius:999px;
 padding:15px 22px;display:flex;align-items:center;gap:13px;box-shadow:var(--sh);
 transition:transform .18s,box-shadow .18s,background .18s}
.ct__b:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 rgba(26,25,22,.45);background:#000}
.ct__i{flex:0 0 22px;width:22px;height:22px;display:block;color:#fff}
.ct__i svg{width:100%;height:100%;display:block}
.ct__b b{display:block;font-size:16px;font-weight:800}
.ct__b>span>span{display:block;font-size:16px;color:rgba(255,255,255,.7);margin-top:3px;font-weight:500}
.ct__ill{position:absolute;z-index:1;pointer-events:none}
.ct__ill--a{width:104px;right:-6px;top:0;transform:rotate(-7deg)}
.ct__ill--b{display:none}
.ct__ill--c{display:none}

/* ---------- フッター ---------- */
.ftr{background:var(--ink);color:#A49D91;padding:52px 0 142px;font-size:16px;position:relative;z-index:3}
.ftr__logo img{height:25px;filter:brightness(0) invert(1);opacity:.9}
.ftr__info{font-size:16px;line-height:2.05;color:#8B8477;margin-top:15px}
.ftr__bn{display:flex;align-items:center;gap:12px;margin-top:22px;padding:12px 14px;
 border:2px solid #39342D;border-radius:12px;max-width:420px;transition:border-color .25s}
.ftr__bn:hover{border-color:var(--gold)}
.ftr__bn .bl{width:56px;height:56px;flex:0 0 56px;background:#2A2722;color:#6B6456;border-radius:8px}
/* 協会のバナーは支給がないので、うちの写真を丸く置いている */
.ftr__bn__ph{width:56px;height:56px;flex:0 0 56px;display:block;border-radius:50%;
 background:#F2EDE1;padding:5px;box-sizing:border-box;object-fit:contain}
.ftr__bn b{display:block;font-size:16px;color:#E4DDCE;line-height:1.55}
.ftr__bn em{display:block;font-style:normal;font-size:16px;color:#8B8477;line-height:1.75;margin-top:3px}
.ftr__menus{margin-top:32px;display:grid;gap:22px}
.ftr__m h4{font-size:16px;letter-spacing:.2em;color:#746D60;font-weight:800;margin-bottom:10px}
.ftr__m li{margin-bottom:9px;font-size:16px}
.ftr__m a:hover{color:var(--gold)}
.ftr__cr{margin-top:34px;padding-top:17px;border-top:1px solid #322E29;font-size:16px;color:#746D60;
 display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* ---------- SP固定CTA ---------- */
.evt{display:none}
.spb{position:fixed;left:0;right:0;bottom:0;z-index:80;background:#fff;border-top:var(--bd);
 padding-bottom:env(safe-area-inset-bottom, 0px)}
.spb__r{display:grid;grid-template-columns:1fr 1fr}
.spb__r a{padding:14px 2px;text-align:center;font-size:16px;font-weight:800;line-height:1.3;
 display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.spb__r a:first-child{background:var(--red);color:#fff;border-right:2px solid var(--ink)}
.spb em{display:none}
.spb__i{flex:0 0 20px;width:20px;height:20px;display:block}
.spb__i svg{width:100%;height:100%;display:block}
/* 下段：イベント（イラスト付き） */
.spb__e{position:relative;display:flex;align-items:center;gap:10px;
 min-height:50px;padding:6px 14px 6px 62px;background:var(--gold);color:var(--ink);
 border-top:2px solid var(--ink)}
.spb__e img{position:absolute;left:6px;bottom:2px;width:54px;height:54px;object-fit:contain;
 filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff)}
.spb__e b{display:block;font-size:15px;font-weight:800;line-height:1.35;letter-spacing:-.01em}
.spb__e i{display:block;font-style:normal;font-size:12px;font-weight:700;line-height:1.4;margin-top:1px;opacity:.72}
.spb__ar{margin-left:auto;flex:0 0 auto;font-size:15px;font-weight:800}

.rv{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.8,.25,1),transform .7s cubic-bezier(.2,.8,.25,1)}
.rv.in{opacity:1;transform:none}

/* ================= PC ================= */
@media(min-width:900px){
 :root{--gut:48px}
 .hdr__in{padding:18px 36px}
 .evt{display:flex;align-items:center;gap:12px;position:fixed;right:26px;bottom:26px;z-index:85;
  background:var(--gold);color:var(--ink);border:var(--bd);border-radius:20px;padding:14px 24px 14px 14px;
  box-shadow:5px 5px 0 var(--ink);opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .45s,transform .22s,box-shadow .22s}
 .evt.on{opacity:1;transform:translateY(0);pointer-events:auto}
 .evt.on:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink)}
 .evt__ill{width:72px;height:72px;object-fit:contain;flex:0 0 72px;
  filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff)}
 .evt__tx{display:block;text-align:left}
 .evt__tx b{display:block;font-size:18px;font-weight:800;letter-spacing:-.01em;line-height:1.4}
 .evt__tx span{display:block;font-size:16px;font-weight:600;line-height:1.5;margin-top:3px;opacity:.72}
 .evt__i{flex:0 0 18px;width:18px;height:18px;display:block;opacity:.6}
 .evt__i svg{width:100%;height:100%;display:block}

 .hdr__nav{display:flex;gap:6px;font-size:14.5px;font-weight:800;margin-left:auto;align-items:center}
 .mm{position:relative}
 .mm__t{display:inline-block}
 .mm__p{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;position:absolute;left:50%;top:100%;
  transform:translateX(-50%) translateY(10px);width:700px;padding:16px;margin-top:14px;
  background:#fff;border:var(--bd);border-radius:22px;box-shadow:var(--sh);
  opacity:0;visibility:hidden;transition:opacity .22s,transform .22s,visibility .22s;z-index:95}
 .mm__p:before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}
 .mm:hover .mm__p,.mm:focus-within .mm__p{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
 .mm__i{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:16px;
  background:var(--cream);border:2px solid transparent;transition:background .2s,border-color .2s,transform .2s}
 .mm__i:hover{background:#fff;border-color:var(--ink);transform:translate(2px,2px)}
 .mm__i img{width:54px;height:54px;object-fit:contain;flex:0 0 54px}
 .mm__i i{white-space:nowrap;display:block;font-style:normal;font-size:14px;font-weight:700;color:var(--sub);line-height:1.4;margin-bottom:3px}
 .mm__i b{display:block;font-size:18px;font-weight:800;letter-spacing:-.015em;line-height:1.4}
 .hdr__nav>a,.mm__t{display:inline-flex;align-items:center;height:var(--btnh);background:#fff;border:var(--bd);border-radius:999px;padding:0 16px;box-shadow:var(--btnsh);white-space:nowrap;
  transition:transform .18s,box-shadow .18s,background .18s}
 .hdr__nav>a:hover,.mm:hover .mm__t{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);background:var(--gold)}
 .hdr.on .hdr__nav>a,.hdr.on .mm__t{box-shadow:none;border-width:1.5px}
 .more{position:relative;display:flex;align-items:center;align-self:center;flex:0 0 auto}
 .more__t{display:flex;align-items:center;justify-content:center;gap:4px;
  width:var(--btnh);height:var(--btnh);min-width:0;flex:0 0 auto;padding:0;
  background:#fff;border:var(--bd);border-radius:50%;box-shadow:var(--btnsh);cursor:pointer;
  line-height:0;align-self:center;
  transition:transform .18s,box-shadow .18s,background .18s}
 .more__t i{display:block;width:4.5px;height:4.5px;border-radius:50%;background:var(--ink)}
 .more:hover .more__t{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);background:var(--gold)}
 .hdr.on .more__t{box-shadow:none;border-width:1.5px}
 .more__p{position:absolute;left:50%;top:calc(100% + 14px);min-width:238px;padding:10px;
  background:#fff;border:var(--bd);border-radius:20px;box-shadow:var(--sh);display:grid;gap:2px;
  opacity:0;visibility:hidden;transform:translate(-50%,10px);
  transition:opacity .22s,transform .22s,visibility .22s;z-index:95}
 .more__p:before{content:"";position:absolute;left:0;right:0;top:-20px;height:20px}
 .more__p:after{content:"";position:absolute;left:50%;top:-8px;width:13px;height:13px;margin-left:-6.5px;
  background:#fff;border-left:var(--bd);border-top:var(--bd);border-radius:4px 0 0 0;
  transform:rotate(45deg)}
 .more:hover .more__p,.more:focus-within .more__p{opacity:1;visibility:visible;transform:translate(-50%,0)}
 .more__p a{display:block;padding:11px 14px;border-radius:12px;font-size:15px;font-weight:800;
  letter-spacing:-.01em;white-space:nowrap;transition:background .18s}
 .more__p a:hover{background:var(--cream)}
 .hmenu{display:none}
 .hcta{display:inline-flex;align-items:stretch;height:var(--btnh);margin-left:14px;border:var(--bd);
  border-radius:999px;overflow:hidden;box-shadow:var(--btnsh);background:var(--ink)}
 .hcta__b{display:inline-flex;align-items:center;gap:7px;padding:0 17px;font-size:14px;font-weight:800;
  background:var(--ink);color:#fff;white-space:nowrap;letter-spacing:-.01em;
  transition:background .16s steps(2,end),color .16s steps(2,end)}
 .hcta__b+.hcta__b{border-left:2px solid #fff}
 .hcta__b:hover{background:var(--gold);color:var(--ink)}
 .hbtn__i{flex:0 0 16px;width:16px;height:16px;display:block}
 .hbtn__i svg{width:100%;height:100%;display:block}

 .fv__scrim--off{background:radial-gradient(78% 62% at 24% 78%,rgba(255,252,244,.96) 0%,rgba(255,252,244,.74) 36%,rgba(255,252,244,0) 74%),
  linear-gradient(185deg,rgba(255,252,244,.40) 0%,rgba(255,252,244,.04) 30%,rgba(255,252,244,.26) 100%)}
 .fv__wall{grid-template-columns:repeat(3,1fr);gap:11px;inset:-8% -1%}
 .fv__col figure{margin-bottom:11px}
 .fv__c{left:6%;right:auto;bottom:12%;max-width:680px}
 .fv__box{padding:0}
 .fv__h{font-size:clamp(32.7px,3.7vw,52.1px);line-height:1.3;letter-spacing:-.035em}
 .fv__s{font-size:16px;margin-top:22px}
 .fv__sc{height:56px;margin:0 0 -12px 28px}
 .fv__d{right:36px;bottom:92px}

 .lead{margin-top:0;padding:120px 0 132px;border-radius:46px 46px 0 0;box-shadow:0 -18px 44px rgba(26,25,22,.2)}
 .hd p{font-size:16px;line-height:2;max-width:62em}
 .hdrow{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:34px}
 .hdrow__b{margin-top:0;flex:0 0 auto;padding-bottom:4px}
 .kt__p{font-size:16px;line-height:2;max-width:46em}
 /* コラージュ（PC） */
 .d1{left:3%;top:108px;width:306px;--rot:-5deg;--fx:-190px;--fy:-130px;--fr:-25deg}
 .d2{right:1.5%;top:14px;width:352px;--rot:5deg;--fx:210px;--fy:-150px;--fr:23deg}

  .d4{display:block;right:0;top:31%;width:328px;--rot:5deg;--fx:250px;--fy:-40px;--fr:20deg}
 .d5{left:1.5%;bottom:22px;width:224px;--rot:-5deg;--fx:-210px;--fy:150px;--fr:-22deg}
  .d6{right:-34px;bottom:-96px;width:524px;--rot:4deg;--fx:230px;--fy:170px;--fr:20deg}

 .btnw{text-align:center}
 .tw__grid .btnw{text-align:left}
 .lead__in{max-width:980px}
 .lead__h{font-size:clamp(34.4px,4.05vw,52.1px);line-height:1.38;letter-spacing:-.025em}
 .lead__p{font-size:16px;margin-top:40px;max-width:660px}
 .lead__sig{margin-top:30px;font-size:23.2px;letter-spacing:-.02em;padding:0}
 .brsp{display:none}
 .brpc{display:block}
 .talk{display:grid;grid-template-columns:1fr 300px 1fr;align-items:center;column-gap:0;
  margin:54px auto 0;max-width:1080px;background:none;border:none;padding:0}
 .qs{display:grid;gap:56px;margin:0}
 .qs--l{justify-items:end} .qs--r{justify-items:start}
 .q1,.q2,.q3,.q4{align-self:auto;margin-left:0}
 .q{display:block}
 .qs--l{margin-right:-44px} .qs--r{margin-left:-44px}
 .talk__ill{display:block;position:static;transform:none;width:100%}
 .qs--r{margin-top:54px}
 .q{font-size:19px;padding:18px 26px;border-radius:0;filter:drop-shadow(3.5px 3.5px 0 var(--ink))}
 .sv{grid-template-columns:repeat(4,1fr);gap:22px}
 .sv a{display:flex;flex-direction:column;align-items:stretch;padding:38px 22px 32px;border-radius:24px;text-align:center}
 .sv .no{left:20px;right:auto;top:18px;font-size:16px}
 .sv .ic{height:200px;margin-bottom:20px}
 .sv .t{padding-right:0;text-align:center}
 /* 補足コピーは2行になっても高さを揃える。短い罫線は必ず残す */
 .sv .pre{justify-content:center;font-size:16px;opacity:.8;min-height:3em;
  text-align:center;word-break:auto-phrase}
 .sv .pre:before,.sv .pre:after{content:"";display:block;flex:0 0 22px;min-width:22px;
  height:2px;background:var(--ink);opacity:.22}
 .sv .main{font-size:23.2px;margin-top:9px}
 .sv .d{font-size:16px;line-height:2;margin-top:13px;margin-bottom:20px;text-align:center}
 .sv .go{justify-self:center;align-self:center;margin-top:auto;font-size:16px;padding:10px 24px}

 .gl{grid-template-columns:repeat(4,1fr);gap:2px;margin-top:52px}
 .gl__c{padding:24px 22px 22px}
 .gl__im .bl{border-radius:10px;aspect-ratio:4/3}
 .gl__c:hover .gl__im .bl{transform:translate(-6px,-6px);box-shadow:8px 8px 0 var(--ink)}
 .gl__hd{gap:11px;margin-top:24px}
 .gl__area{font-size:15px}
 .gl__bg{font-size:14px;padding:3px 13px;border-width:2px}
 .gl__t{font-size:18.1px;margin-top:12px;line-height:1.45}
 .gl__d{font-size:15px;line-height:1.95;margin-top:11px}
 .gl__m{gap:8px;margin-top:17px}
 .gl__m span{font-size:13.5px;padding:3px 13px;opacity:1;font-weight:700}
 .gl__m span:nth-child(n+3){display:inline-block}
 .gl__more{font-size:16px;padding-top:26px}

 .st{grid-template-columns:repeat(3,1fr);gap:24px}
 .st a{grid-template-columns:1fr}
 .st .bl{width:100%;aspect-ratio:16/10;min-height:0;border-right:none;border-bottom:var(--bd)}
 .st__tx{padding:16px 17px 19px}
 .st__t{font-size:16px;letter-spacing:-.01em}

 .kt{padding:124px 0 96px}
 .tw__me{margin:14px 0 0 10px;padding-top:0;justify-content:flex-start}
 .tw__me>img{width:152px}
 .q--me{margin:0 0 42px -38px;padding:13px 18px;font-size:16px}
 .q--me span{font-size:16px}
 .kt__h{font-size:clamp(31px,3.61vw,48.7px);letter-spacing:-.02em;line-height:1.32}
 .kt__p{font-size:16px;max-width:600px;margin-left:auto;margin-right:auto}
 .kt__grid{grid-template-columns:repeat(5,1fr);gap:20px;margin-top:46px;max-width:1080px;margin-left:auto;margin-right:auto}
 .fuda__k{width:42px;height:42px;font-size:20.6px}
 .fuda__t{font-size:15.5px}
 .fuda__f{padding:15px 11px 14px;gap:8px}
 .fuda__bt{font-size:16.5px;margin-bottom:13px} .fuda__bd{font-size:14px;line-height:1.9}
 .fuda__bl{font-size:12.5px;margin-top:13px;padding:5px 13px}
 .fuda__b{padding:16px 13px}

 .tw__p{font-size:16px;max-width:640px;margin-top:20px}
 .tw__p b{font-size:21px;line-height:1.72;margin-bottom:14px}
 .pcbr{display:block}
 .tw__grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:0 54px;align-items:start;
  grid-template-areas:"map head" "map body"}
 .tw__l{grid-area:map} .tw__head{grid-area:head;margin-bottom:0} .tw__body{grid-area:body;margin-top:2px;min-height:0}
 .tw__ph img{aspect-ratio:4/5}
 .tw__p{font-size:16px}
 .tw__pts dl{padding:16px 20px}
 .tw__pts dd{font-size:16px}

 .ct{padding:108px 0 108px}
 .ct__h{font-size:clamp(27.5px,3.26vw,43.7px);letter-spacing:-.025em;line-height:1.34}
 .ct__t{font-size:16px;line-height:2;max-width:42em}
 .ct__row{grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px;max-width:760px}
 .ct__b{padding:19px 26px;gap:15px}
 .ct__i{flex:0 0 25px;width:25px;height:25px}
 .ct__b b{font-size:16px}
 .ct__ill{left:auto}
 .ct__ill--a{display:block;width:190px;right:2%;top:70px;bottom:auto;transform:rotate(-6deg)}
 .ct__ill--b{display:block;width:216px;right:14%;top:48%;margin-top:-104px;bottom:auto;transform:rotate(6deg)}
 .ct__ill--c{display:block;width:244px;right:2%;top:auto;bottom:64px;transform:rotate(-6deg)}
 .ct .wrap>.rv{max-width:64%}
 .ct__row{position:relative;z-index:2}

 .ftr{padding:84px 0 52px}
 .ftr__top{display:flex;justify-content:space-between;gap:66px}
 .ftr__menus{margin:0;display:flex;gap:56px}
 .spb{display:none}
}

/* 900〜1079px：ナビが入りきらないのでハンバーガーに戻す */
@media(min-width:900px) and (max-width:1079px){
 .hdr__nav{display:none}
 .mm__p{display:none}
 .more{display:none}
 .hmenu{display:flex;margin-left:0}
 .hdr__in{padding:14px 24px;gap:12px}
 .hcta{margin-left:auto}
}
/* 1080〜1319px：余白と文字を詰めて1行に収める */
@media(min-width:1080px) and (max-width:1319px){
 :root{--btnh:42px}
 .hdr__in{padding:14px 22px;gap:9px}

 .hdr__nav{gap:5px;font-size:13.5px}
 .hdr__nav>a,.mm__t{padding:0 13px}
 .hcta{margin-left:9px}
 .hcta__b{font-size:13px;padding:0 14px;gap:6px}
 .hbtn__i{flex:0 0 15px;width:15px;height:15px}
 .mm__p{width:640px}
}

/* ---------- ニュース＆トピックス（横スクロール） ---------- */
.nt{position:relative;background:var(--tint);border-top:var(--bd);border-bottom:var(--bd);
 padding:62px 0 58px;z-index:3;overflow:hidden}
.nt__ill{position:absolute;right:-14px;top:4px;width:118px;z-index:1;pointer-events:none;
 transform:rotate(7deg);
 filter:drop-shadow(2.5px 0 0 #fff) drop-shadow(-2.5px 0 0 #fff) drop-shadow(0 2.5px 0 #fff) drop-shadow(0 -2.5px 0 #fff)}
.nt__hd{position:relative;z-index:2}
.nt .hdrow__b{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.nt__nav{display:flex;gap:9px}
.nt__b{width:46px;height:46px;flex:0 0 46px;border:var(--bd);border-radius:50%;background:#fff;
 display:flex;align-items:center;justify-content:center;box-shadow:var(--shs);cursor:pointer;
 transition:transform .16s steps(2,end),box-shadow .16s steps(2,end),background .16s steps(2,end)}
.nt__b:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);background:var(--gold)}
.nt__b[disabled]{opacity:.32;pointer-events:none}
.nt__b svg{width:17px;height:17px;display:block}
.nt__rail{display:flex;gap:14px;margin-top:26px;padding:4px 20px 10px;
 overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;overscroll-behavior-y:auto;
 scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nt__rail::-webkit-scrollbar{display:none}
.nt__c{flex:0 0 72%;max-width:300px;scroll-snap-align:start;background:#fff;border:var(--bd);
 border-radius:16px;box-shadow:var(--sh);overflow:hidden;
 transition:transform .2s steps(2,end),box-shadow .2s steps(2,end)}
.nt__c:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink)}
.nt__im{display:block;line-height:0}
.nt__im .bl{width:100%;aspect-ratio:4/3;min-height:0;border:none;border-radius:0;border-bottom:var(--bd)}
.nt__im img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-bottom:var(--bd)}
.nt__bd{display:block;padding:14px 15px 17px}
.nt__mt{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nt__dt{font-size:12.5px;font-weight:800;color:var(--sub);letter-spacing:.04em}
.nt__ct{font-size:11.5px;font-weight:800;letter-spacing:.04em;border:2px solid currentColor;
 border-radius:999px;padding:2px 10px}
.nt__ct.c-news{color:var(--red)} .nt__ct.c-blog{color:var(--blue)}

.nt__t{display:block;font-size:16px;font-weight:800;line-height:1.6;margin-top:9px;
 letter-spacing:-.02em;word-break:auto-phrase}

@media(min-width:900px){
 .nt{padding:92px 0 86px}
 .nt__ill{right:3%;top:10px;width:230px}
 .nt .hdrow__b{gap:18px}
 .nt__b{width:54px;height:54px;flex:0 0 54px}
 .nt__b svg{width:19px;height:19px}
 .nt__rail{gap:22px;margin-top:40px;padding:6px 48px 14px}
 .nt__c{flex:0 0 300px;max-width:300px;border-radius:20px}
 .nt__bd{padding:17px 19px 20px}
 .nt__t{font-size:17px;margin-top:11px}
}

/* ---------- ページヘッダーのイラスト（下層共通） ---------- */
.lbrow{display:flex;align-items:center;justify-content:space-between;gap:14px}
.pgill{flex:0 0 86px;width:86px;height:auto;display:block;transform:rotate(-4deg);
 filter:drop-shadow(2.5px 0 0 #fff) drop-shadow(-2.5px 0 0 #fff) drop-shadow(0 2.5px 0 #fff) drop-shadow(0 -2.5px 0 #fff)}
@media(min-width:900px){
 .arh__in,.lpfv__tx{position:relative}
 .lbrow{display:block}
 .pgill{position:absolute;right:0;top:50%;width:300px;flex:none;z-index:1;pointer-events:none;
  opacity:0;transform:translate(40px,-40%) rotate(8deg) scale(.86);
  animation:pgillin .55s steps(4,end) .2s both}
 @keyframes pgillin{to{opacity:1;transform:translate(0,-50%) rotate(-4deg) scale(1)}}
 .arh__h,.arh__s,.lpfv__h,.lpfv__s{max-width:calc(100% - 360px)}
}

/* ================= 1520px以上：1512px幅の見え方で固定 ================= */
@media(min-width:1520px){
 /* 大型モニターでも、ノートPCと同じ比率で横幅を使う */
 :root{
  --edge:calc((100vw - 1512px) / 2);
  --max:min(82vw, 1600px);
  --gut:clamp(48px, 3.2vw, 64px);
 }
 .hdr__in{max-width:none;padding:18px clamp(56px, 4.76vw, 108px)}
 .drw__in{max-width:860px}
 .kt__grid{max-width:1220px}
 .ct__row{max-width:880px}
 /* トップのFVだけはノートPCの見え方を保つ */
 .fv__c{left:calc(var(--edge) + 91px)}
 .d1{left:calc(var(--edge) + 45px)}
 .d2{right:calc(var(--edge) + 23px)}
 .d4{right:calc(var(--edge) + 0px)}
 .d5{left:calc(var(--edge) + 23px)}
 .d6{right:calc(var(--edge) - 34px)}
}
@media(min-width:900px){
 .pgill--l{width:372px}
}

@media(min-width:900px){.gl--3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.gl--2{grid-template-columns:repeat(2,1fr)}}
.st__im{width:104px;height:100%;min-height:104px;object-fit:cover;display:block;border-right:var(--bd)}
@media(min-width:900px){.st__im{width:100%;aspect-ratio:16/10;min-height:0;height:auto;border-right:none;border-bottom:var(--bd)}}

/* ===== ルームツアー動画 ===== */
.vid{display:grid;gap:16px}
.vid__c{background:#fff;border:var(--bd);border-radius:18px;box-shadow:var(--sh);overflow:hidden}
.vid__fr{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;margin:0;
 background:#1a1a1a;cursor:pointer;border-bottom:var(--bd);overflow:hidden;line-height:0}
.vid__fr img{width:100%;height:100%;object-fit:cover;display:block;
 transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .3s}
.vid__fb{position:absolute;inset:0}
.vid__yt{position:relative;z-index:1}
.vid__pl,.vid__tm{z-index:3}
.vid__fr iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.vid__pl{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
 width:66px;height:66px;border-radius:50%;background:var(--red);border:var(--bd);
 box-shadow:3px 3px 0 var(--ink);display:flex;align-items:center;justify-content:center;
 transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s}
.vid__pl:after{content:"";width:0;height:0;margin-left:5px;
 border-left:19px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent}
.vid__fr:hover img{transform:scale(1.045);filter:brightness(.88)}
.vid__fr:hover .vid__pl{transform:translate(-50%,-50%) scale(1.09);box-shadow:4px 4px 0 var(--ink)}
.vid__fr:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.vid__tm{position:absolute;right:10px;bottom:10px;padding:4px 9px;border-radius:7px;
 background:rgba(0,0,0,.72);color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em}
.vid__bd{padding:16px 18px 19px}
.vid__hd{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.vid__bg{display:inline-block;padding:4px 10px;border:var(--bd);border-radius:999px;
 background:var(--gold);font-size:11.5px;font-weight:800;letter-spacing:.06em}
.vid__ar{font-size:12.5px;font-weight:800;color:var(--sub);letter-spacing:.02em}
.vid__t{display:block;font-size:18px;font-weight:800;line-height:1.5;letter-spacing:-.02em;margin-top:10px}
.vid__d{display:block;font-size:15px;line-height:1.9;color:var(--sub);margin-top:8px}
.vid__go{display:inline-block;align-self:flex-start;margin-top:16px;padding:0;border:0;background:none;
 font:inherit;font-size:16px;font-weight:800;color:inherit;cursor:pointer;letter-spacing:-.01em}
.vid__go:hover{text-decoration:underline;text-underline-offset:4px}
@media(min-width:900px){
 .vid{grid-template-columns:repeat(2,1fr);gap:28px}
 .vid--1{grid-template-columns:minmax(0,760px);justify-content:center}
 .vid__c{border-radius:24px}
 .vid__bd{padding:20px 24px 24px}
 .vid__t{font-size:21px}
 .vid__d{font-size:15.5px}
}

/* ===================================================================
   DEPTH — ベタ面をなくすための質感レイヤー
   紙目／面のうねり／カードの陰影／写真の額装。
   すべて加算なので、強すぎれば数値を下げるかこのブロックごと外せる。
   =================================================================== */

/* 1) 面そのものを「紙」にする。写真には一切かけないので重くならない */
.sec,.lead,.kt,.ct,.arh,.lpfv{
 background-image:var(--grain);background-size:150px 150px;background-blend-mode:multiply}

/* 2) クリームの面は、うっすら明暗をつけて平らに見せない */
.sec--cream{position:relative;
 background-image:
  var(--grain),
  radial-gradient(74% 54% at 12% 0%, rgba(255,255,255,.80), rgba(255,255,255,0) 62%),
  radial-gradient(62% 48% at 92% 100%, rgba(199,186,157,.34), rgba(199,186,157,0) 64%);
 background-size:150px 150px, auto, auto;
 background-blend-mode:multiply, normal, normal}
.lead{background-image:
  var(--grain),
  radial-gradient(70% 50% at 50% 0%, rgba(255,255,255,.72), rgba(255,255,255,0) 60%);
 background-size:150px 150px, auto;
 background-blend-mode:multiply, normal}
.kt{background-image:
  var(--grain),
  radial-gradient(80% 60% at 50% 0%, rgba(255,255,255,.52), rgba(255,255,255,0) 66%);
 background-size:150px 150px, auto;
 background-blend-mode:multiply, normal}
.ct{background-image:
  var(--grain),
  radial-gradient(80% 64% at 50% 0%, rgba(255,255,255,.38), rgba(255,255,255,0) 64%);
 background-size:150px 150px, auto;
 background-blend-mode:multiply, normal}
/* 紙が一枚下に差し込まれたような、上端の落ち際 */
.sec--cream:before{content:"";position:absolute;left:0;right:0;top:0;height:44px;pointer-events:none;
 background:linear-gradient(180deg, rgba(26,25,22,.062), rgba(26,25,22,0))}

/* 3) 白いカードは、上がわずかに明るく下が沈む。上辺に紙の小口のハイライト */
.gl__c,.fea__c,.pt__c,.vid__c,.mdt__c,.brd__c,.twn__c,.cst__c,.stp__c,.ft1,
.spec dl,.faq details,.sv a,.st a,.nt a,.vo__c,.wor li,.smp,.faqg details,.cmp__r{
 background-image:linear-gradient(177deg, #FFFFFF 0%, #FFFDF8 46%, #F8F4EB 100%)}

/* 4) 写真は、プリントを貼ったように内側へ陰を落とす */
.plt__im,.phg figure,.vid__fr,.gl__im,.pt__im,.twn__im,.lpfv__ph,.stp__ph,.vst__ph,.ft1__ph,.vo__im{
 position:relative}
.plt__im:after,.phg figure:after,.vid__fr:after,.pt__im:after,.lpfv__ph:after,.vst__ph:after{
 content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
 box-shadow:inset 0 0 0 1px rgba(26,25,22,.10), inset 0 16px 30px -22px rgba(26,25,22,.75),
  inset 0 -10px 24px -20px rgba(26,25,22,.45)}
.vid__fr:after{z-index:2}

/* 5) ラベルとボタンの面にも、わずかな厚み */
.lb,.btn,.hdr__nav>a,.more__t,.mm__t,.fp{
 background-image:linear-gradient(176deg, rgba(255,255,255,.34), rgba(0,0,0,.05))}
.lb--r,.lb--g,.lb--b,.lb--y{
 background-image:linear-gradient(176deg, rgba(255,255,255,.26), rgba(0,0,0,.12))}

/* トップの施工事例：PC4列／SP2×2 */
@media(min-width:1040px){.gl--4{grid-template-columns:repeat(4,1fr)}}

/* ACCESS：ワイドモニターで左右の重さを揃える */
@media(min-width:900px){
 /* マップは元の比率のまま。つぶさない */
 .tw__ph img{aspect-ratio:auto}
}
@media(min-width:1520px){
 .tw__grid{max-width:1260px;margin-left:auto;margin-right:auto;
  grid-template-columns:.82fr 1.18fr;gap:0 56px}
 .tw__pts dl{padding:18px 22px}
 .tw__me{margin-top:22px}
}
.gl__im img{width:100%;aspect-ratio:4/3.5;object-fit:cover;display:block;
 border:var(--bd);border-radius:8px;transition:transform .22s,box-shadow .22s}
.gl__c:hover .gl__im img{transform:translate(-4px,-4px);box-shadow:5px 5px 0 var(--ink)}
@media(min-width:900px){
 .gl__im img{border-radius:10px;aspect-ratio:4/3}
 .gl__c:hover .gl__im img{transform:translate(-6px,-6px);box-shadow:8px 8px 0 var(--ink)}
}

/* ===================================================================
   FLAT — 影を使わない。全ページ共通の既定ルール。
   罫線と色面で面を分け、ホバーは色の変化だけで返す。
   ※ CSS のコメントに HTML タグを書かないこと。
     mkwp の本文抽出がそこから始まってしまう。
   =================================================================== */
:root{--sh:none; --shs:none; --btnsh:none}

/* ===================================================================
   文字組みの共通ルール（全ページ）
   ・見出しは行のバランスを取り、最後の1語だけが繰り下がるのを防ぐ
   ・入りきる文は1行で。改行したいときだけ <br> を書く
   ・見出しの後半で色を変えない（em は本文と同じ色）
   =================================================================== */
h1,h2,h3,h4,
.fv__h,.kt__h,.hd h2,.hd__sm,.lpfv__h,.cfl__t,.ag__t,.bt__t,.plt__t,
.ft1__t,.wor__end,.vo__q,.msg__t,.prm__t,.twmap__t,.fbd__t,.vst__t,
.hlt__t,.thr__t,.cnc__h,.arh__h,.ideas__end,.dcd__t,.flw__t,.faq__q,
.pt__t,.sv__t,.st__t,.nt__t,.gl__t{text-wrap:balance}
/* 2〜3行で収まる短い文は、行を均等に割る。
   balance は行数が多い段落では効かないので、短い文だけが整う。 */
.kt__p,.kt__note,.lead__p,.cfl__t,.fuda__t,
.plt__t,.ag__t,.ideas__end,.pwo__note,.wor__end,
.lpcta__n,.arh__s,.cst__note,.fbd__t,.arb__n,.brd__n,
.ft1__note,.ct__t,.vst__t,.hlt__t,
.faq__q,.flw__t,.dcd__t,.rln a i,.thr__t,.hd p,
.sty__note,.chx__note,.qlr__t,.qlr__d,.alt__t,.wone__d,
.sty__t,.sty__d,.vst__p{text-wrap:balance}

/* ===================================================================
   折り返しの基本ルール（日本語）
   ・本文は「文字単位」で折り返す。右端がそろって、余白がガタつかない
   ・見出し・短い一文だけ「文節単位」(auto-phrase)。意味の切れ目で折る
   本文に auto-phrase を当てると、長い文節がまるごと次行に送られて
   右端が 60〜70% で止まり、余白が不揃いに見える。だから本文には当てない。
   =================================================================== */
body{word-break:normal;overflow-wrap:anywhere}
h1,h2,h3,h4,
.fv__h,.kt__h,.kt__note,.hd h2,.hd__sm,.lpfv__h,.lpfv__note,
.cfl__t,.ag__t,.bt__t,.bt__nm,.plt__t,.nc__t,.sty__t,.chx__t,.awy__t,
.ft1__t,.vid__t,.dcd__t,.fuda__t,.fuda__bt,.q,.sv .pre,.sv .main,
.wor__end,.vo__q,.msg__t,.prm__t,.twmap__t,.fbd__t,.vst__t,.hlt__t,.thr__t,
.cnc__h,.arh__h,.arh__s,.ideas__end,.flw__t,.faq__q,.pt__t,.sv__t,.st__t,
.nt__t,.gl__t,.ct__h,.lead__sig,.brd__n,.brd__nm,.lst__t,.lst__nm,
.sty__note,.chx__note,.wv__note,.cwg__note,.ft1__note,.cst__note,.pwo__note,.arb__n,
li,dt{word-break:auto-phrase}
/* 箇条書きの中でも、長い説明文は本文あつかい */
.flw__bd span,.ag__l li span,.faq details p,.fuda__bd{word-break:normal}
/* 箇条書きは1行目から詰める（balance だと1行目がわざと短くなる） */
li,.plt__d,.lpfv__s,.nc__d,.qdg__d,.mdg__d,.w2g__d,
.dpr__d,.spc__d,.brn__d,.ba__d,.tl__d{text-wrap:pretty}
h1 em,h2 em,h3 em,h4 em,.cfl__t em,.vo__q em,.kt__h em{color:inherit}


/* 1) 直書きの影を全部落とす */
.hdr.on{box-shadow:none;border-bottom:var(--bd)}
.hmenu[aria-expanded="true"] .hmenu__ic{box-shadow:none;transform:none}
.hcta,.kt__all,.fuda__f,.fuda__b,.vid__pl,
.evt,.lead,.sv a,.st a,.nt__c,.gl__im .bl,
.gl__im img,.fuda.in:hover .fuda__f,.fuda.in:hover .fuda__b{box-shadow:none}
.lead{box-shadow:none}
.plt__im:after,.phg figure:after,.vid__fr:after,
.pt__im:after,.lpfv__ph:after,.vst__ph:after{box-shadow:none}

/* 2) 押し込むホバーをやめて、色の変化で返す */
.btn:hover,.sv a:hover,.st a:hover,.nt__c:hover,
.nt__b:hover,.kt__all:hover,.evt.on:hover,.ct__b:hover,
.hdr__nav>a:hover,.mm:hover .mm__t,.more:hover .more__t,
.rel a:hover,.fp:hover{transform:none;box-shadow:none}
.btn:hover,.hdr__nav>a:hover,.mm:hover .mm__t,
.more:hover .more__t,.nt__b:hover,.kt__all:hover{background:var(--gold)}
.sv a:hover,.st a:hover,.nt__c:hover,.rel a:hover{background:var(--butter)}
.ct__b:hover{background:#000}
.gl__c:hover .gl__im .bl,.gl__c:hover .gl__im img{transform:none;box-shadow:none}
.gl__c:hover .gl__im img{filter:brightness(.92)}
.vid__fr:hover .vid__pl{transform:translate(-50%,-50%) scale(1.06);box-shadow:none}

/* 3) 切り抜きの白フチは残して、落ち影だけ消す */
.sticker{filter:
 drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff)
 drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff)
 drop-shadow(1.4px 1.4px 0 #fff) drop-shadow(-1.4px 1.4px 0 #fff)
 drop-shadow(1.4px -1.4px 0 #fff) drop-shadow(-1.4px -1.4px 0 #fff)}
.sticker--k{filter:
 drop-shadow(2px 0 0 var(--ink)) drop-shadow(-2px 0 0 var(--ink))
 drop-shadow(0 2px 0 var(--ink)) drop-shadow(0 -2px 0 var(--ink))}
.q{filter:none;border:var(--bd)}

/* 4) 面のグラデをやめて、ベタの色で塗り分ける */
.gl__c,.fea__c,.pt__c,.vid__c,.mdt__c,.brd__c,
.twn__c,.cst__c,.stp__c,.ft1,.spec dl,.faq details,
.sv a,.st a,.nt a,.vo__c,.wor li,.smp,
.faqg details,.cmp__r,.thr__c,.lfs__c,.cpt__c,.rel a{
 background-image:none;background-color:#fff}
.lb,.btn,.hdr__nav>a,.more__t,.mm__t,.fp{
 background-image:none}
.sec--cream,.lead,.kt,.ct{background-image:var(--grain)}

/* 5) 影を失うぶん、面と面のあいだは罫でしっかり分ける */
.sec--cream:before{display:none}
.sv a,.st a,.nt__c,.vid__c,.ft1,.rel a,
.thr__c,.lfs__c,.cpt__c{border:var(--bd)}

/* ===================================================================
   PALETTE — イラストの配色に寄せた、全ページ共通の色。
   テラコッタ／ティール／藍／レモン＋若草。ベースのクリームと黒は据え置き。
   =================================================================== */
:root{
 --red:#D2492F;      /* ソファ・屋根・やかんの朱 */
 --green:#2F7D72;    /* 屋根と髪のティールグリーン */
 --blue:#35719B;     /* ジーンズと自転車のくすんだ藍 */
 --gold:#ECC13A;     /* 家とエプロンのレモンイエロー */
 --butter:#FBF0CF;
 --leaf:#7FA84B;     /* 草の若草色（タグなどに） */
 --amber:#A8701A;
}
.sv .s1:hover{background:#FBEBE4}
.sv .s2:hover{background:#E6F1EE}
.sv .s3:hover{background:#E8F0F6}
.sv .s4:hover{background:#FCF3D8}
/* タグは若草のアウトラインで、彩度を上げすぎない */
.gl__m span,.ar__c .gl__m span{background:#F2F5EA;border-color:var(--ink)}
/* ホバーで面に色が乗るときは、タグも文字と同じ色の線だけにする */
.gl__c:hover .gl__m span,.ar__c:hover .gl__m span{background:transparent;border-color:currentColor;color:currentColor}
.gl__c:hover .gl__area{opacity:.95}
.gl__c:hover .gl__d{opacity:.95}
.brd__tg i{background:#F3F6EC}

/* ===== 関連ページ：横長リンク（TOP・下層共通） ===== */
.rln{display:grid;gap:10px;margin-top:26px}
.rln a{display:grid;grid-template-columns:62px 1fr auto;gap:14px;align-items:center;
 background:#fff;border:var(--bd);border-radius:14px;padding:12px 16px;transition:background .18s}
.rln a:hover{background:var(--butter)}
.rln__ill{display:flex;align-items:center;justify-content:center;height:50px}
.rln__ill img{max-height:50px;width:auto;display:block}
.rln b{display:block;font-size:16px;font-weight:800;letter-spacing:-.02em;line-height:1.45}
.rln span{display:block;font-size:13px;line-height:1.7;color:var(--sub);margin-top:4px}
.rln i{font-style:normal;font-size:18px;font-weight:800}
@media(min-width:900px){
 .rln{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:34px}
 .rln a{grid-template-columns:76px 1fr auto;padding:14px 20px}
 .rln__ill{height:62px}
 .rln__ill img{max-height:62px}
 .rln b{font-size:17px}
 .rln span{font-size:13.5px}
}
