:root{--ink:#231815;--text:#4A3F3C;--muted:#6E6461;--line:#E6E1DF;--gray:#ECE8E6;--soft:#F5F3F2;--accent:#00ABC7;--accent-text:#007F94;--bg:#FFFFFF}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Noto Sans JP',sans-serif;line-height:1.8;font-size:17px}
a{color:var(--accent-text)}a:hover{color:var(--ink)}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding-inline:24px}
.sec{padding-block:88px}
.sec.soft{background:var(--soft)}
.eyebrow{margin:0;font-size:14px;font-weight:700;color:var(--accent-text);letter-spacing:.2em}
h1,h2,h3{font-family:'Zen Kaku Gothic New',sans-serif;color:var(--ink);line-height:1.35;margin:0;text-wrap:balance}
h1{font-size:clamp(26px,3.6vw,40px)}
h2{font-size:clamp(20px,2.2vw,26px)}
h3{font-size:19px}
.mincho{font-family:'Shippori Mincho','Yu Mincho',serif;font-weight:600;letter-spacing:.08em}
.stack{display:flex;flex-direction:column;gap:18px}
.lead{font-size:19px;max-width:760px;margin:0}
p{margin:0}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.box{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:8px;min-width:0}
.sec.soft .box{border-color:transparent}
.box .k{font-size:14px;font-weight:700;color:var(--accent-text);letter-spacing:.1em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--gray);color:var(--ink);font-weight:700;text-decoration:none;border-radius:999px;padding:16px 30px;font-size:17px;transition:background .15s,color .15s;border:none;cursor:pointer;font-family:inherit}
.btn:hover,.btn:focus-visible,.btn.is-active{background:var(--ink);color:#fff}
.btn-sm{padding:10px 20px;font-size:16px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
header.site{border-bottom:1px solid var(--gray);background:var(--bg)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-block:16px}
header.site nav{display:flex;flex-wrap:wrap;gap:8px 30px;align-items:center;font-size:14px;font-family:'Montserrat',sans-serif;font-weight:500;letter-spacing:.1em}
header.site nav a{color:var(--ink);text-decoration:none}
header.site nav a{padding:4px 0;border-bottom:1px solid transparent}header.site nav a:hover{border-bottom-color:var(--ink)}
header.site nav a[aria-current="page"]{border-bottom:1px solid var(--ink)}
header.site nav .btn{font-family:'Noto Sans JP',sans-serif;letter-spacing:0;border-bottom:0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:700}
.brand img{height:30px;width:auto;display:block}
.brand span{font-family:'Zen Kaku Gothic New',sans-serif;font-size:20px;letter-spacing:.06em}
footer.site{border-top:3px solid var(--accent);padding-block:40px;font-size:15px}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
table.t{width:100%;border-collapse:collapse;min-width:560px;background:var(--bg)}
table.t th,table.t td{padding:14px 16px;border-top:1px solid var(--gray);text-align:left;vertical-align:top}
table.t thead th{background:var(--soft);font-size:15px;color:var(--ink)}
.scroll{overflow-x:auto;border-radius:16px}
.flow{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));counter-reset:f}
.flow .box{position:relative}
.note{font-size:15px;color:var(--muted)}
.wish{display:grid;gap:12px}
.wish div{display:grid;grid-template-columns:5.5em 1fr;gap:16px;align-items:baseline;background:var(--bg);border-radius:14px;padding:18px 22px}
.wish b{font-family:'Zen Kaku Gothic New',sans-serif;font-size:22px;color:var(--ink)}
.quote{border-left:4px solid var(--accent);padding-left:20px;font-family:'Zen Kaku Gothic New',sans-serif;font-size:20px;color:var(--ink)}
.copy{font-family:monospace;background:var(--soft);padding:2px 8px;border-radius:6px;user-select:all}
@media (max-width:480px){.wish div{grid-template-columns:1fr;gap:4px}.sec{padding-block:64px}}

