/* Layout: one-screen hero with the catch and two large door-like buttons; shared legal pages as sub-views.
   Color 7:2:1 — white base / ink main / accent split between the two child brands (moving = blue, wedding = rose). Single light look. */
:root{
  --bg:#FFFFFF; --ink:#0B0F19; --ink-2:#161B27; --ink-3:#2A3142;
  --sub:#5A6172; --body:#353B49; --line:#E4E6EC; --soft:#F5F6F9;
  --blue:#1A3CC8; --blue-on-dark:#8FA4F2; --band:#EEF0F3;
  --rose:#A65A6D; --rose-soft:#F6ECEF; --gold:#B39B6B;
  --on-dark:#FFFFFF; --on-dark-sub:#B3B9C7;
  --grid:rgba(11,15,25,.055);
  --f-display:'Inter Tight','Noto Sans JP',system-ui,sans-serif;
  --f-body:'Noto Sans JP','Hiragino Kaku Gothic ProN',system-ui,sans-serif;
  --f-mincho:'Shippori Mincho','Hiragino Mincho ProN','Yu Mincho',serif;
  color-scheme:light;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.8;font-feature-settings:'palt';-webkit-text-size-adjust:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.narrow{max-width:760px}
.eyebrow{font-family:var(--f-display);font-size:11px;font-weight:700;letter-spacing:.26em;color:var(--sub)}
h1,h2,h3{text-wrap:balance;margin:0;line-height:1.25}
.gridbg{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;background-position:-1px -1px}

/* header */
.hdr{border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);position:sticky;top:env(safe-area-inset-top,0px);z-index:20;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--bg)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:13px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo b{font-size:17px;font-weight:900;letter-spacing:.06em}
.logo small{display:none;font-family:var(--f-display);font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--sub);padding-left:10px;border-left:1px solid var(--line)}
.tag{font-size:11px;color:var(--sub);border:1px solid var(--line);padding:2px 10px;border-radius:999px;white-space:nowrap;background:var(--bg)}

/* hero */
.hero{position:relative;overflow:hidden;padding-block:44px 36px}
.hero .wrap{position:relative;z-index:1;display:grid;gap:22px}
.hero h1{font-size:clamp(34px,9.4vw,72px);font-weight:900;letter-spacing:-.01em;line-height:1.14}
.hero h1 .u{background:linear-gradient(transparent 70%,rgba(26,60,200,.18) 70%)}
.hero p{margin:0;font-size:15px;color:var(--body);max-width:32em}
.ring{position:absolute;z-index:0;pointer-events:none;border-radius:999px;border:1.5px solid rgba(11,15,25,.08)}
.ring.r1{width:520px;height:520px;right:-220px;top:-160px}
.ring.r2{width:320px;height:320px;right:-120px;top:-60px;border-color:rgba(26,60,200,.18)}

/* doors */
.doors{display:grid;gap:14px;margin-top:6px}
.door{position:relative;overflow:hidden;display:grid;gap:10px;padding:24px 22px 22px;border-radius:24px;text-decoration:none;min-height:220px;align-content:end;transition:transform .25s ease, box-shadow .25s ease}
.door:hover{transform:translateY(-3px)}
.door .ghost{position:absolute;right:-.04em;top:.05em;font-family:var(--f-display);font-weight:900;font-size:clamp(80px,22vw,150px);line-height:.8;letter-spacing:-.04em;color:transparent;pointer-events:none;white-space:nowrap}
.door .kind{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.08em}
.door .kind i{width:8px;height:8px;border-radius:2px;display:inline-block}
.door .name{font-size:clamp(30px,8vw,42px);font-weight:900;line-height:1.1}
.door .desc{font-size:13.5px}
.door .go{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:14px;font-weight:700;font-size:14.5px}
.door .go span.arrow{width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;transition:transform .25s ease}
.door:hover .go span.arrow{transform:translateX(4px)}
.door.move{background:var(--ink);color:var(--on-dark);box-shadow:0 30px 60px -40px rgba(11,15,25,.9)}
.door.move .ghost{-webkit-text-stroke:1.2px rgba(255,255,255,.1)}
.door.move .kind i{background:var(--blue)}
.door.move .name{font-family:var(--f-display);letter-spacing:.06em}
.door.move .desc{color:var(--on-dark-sub)}
.door.move .go{border-top:1px solid var(--ink-3)}
.door.move .go span.arrow{background:var(--blue)}
.door.wed{background:var(--bg);color:var(--ink);border:1.5px solid var(--ink);box-shadow:0 30px 60px -48px rgba(166,90,109,.8)}
.door.wed .ghost{-webkit-text-stroke:1.2px rgba(166,90,109,.16)}
.door.wed .kind i{background:var(--rose)}
.door.wed .name{font-family:var(--f-mincho);font-weight:600;letter-spacing:.08em;color:var(--ink)}
.door.wed .desc{color:var(--body)}
.door.wed .go{border-top:1px solid var(--line)}
.door.wed .go span.arrow{background:var(--rose)}
.facts{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px;color:var(--sub)}
.facts span{display:flex;align-items:center;gap:6px}
.facts span::before{content:"";width:5px;height:5px;background:var(--ink);border-radius:1px}

