:root{color-scheme:light;--ink:#41413f;--muted:#686862;--line:#e5e5e1;--accent:#706448;--surface:#f6f6f4;--sans:"Yu Gothic Medium","游ゴシック Medium",YuGothic,"游ゴシック体",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font:400 15px/1.8 var(--sans);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-underline-offset:4px}
:focus-visible{outline:3px solid #655331;outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-100px;left:16px;z-index:4;padding:10px 16px;background:#fff}
.skip-link:focus{top:12px}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:12px max(24px,calc((100% - 980px)/2));border-bottom:1px solid var(--line)}
.brand{font:700 23px/1.3 Arial,sans-serif;letter-spacing:.08em;text-decoration:none;white-space:nowrap}
.brand span{margin-left:4px;font-size:12px;font-weight:400}
.header-back{font-size:13px}
.page{width:min(100%,688px);margin:auto;padding:44px 24px 78px}
.eyebrow{margin:0 0 10px;color:var(--muted);font-size:12px;letter-spacing:.08em}
h1{margin:0;font-size:clamp(23px,5vw,30px);font-weight:600;line-height:1.5}
.intro{margin:14px 0 20px}
.notice{margin:0 0 28px;padding:14px 18px;border-left:2px solid var(--accent);background:var(--surface);font-size:13px;line-height:1.8}
form{border-top:1px solid var(--line);padding-top:28px}
fieldset{min-width:0;margin:0;padding:0;border:0}
legend,.field>span,.photo-field>label{display:block;margin:0 0 7px;font-weight:600}
.required{color:#9e4939;font-size:11px;font-weight:600}
.field{display:block;margin:0 0 23px}
.field-help{display:block;margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.65}
.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.field input:not([type="file"]),.field select,.field textarea{display:block;width:100%;min-height:47px;padding:10px 12px;border:1px solid #a6a69e;border-radius:0;background:#fff}
.field textarea{min-height:154px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.rating-fieldset{margin-bottom:25px}
.rating-fieldset .field-help{margin:0 0 9px}
.rating-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.rating-options label{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:48px;padding:7px 9px;border:1px solid var(--line);background:#fff;color:var(--accent);font-family:Arial,sans-serif;white-space:nowrap;cursor:pointer}
.rating-options label:has(input:checked){border-color:var(--accent);background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent)}
.rating-options label:has(input:focus-visible){outline:3px solid #655331;outline-offset:3px}
.rating-options input{position:absolute;opacity:0;width:1px;height:1px}
.photo-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px;font-weight:600}
.photo-count{font-size:12px;font-weight:400;color:var(--muted)}
.photo-add{min-height:44px;padding:9px 20px;border:1px solid var(--accent);background:#fff;color:var(--accent);font-size:14px;font-weight:600}
.photo-add:disabled{opacity:.5;cursor:default}
.photo-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.photo-preview:empty{display:none}
.photo-preview figure{min-width:0;margin:0;padding:6px;border:1px solid var(--line)}
.photo-preview img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--surface)}
.photo-preview span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.photo-remove{display:block;width:100%;min-height:40px;margin-top:5px;padding:6px;border:1px solid var(--line);background:var(--surface);font-size:12px}
.photo-remove:disabled{opacity:.5;cursor:wait}
.purchaser-field{margin:4px 0 24px;padding:12px 16px 16px;border:1px dashed #a6a69e;border-radius:6px;background:var(--surface)}
.purchaser-field legend{width:auto;padding:0 6px;margin:0;font-size:14px}
.purchaser-field .field{margin:0}
.purchaser-field .field>span{font-size:13px}
/* Keep email input text at 16px to avoid iOS focus zoom. */
.purchaser-field input{font-size:16px}
.consent{display:flex;align-items:flex-start;gap:10px;margin:8px 0 8px;padding:15px 16px;background:var(--surface);font-size:13px;cursor:pointer}
.consent input{width:19px;height:19px;margin:3px 0 0;flex:none;accent-color:var(--accent)}
.submit-button{display:block;width:100%;min-height:52px;margin-top:26px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:700}
.submit-button:disabled{opacity:.55;cursor:wait}
.form-status{min-height:1.8em;margin:12px 0 0;font-size:13px;white-space:pre-line}
.form-status[data-kind="error"]{color:#a12f25}
.form-status[data-kind="success"]{color:#315d3e}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.site-footer{display:flex;justify-content:space-between;gap:12px;width:min(calc(100% - 48px),976px);margin:auto;padding:28px 0 42px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
@media(max-width:540px){.site-header{min-height:64px;padding:12px 20px}.brand{font-size:20px}.header-back{font-size:12px}.page{padding:34px 22px 54px}.two-columns{grid-template-columns:1fr}.rating-options{gap:6px}.rating-options label{padding:6px 2px}.photo-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer{width:calc(100% - 44px)}}
