:root{--paper:#f8f5ed;--ink:#302e2a;--wine:#713b44;--line:#d8cebe;--muted:#6d675f;--white:#fffdf8;--green:#315b4b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Gothic","Meiryo",sans-serif;font-size:16px;line-height:1.8}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #aa7752;outline-offset:3px}.demo{background:#302e2a;color:#fff8ea;text-align:center;padding:7px 15px;font-size:13px}header{max-width:1180px;margin:auto;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:28px 24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-family:serif}.brand strong{font-size:30px;font-weight:500;letter-spacing:.15em}.brand small{font:12px sans-serif;display:block;letter-spacing:.16em}.seal{background:var(--wine);color:var(--paper);padding:5px 11px;font:30px serif;border:3px double var(--paper);outline:1px solid var(--wine)}nav{display:flex;gap:24px}nav a{text-decoration:none;font-size:14px}nav small{display:block;color:var(--muted);font-size:12px}main{max-width:1120px;margin:38px auto 60px;padding:0 24px}h1,h2,h3{font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;font-weight:500;line-height:1.5}h1{font-size:36px;margin:10px 0 20px}h2{font-size:26px;margin:0 0 18px}h3{font-size:20px}p{margin:10px 0 18px}.eyebrow{font-size:13px;color:var(--wine);letter-spacing:.2em;text-transform:uppercase}.en{display:block;font-size:14px;line-height:1.6;color:var(--muted);font-family:sans-serif;letter-spacing:0}.hero{display:grid;grid-template-columns:1fr 1.15fr;gap:38px;align-items:start}.intro{padding:16px 0}.price{font-family:Georgia,serif;font-size:38px;margin:25px 0 8px}.price small{font-family:sans-serif;font-size:14px}.panel{background:var(--white);border:1px solid var(--line);padding:28px;box-shadow:0 7px 23px #36291d05}.rule{border-top:3px double var(--line);margin:30px 0;padding-top:24px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}label{display:block;font-size:14px;font-weight:600}label .en{font-weight:400;margin-bottom:6px}input:not([type=checkbox]),select,textarea{width:100%;border:1px solid #bdb1a0;border-radius:2px;background:#fffefb;padding:11px 12px;color:var(--ink);min-height:48px}textarea{resize:vertical;min-height:88px}input[type=checkbox]{width:19px;height:19px;flex:none;accent-color:var(--wine)}.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}.btn,button{border:1px solid var(--wine);background:var(--wine);color:white;padding:11px 20px;text-decoration:none;display:inline-block;text-align:center;border-radius:2px}.secondary{background:transparent;color:var(--wine)}.small{font-size:14px;padding:7px 12px}.wide{width:100%;margin-top:20px}.notice{background:#f0e8da;border-left:3px solid #a7804b;padding:14px 17px;margin:18px 0;font-size:14px}.error{color:#982f35;background:#fff0ed;padding:12px}.success{color:var(--green);background:#edf3ed;padding:14px}.muted{color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:15px}.day{padding:7px 0;min-width:0;font-size:16px;background:transparent;color:var(--ink);border:1px solid var(--line)}.day small{display:block;font-size:12px;color:var(--green)}.day.selected{background:var(--wine);color:white}.day.selected small{color:white}.weekday{text-align:center;font-size:13px;color:var(--muted)}.calendar-head button{padding:3px 12px;background:none;color:var(--ink);border:1px solid var(--line)}.legend{font-size:13px;color:var(--muted);margin-top:10px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:38px}.facts article{border-top:1px solid var(--line);padding-top:15px}.facts p{font-size:15px}.stay-gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:110px 110px;gap:8px;margin-top:25px}.stay-gallery figure{margin:0;position:relative;overflow:hidden;background:#efe9dc}.stay-gallery figure:first-child{grid-row:1/3}.stay-gallery img{display:block;width:100%;height:100%;object-fit:cover}.stay-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 12px 8px;color:#fff;background:linear-gradient(transparent,#0009);font-size:13px}.placeholder{border:0}.steps{display:flex;gap:20px;font-size:14px;color:var(--wine);margin-bottom:25px}.narrow{max-width:780px;margin:auto}.summary{padding:16px;background:#eee7db;margin:20px 0}.tag{display:inline-block;font-size:13px;padding:2px 9px;background:#ece8dc;color:#51463c}.tag.confirmed{background:#e3ede5;color:var(--green)}.tag.pending{background:#f3e4cb;color:#75511d}.tag.cancelled{background:#eee;color:#777}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:15px 10px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}th{color:var(--muted);font-weight:500;font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:24px 0}.stat{border:1px solid var(--line);padding:16px;background:var(--white)}.stat strong{font:30px Georgia;display:block}.mail{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}footer{text-align:center;border-top:1px solid var(--line);padding:24px;color:var(--muted);font-size:14px}footer small{font-size:12px}details{border-top:1px solid var(--line);padding:14px 0}summary{cursor:pointer}.empty{padding:35px;text-align:center;color:var(--muted)}.note{font-size:14px}.spacer{margin-top:28px} @media(max-width:760px){header{padding:20px 18px;align-items:flex-start;flex-direction:column;gap:18px}nav{width:100%;justify-content:space-between;gap:10px}main{padding:0 17px;margin-top:22px}.hero,.facts,.grid{grid-template-columns:1fr;gap:20px}.full{grid-column:auto}.panel{padding:20px}h1{font-size:29px}.intro{padding:0}.price{margin-top:12px}.stats{gap:7px}.stat{padding:10px;font-size:13px}.brand strong{font-size:26px}.steps{gap:12px;font-size:13px}}@media(prefers-reduced-motion:no-preference){button,.btn{transition:background .15s}button:hover:not(:disabled),.btn:hover{filter:brightness(.94)}}
[hidden]{display:none!important}
@media(max-width:760px){.hero>.panel{order:-1}}

.channels{display:block;font-size:12px;line-height:1.5;text-align:left;white-space:nowrap}.channels span{display:block}.day:has(.channels span){min-height:100px}.calendar:has(.channels span){min-width:560px}.panel:has(.calendar){overflow-x:auto}
.trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.closed-day{background:#f3e4e0;border-color:#9a5252}.calendar .day{display:flex;flex-direction:column;align-items:stretch}.calendar .day>strong{padding:0 5px}.block-toggle{display:block;width:calc(100% - 12px);margin:auto 6px 2px;padding:2px 3px;font-size:10px;line-height:1.2}.closed-day .block-toggle{background:transparent;color:#713b44}

.tool-section{margin-top:18px;border:1px solid var(--line);background:var(--white)}.tool-section>summary{cursor:pointer;padding:16px 20px;font-weight:700;color:var(--wine)}.tool-section[open]>summary{border-bottom:1px solid var(--line)}.tool-section>.panel{border:0;box-shadow:none;margin:0}.tool-section>p{padding:0 20px}
.calendar-editor{position:fixed;inset:0;z-index:20;background:#302e2acc;padding:5vh 18px;overflow:auto}.calendar-editor>.panel{max-width:680px;margin:auto;box-shadow:0 16px 60px #0005}.day[data-calendar-date]{cursor:pointer}.day[data-calendar-date]:hover{outline:2px solid #a7804b;outline-offset:1px}.channels .direct-booking{font-weight:800;color:#a40018;background:#ffe5e8;border:1px solid #d76573;padding:1px 4px;border-radius:2px}.calendar .past-day{background:#e4e2de;color:#aaa;border-color:#ddd;cursor:default;min-height:86px;box-shadow:none}.calendar .past-day strong{color:#aaa}
/* Taisho-romantic accents: restrained Japanese-Western ornament */
body{background-color:#f6f0e4;background-image:radial-gradient(circle at 12px 12px,#7b39410a 1px,transparent 1.5px);background-size:24px 24px}
header{position:relative;background:linear-gradient(180deg,#fffdf9cc,#f6f0e4cc);border-top:4px double #9b7849}
header:after{content:"◆";position:absolute;left:50%;bottom:-13px;transform:translateX(-50%);background:#f6f0e4;color:#9b7849;padding:0 12px;font-size:15px}
.panel{border:1px solid #c9b28f;box-shadow:0 9px 28px #4b30210d;position:relative}
.panel:before{content:"";position:absolute;inset:5px;pointer-events:none;border:1px solid #a7804b24}
h1,h2{letter-spacing:.035em}.hero h1:after{content:"";display:block;width:88px;margin-top:14px;border-bottom:3px double #a7804b}
.stay-gallery{grid-template-rows:145px 145px;border:5px solid #fffaf0;outline:1px solid #a7804b;box-shadow:0 12px 32px #3c251527}
.stay-gallery figure:after{content:"";position:absolute;inset:5px;border:1px solid #f5dfb366;pointer-events:none}
.entry-fold,.saved-booking{margin-top:12px;border:1px solid var(--line);background:#fffdf8;padding:0}
.entry-fold>summary,.saved-booking>summary{padding:13px 16px;font-weight:700;color:var(--wine);list-style-position:inside}
.entry-fold[open]>summary,.saved-booking[open]>summary{border-bottom:1px solid var(--line);background:#f7f0e4}
.entry-fold>form,.saved-booking>form{padding:18px;margin:0}
.channels span{overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ready-action{margin:14px 0;padding:14px;border:2px solid #a7804b;background:#fff8e8}.ready-action p{margin-top:0}.ready-action button{width:100%}.ready-status{margin:14px 0;padding:10px;background:#eef6e8;border-left:4px solid #648c4a;font-weight:700}
.ready-status.mail-needed{background:#fff8e8;border-left-color:#a7804b}
@media(max-width:760px){.stay-gallery{grid-template-rows:115px 115px}.entry-fold>form,.saved-booking>form{padding:14px}}

/* Pilgrim guide */
.pilgrim-guide{margin-top:48px;padding:34px;border:1px solid #c9b28f;background:#fffdf8;position:relative;box-shadow:0 9px 28px #4b30210d}.pilgrim-guide:before{content:"";position:absolute;inset:6px;border:1px solid #a7804b24;pointer-events:none}.pilgrim-guide>h2{text-align:center;margin-bottom:10px}.pilgrim-guide>.eyebrow{text-align:center}.pilgrim-lead{text-align:center;max-width:780px;margin:0 auto 26px}.pilgrim-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.pilgrim-card{padding:18px;border-top:3px double #a7804b;background:#f8f2e8}.pilgrim-card h3{margin:0 0 8px;color:var(--wine)}.pilgrim-card p{font-size:15px;margin:0}.pilgrim-cta{text-align:center;margin-top:26px}
@media(max-width:760px){nav{flex-wrap:wrap;justify-content:flex-start}.pilgrim-guide{padding:24px 18px}.pilgrim-grid{grid-template-columns:1fr}}

/* Taishotei Pilgrim Girl */
.story-page{max-width:980px;margin:auto}.story-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:34px;align-items:center;padding:38px;border:1px solid #c9b28f;background:linear-gradient(135deg,#fffdf8,#eee2cd);position:relative}.story-hero:before,.story-prologue:before{content:"";position:absolute;inset:7px;border:1px solid #a7804b35;pointer-events:none}.story-lead{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:20px}.story-portrait{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:5px double #a7804b;background:linear-gradient(160deg,#713b4430,#f5dfb3);color:var(--wine);font-family:serif;font-size:24px}.story-portrait small{display:block;font:13px sans-serif;color:var(--muted)}.story-prologue{position:relative;margin:30px 0;padding:32px 38px;background:#fffdf8;border:1px solid #c9b28f}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}.story-grid article{padding:24px;background:#fffdf8;border-top:4px double #a7804b}.story-status{display:inline-block;padding:3px 10px;background:#eee7db;color:var(--wine);font-size:13px}.story-submit{margin-top:36px}.story-submit textarea{min-height:180px}
@media(max-width:760px){.story-hero,.story-grid{grid-template-columns:1fr}.story-hero{padding:26px 20px}.story-portrait{min-height:220px}.story-prologue{padding:25px 22px}nav a{font-size:13px}}

/* Main guest navigation buttons */
header nav{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:9px}
header nav a{display:flex;min-height:62px;padding:9px 12px;align-items:center;justify-content:center;flex-direction:column;text-align:center;text-decoration:none;font-size:14px;line-height:1.35;color:var(--wine);background:#fffaf0;border:1px solid #b99a70;border-radius:3px;box-shadow:0 3px 9px #3c251510}
header nav a:hover{background:#f1e5d1;border-color:var(--wine)}
header nav a:active{transform:translateY(1px)}
header nav small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.2}
@media(max-width:900px){header{align-items:flex-start;flex-direction:column}header nav{width:100%}}
@media(max-width:560px){header nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}header nav a{min-height:58px;padding:8px 6px;font-size:13px}}

/* Story works and manager */
#published-works article{padding:24px;background:#fffdf8;border:1px solid #c9b28f}#published-works img,.story-admin-card img{display:block;width:100%;max-height:520px;object-fit:contain;background:#eee7db;margin:12px 0}#published-works audio,.story-admin-card audio{display:block;width:100%;margin:14px 0}.published-story-section{margin:38px 0}.story-admin-card{margin:16px 0}.story-admin-card h2{margin-bottom:5px}
.story-inline-tool{display:grid;grid-template-columns:1fr 1fr auto;gap:.7rem;align-items:end;border:1px solid #cbbca6;border-radius:8px;padding:.8rem}.story-inline-tool label{margin:0}.story-inline-image{margin:1.5rem auto;text-align:center}.story-inline-image img{display:block;max-width:100%;height:auto;margin:auto;border-radius:6px}.story-inline-image figcaption{margin-top:.45rem;color:#6b6258;font-size:.9rem}@media(max-width:700px){.story-inline-tool{grid-template-columns:1fr}.story-inline-tool button{width:100%}}

.compact-action{width:auto;min-height:0;padding:.42rem .7rem;font-size:.86rem;line-height:1.2}.admin-maintenance .compact-action{margin-top:.25rem}

.pdf-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}.pdf-actions .btn{width:auto;padding:.55rem .85rem}

#work-form .pdf-only{display:none}#work-form.pdf-mode .non-pdf{display:none}#work-form.pdf-mode .pdf-only{display:block}#pdf-current{display:block;margin-top:.35rem;color:#665f56}

.storage-usage{display:grid;gap:8px;margin:14px 0}.storage-usage progress{width:100%;height:12px}.storage-usage small{color:#665}.storage-warning{border:2px solid #a21d18;background:#fff1ef;color:#7d100d}.storage-warning b{display:block}

.admin-link{display:block;width:max-content;margin:12px auto 0;font-size:11px;color:#756f65;opacity:.7;text-decoration:none}.admin-link:hover,.admin-link:focus{opacity:1;text-decoration:underline}

.story-reader{line-height:1.9}.story-page{min-height:18rem}.story-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:24px;padding-top:16px;border-top:1px solid #d9cbb8}.story-pager button{width:auto;min-width:88px;padding:8px 12px}.story-pager span{font-variant-numeric:tabular-nums;color:#665}

.story-admin-preview{max-height:16rem;overflow:hidden;padding:12px;background:#faf7f0;border-left:3px solid #b5966d;line-height:1.75}.story-full-text{margin:10px 0}.story-full-text summary{cursor:pointer;font-weight:700;color:#682f38}.story-full-text[open] summary{margin-bottom:12px}.danger{background:#fff;color:#8f1d18;border-color:#b95c56}