/* life line (decor + structure) */
.lifeline{border-top:1px solid var(--line);padding-block:32px 40px}
.lifeline .track{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:18px}
.lifeline .track::before{content:"";position:absolute;left:6px;right:6px;top:6px;height:2px;background:var(--line)}
.lifeline .ev{position:relative;display:grid;gap:6px;justify-items:start;font-size:12px;color:var(--sub);min-width:0}
.lifeline .ev .d{width:14px;height:14px;border-radius:999px;background:var(--bg);border:2px solid var(--line);position:relative;z-index:1}
.lifeline .ev b{font-size:13px;color:var(--sub);font-weight:700}
.lifeline .ev.on .d{border-color:var(--ink);background:var(--ink)}
.lifeline .ev.on.m .d{background:var(--blue);border-color:var(--blue)}
.lifeline .ev.on.w .d{background:var(--rose);border-color:var(--rose)}
.lifeline .ev.on b{color:var(--ink)}
.lifeline .ev small{font-size:10.5px}

/* sub pages */
.page{padding-block:32px 56px}
.crumbs{font-size:12px;color:var(--sub);margin-bottom:16px}
.crumbs a{color:var(--sub)}
.post{font-size:15.5px;line-height:1.95}
.post h1{font-size:clamp(24px,6vw,32px);font-weight:900;margin-bottom:8px}
.post .meta{font-size:12px;color:var(--sub);margin:0 0 20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.post h2{font-size:18px;font-weight:800;margin:36px 0 10px;padding-bottom:8px;border-bottom:1.5px solid var(--ink)}
.post p{margin:0 0 14px}
.post ul{padding-left:1.3em;margin:0 0 14px}
.post li{margin-bottom:5px}
.post li::marker{color:var(--blue)}
.post a{color:var(--blue);text-underline-offset:3px}
.tbl{overflow-x:auto}
.post table{border-collapse:collapse;width:100%;font-size:14.5px}
.post th,.post td{border-bottom:1px solid var(--line);padding:11px 10px;text-align:left;vertical-align:top}
.post th{white-space:nowrap;width:9em;color:var(--sub);font-weight:500}
.lead{background:var(--soft);border-left:3px solid var(--ink);padding:14px 16px}
.copyrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.copyrow code{font-family:var(--f-display);font-size:15px;font-weight:700;background:var(--soft);padding:6px 10px;border-radius:8px;user-select:all}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid var(--ink);background:var(--bg);font-weight:700;font-size:13.5px;cursor:pointer}
.sites{display:grid;gap:10px;margin:0 0 14px;padding:0;list-style:none}
.sites li{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.sites b{display:block}

/* contact form */
.cform{display:grid;gap:18px;background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:20px 16px;margin:8px 0 8px}
.cf-field{display:grid;gap:6px}
.cf-field label{font-size:14px;font-weight:700}
.cf-field input,.cf-field textarea,.cf-field select{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid #D3D7E0;border-radius:12px;padding:12px 14px;width:100%}
.cf-field textarea{resize:vertical;line-height:1.7}
.cf-field input:focus,.cf-field textarea:focus,.cf-field select:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(26,60,200,.18)}
.cf-opt{font-size:11px;color:var(--sub);font-weight:500;margin-left:4px}
.cf-req{font-size:11px;color:#FFFFFF;background:var(--ink);border-radius:4px;padding:1px 6px;margin-left:4px}
.cf-count{font-size:12px;color:var(--sub);justify-self:end}
.cf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-agree{display:flex;align-items:center;gap:10px;font-size:14px}
.cf-agree input{width:20px;height:20px;accent-color:var(--ink)}
.cf-err{margin:0;font-size:13.5px;background:var(--bg);border-left:3px solid var(--blue);padding:8px 12px}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#FFFFFF;min-height:52px;font-size:15px}
.cf-done{background:var(--ink);color:var(--on-dark);border-radius:16px;padding:22px 20px;display:grid;gap:6px;margin:8px 0}
.cf-done strong{font-size:20px}
.cf-done p{margin:0}
.cf-mock{font-size:12px;color:var(--on-dark-sub)}

/* footer */
footer{background:var(--ink);color:var(--on-dark)}
footer .wrap{padding-block:36px 40px;display:grid;gap:18px}
footer nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px}
footer nav a{text-decoration:none}
footer nav a:hover{text-decoration:underline}
footer .note{font-size:12px;color:var(--on-dark-sub);margin:0}
footer .kids{display:flex;flex-wrap:wrap;gap:8px}
footer .kids a{font-size:12.5px;text-decoration:none;border:1px solid var(--ink-3);padding:6px 12px;border-radius:999px}

@media (min-width:640px){
  .doors{grid-template-columns:1fr 1fr}
  .door{min-height:300px;padding:30px 28px 26px}
  .logo small{display:inline}
}
@media (min-width:900px){
  .hero{padding-block:72px 56px}
}
@media (prefers-reduced-motion:reduce){ .door,.door .go span.arrow{transition:none} .door:hover{transform:none} }

/* picker: 質問パネル＋押せるタイル（参考：選択式の査定サイト） */
.picker{background:var(--band);border-radius:24px;padding:22px 16px 18px;display:grid;gap:16px;margin-top:4px;position:relative}
.picker .q{margin:0;display:flex;align-items:center;justify-content:center;gap:10px;font-size:clamp(17px,4.8vw,22px);font-weight:900;text-align:center}
.picker .qn{font-family:var(--f-display);font-size:13px;font-weight:800;width:28px;height:28px;border-radius:8px;background:var(--ink);color:var(--on-dark);display:flex;align-items:center;justify-content:center;flex:none}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{display:grid;justify-items:center;align-content:start;gap:10px;padding:18px 8px 16px;background:var(--bg);border:2px solid var(--ink);border-radius:18px;text-decoration:none;color:var(--ink);box-shadow:0 6px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease;margin-bottom:6px}
.tile.move{box-shadow:0 6px 0 var(--blue)}
.tile.wed{box-shadow:0 6px 0 var(--rose)}
.tile:hover{transform:translateY(-2px)}
.tile.move:hover{box-shadow:0 8px 0 var(--blue)} .tile.wed:hover{box-shadow:0 8px 0 var(--rose)}
.tile:active{transform:translateY(5px);box-shadow:0 1px 0 var(--ink)!important}
.t-lab{font-size:clamp(14px,4vw,17px);font-weight:900;letter-spacing:.02em}
.t-ic{width:64px;height:56px}
.t-name{font-family:var(--f-display);font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--blue);border-top:1.5px solid var(--line);padding-top:8px;width:80%;text-align:center}
.t-name.wed{font-family:var(--f-mincho);letter-spacing:.06em;color:var(--rose);font-weight:600;font-size:11.5px}
.picker .soon{margin:0;text-align:center;font-size:12px;color:var(--sub)}
@media (min-width:900px){ .picker{padding:34px 32px 26px;max-width:720px} .tile{padding:28px 12px 22px} .t-ic{width:84px;height:74px} }
@media (prefers-reduced-motion:reduce){ .tile{transition:none} }
.hero p.lead-strong{font-size:15px;line-height:1.8}
.hero p.lead-strong b{display:inline-block;font-size:clamp(18px,5vw,22px);font-weight:900;color:var(--ink);background:linear-gradient(transparent 62%,rgba(26,60,200,.18) 62%);margin-bottom:4px}

/* hidden 属性をつけた要素は、ほかの display 指定より優先して隠す */
[hidden]{display:none!important}


/* production additions */
main.page{display:block}
.page .wrap.narrow{padding-block:32px 56px}
.post table th{white-space:normal}