header.site .acct{display:flex;gap:8px;justify-content:flex-end;order:-1;flex-basis:100%;margin-bottom:-6px}
header.site .acct .btn{padding:6px 16px;font-size:13px}
@media(max-width:600px){header.site .acct{position:absolute;top:16px;right:14px;flex-basis:auto;margin:0}header.site .wrap{position:relative}}
footer.site .back{display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-weight:700}
footer.site .back img{height:22px;width:auto}
footer.site .back:hover span{text-decoration:underline}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.ticket{gap:10px}
.ticket .price{margin:0;font-size:30px;font-weight:700;color:var(--ink);letter-spacing:.02em}
.ticket .price small{font-size:14px;font-weight:500;color:var(--muted);margin-left:4px}
table.t.mini{font-size:14px}table.t.mini th,table.t.mini td{padding:8px 10px}
.ticket .row{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:6px}
.ticket .more{font-size:14px;color:var(--ink)}
ol.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
ol.steps li{display:flex;gap:12px;align-items:flex-start;background:var(--bg);border-radius:12px;padding:14px 16px}
ol.steps b{flex:none;width:26px;height:26px;border-radius:999px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px}
ol.steps span{display:flex;flex-direction:column;font-weight:700;color:var(--ink)}
ol.steps small{font-weight:400;color:var(--muted);font-size:13px}
.ticket table.t{min-width:0 !important;width:100% !important;table-layout:fixed}
.card-link{text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.card-link:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(35,24,21,.08)}.card-link .go{font-size:14px;font-weight:700;color:var(--ink)}
header.site nav a.btn{padding:10px 20px;font-size:15px}
.tut{display:flex;flex-direction:column;gap:24px;margin-top:8px}
.tut-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
.tut-tabs button{font:inherit;font-size:13px;text-align:left;background:none;border:0;border-top:1px solid var(--gray);padding:10px 0 0;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;gap:2px}
.tut-tabs button b{font-family:'Montserrat',sans-serif;font-weight:500;font-size:11px;letter-spacing:.2em}
.tut-tabs button[aria-selected="true"]{color:var(--ink);border-top:2px solid var(--ink);padding-top:9px}
.tut:not(.js) .tut-tabs,.tut:not(.js) .tut-nav{display:none}
.tut:not(.js) .tut-step[hidden]{display:grid}
.tut-step{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px;align-items:center;min-height:420px}
.tut-step[hidden]{display:none}
.tut-tx{display:flex;flex-direction:column;gap:12px}
.tut-tx h2{margin:0}
.tut-tx .lead2{margin:0;font-weight:700;color:var(--ink)}
.tut-tx p{margin:0}
.tut-step figure{margin:0;border-radius:12px;overflow:hidden;box-shadow:0 18px 40px rgba(35,24,21,.12);border:1px solid var(--gray);background:#fff}
.tut-step figure img{display:block;width:100%;height:auto}
.tut-note{padding:48px 40px;display:flex;flex-direction:column;gap:14px;background:var(--soft)}
.tut-note span{font-size:13px;color:var(--muted)}
.tut-note p{margin:0;font-size:18px;line-height:2;color:var(--ink)}
.tut-note small{color:var(--muted)}
.tut-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--gray);padding-top:18px}
.tut-nav button{border:0;cursor:pointer;font-family:inherit}.tut-nav button:disabled{opacity:.35;cursor:default}
.tut-count{font-family:'Montserrat',sans-serif;font-size:13px;letter-spacing:.1em;color:var(--muted)}
.tut-count b{color:var(--ink)}
@media(max-width:860px){.tut-step{grid-template-columns:minmax(0,1fr);gap:20px;min-height:0}.tut-step figure{order:-1}.tut-tabs{gap:6px}.tut-tabs button{font-size:0}.tut-tabs button b{font-size:11px}}
.tut-tx .k{font-family:'Montserrat',sans-serif;font-size:11px;font-weight:500;letter-spacing:.24em;color:var(--accent-text)}
@media(max-width:700px){
.scroll:has(table.cards-sm){overflow:visible}
table.t.cards-sm{min-width:0;background:transparent}
table.t.cards-sm thead{display:none}
table.t.cards-sm,table.t.cards-sm tbody{display:block}
table.t.cards-sm tr{display:block;background:var(--soft);border-radius:14px;padding:6px 18px 10px;margin-bottom:14px}
table.t.cards-sm th{display:block;border:0;padding:12px 0 8px;font-size:18px;background:transparent}
table.t.cards-sm td{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--gray);font-size:15px}
table.t.cards-sm td::before{content:attr(data-label);color:var(--muted);font-size:13px;flex:0 1 55%}
}
.ticket .price small{display:block;margin:2px 0 0}table.t.mini small{display:block;font-size:12px;color:var(--muted)}
table.t.mini small{display:block;font-size:12px;color:var(--muted)}
