/* HAMS 商店街おつかいルート */
.aq-otsukai,.aq-otsukai-lp{--ot-red:#b23a22;--ot-red2:#93301c;--ot-ink:#1e2a3a;--ot-muted:#5e6672;--ot-mist:#f7f1e7;--ot-line:#e8dfd0;--ot-paper:#fffdf8;--ot-green:#1f6b46;color:var(--ot-ink)}

/* ---------- 商品ページ・一覧のボタン ---------- */
html body .aq-otsukai-add{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:46px;min-width:13em;padding:10px 18px;border:1.5px solid #b23a22;border-radius:30px;background:#fff;color:#b23a22;font:inherit;font-size:15px;font-weight:700;line-height:1.3;cursor:pointer;box-sizing:border-box}
html body .aq-otsukai-add::before{content:"";width:1.05em;height:1.05em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9h14l-1.4 10.2a2 2 0 0 1-2 1.8H8.4a2 2 0 0 1-2-1.8z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M9 9V7a3 3 0 0 1 6 0v2' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9h14l-1.4 10.2a2 2 0 0 1-2 1.8H8.4a2 2 0 0 1-2-1.8z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M9 9V7a3 3 0 0 1 6 0v2' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat}
html body .aq-otsukai-add:hover{background:#fbf3ea}
html body .aq-otsukai-add.is-added{background:#1f6b46;border-color:#1f6b46;color:#fff}
html body .aq-otsukai-add.is-compact{min-height:36px;min-width:11.8em;font-size:13px;margin-top:6px}
html body .aq-otsukai-add:focus-visible{outline:3px solid #f2c230;outline-offset:2px}
.aq-otsukai-wrap{margin:10px 0 14px}
.aq-otsukai-note{display:block;margin-top:6px;font-size:12.5px;line-height:1.7;color:#5e6672}
.aq-otsukai-deadline{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:13px}
.aq-otsukai-deadline b{background:#b23a22;color:#fff;border-radius:20px;padding:1px 10px;font-size:12px}

/* ---------- 画面下のおつかいかご ---------- */
.aq-otsukai-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:10px 12px 10px 16px;border-radius:40px;background:#1e2a3a;color:#fff!important;text-decoration:none!important;box-shadow:0 10px 30px rgba(30,42,58,.28);font-size:14px;line-height:1.3}
.aq-otsukai-bar[hidden]{display:none}
.aq-otsukai-bar small{display:block;font-size:11px;opacity:.8;max-width:12em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aq-otsukai-bar b{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:13px;background:#e9b44c;color:#1e2a3a;font-size:13px}
.aq-otsukai-bar-go{padding:6px 12px;border-radius:20px;background:#b23a22;font-weight:700;white-space:nowrap}
.aq-otsukai-bar-ico{font-size:18px}
.ot-toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%,20px);z-index:95;max-width:min(560px,calc(100vw - 32px));padding:12px 16px;border-radius:12px;background:#1e2a3a;color:#fff;font-size:14px;line-height:1.6;opacity:0;pointer-events:none;transition:.25s}
.ot-toast.is-on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.ot-toast a{color:#ffd88a;font-weight:700}

/* ---------- トップページのバナー ---------- */
.aq-otsukai-banner-band{padding-top:8px;padding-bottom:8px}
.aq-otsukai-banner{position:relative;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:14px 22px;padding:22px 26px;border-radius:18px;background:linear-gradient(120deg,#fff6e8 0%,#fde9da 100%);border:1.5px solid #ecd2bd;color:#1e2a3a!important;text-decoration:none!important;overflow:hidden}
.aq-otsukai-banner:hover{border-color:#b23a22}
.aq-otsukai-banner-tag{align-self:start;padding:4px 10px;border-radius:20px;background:#b23a22;color:#fff;font-size:12px;font-weight:700;letter-spacing:.06em;white-space:nowrap}
.aq-otsukai-banner-body{display:flex;flex-direction:column;gap:2px}
.aq-otsukai-banner-body b{font-size:clamp(20px,2.4vw,26px);letter-spacing:.04em}
.aq-otsukai-banner-body span{font-size:15px}
.aq-otsukai-banner-body small{font-size:12.5px;color:#5e6672}
.aq-otsukai-banner-route{display:flex;align-items:center;gap:0}
.aq-otsukai-banner-route i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;border:2px solid #b23a22;color:#b23a22;font-style:normal;font-weight:700}
.aq-otsukai-banner-route i+i{margin-left:22px;position:relative}
.aq-otsukai-banner-route i+i::before{content:"";position:absolute;right:100%;top:50%;width:22px;border-top:2px dashed #b23a22}
.aq-otsukai-banner-route i:last-child{background:#b23a22;color:#fff}
.aq-otsukai-banner-go{padding:10px 18px;border-radius:30px;background:#1e2a3a;color:#fff;font-weight:700;font-size:14px;white-space:nowrap}
@media (max-width:760px){
	.aq-otsukai-banner{grid-template-columns:1fr auto;padding:18px}
	.aq-otsukai-banner-tag{grid-column:1/-1;justify-self:start}
	.aq-otsukai-banner-body{grid-column:1/-1}
	.aq-otsukai-banner-route i{width:28px;height:28px;font-size:13px}
	.aq-otsukai-banner-route i+i{margin-left:16px}
	.aq-otsukai-banner-route i+i::before{width:16px}
}

/* ---------- ランディングページ ---------- */
.aq-otsukai-lp{max-width:none;margin:0}
.ot-hero{position:relative;margin:0 0 32px;padding:40px 32px 34px;border-radius:22px;background:radial-gradient(120% 120% at 100% 0%,#fde3d3 0%,#fff6e8 55%,#fffdf8 100%);border:1px solid #ecd9c6;overflow:hidden}
.ot-eyebrow{margin:0 0 6px;display:inline-block;padding:3px 12px;border-radius:20px;background:#b23a22;color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em}
.ot-hero h1{margin:6px 0 10px;font-size:clamp(28px,4.6vw,44px);line-height:1.3;letter-spacing:.04em}
.ot-lead{margin:0 0 22px;font-size:clamp(16px,2.2vw,19px);line-height:1.9}
.ot-lead b{background:linear-gradient(transparent 62%,#ffd88a 62%)}
.ot-hero-route{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-wrap:wrap;gap:10px 0;align-items:stretch}
.ot-hero-route li{position:relative;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:14px;background:#fff;border:1px solid #ecd9c6;box-shadow:0 2px 0 rgba(178,58,34,.06)}
.ot-hero-route li+li{margin-left:28px}
.ot-hero-route li+li::before{content:"";position:absolute;right:100%;top:50%;width:28px;border-top:2px dashed #b23a22}
.ot-hero-route i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#b23a22;color:#fff;font-style:normal;font-weight:700;font-size:14px}
.ot-hero-route span{font-weight:700}
.ot-hero-route small{color:#5e6672;font-size:12px}
.ot-cta{margin:0}
html body .ot-btn{display:inline-flex;align-items:center;min-height:48px;padding:12px 26px;border-radius:30px;background:#b23a22;color:#fff;font-weight:700;text-decoration:none}
html body .ot-btn:hover{background:#93301c;color:#fff}
.ot-sec{margin:0 0 40px}
.ot-sec h2{margin:0 0 14px;font-size:clamp(20px,2.8vw,26px);line-height:1.5}
.ot-sub{margin:-6px 0 16px;color:#5e6672}
.ot-scenes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ot-scenes li{padding:18px;border-radius:16px;background:#f7f1e7;display:flex;flex-direction:column;gap:6px}
.ot-scenes b{font-size:16px;line-height:1.6}
.ot-scenes span{font-size:14px;color:#3b4552}
.ot-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:none}
.ot-steps li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:18px 20px;border:1px solid #e8dfd0;border-radius:16px;background:#fffdf8}
.ot-steps b{font-size:16.5px}
.ot-steps p{margin:4px 0 0;font-size:14.5px;color:#3b4552;line-height:1.8}
.ot-n{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:#b23a22;color:#fff;font-weight:700;font-size:15px}
.ot-weekly{padding:26px;border-radius:20px;background:#1e2a3a;color:#fff}
.ot-weekly h2{color:#fff}
.ot-weekly .ot-sub{color:#cfd6df}
.ot-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ot-card{padding:18px;border-radius:14px;background:#fff;color:#1e2a3a}
.ot-card b{display:block;margin-bottom:6px;font-size:16px;color:#b23a22}
.ot-card p{margin:0;font-size:14px;line-height:1.8}
.ot-arcades{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.ot-arcades a{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border:1.5px solid #e8dfd0;border-radius:14px;background:#fff;color:#1e2a3a;text-decoration:none}
.ot-arcades a:hover{border-color:#b23a22}
.ot-arcades b{font-size:17px}
.ot-arcades small{color:#5e6672}
.ot-arcades span{margin-top:6px;color:#b23a22;font-weight:700;font-size:14px}
.ot-qa{border-bottom:1px solid #e8dfd0}
.ot-qa summary{cursor:pointer;padding:14px 4px;font-weight:700;list-style:none;position:relative;padding-right:28px}
.ot-qa summary::-webkit-details-marker{display:none}
.ot-qa summary::after{content:"＋";position:absolute;right:4px;color:#b23a22}
.ot-qa[open] summary::after{content:"－"}
.ot-qa p{margin:0 4px 14px;color:#3b4552;line-height:1.85}
.ot-store-cta p{padding:14px 18px;border-radius:12px;background:#f7f1e7;font-size:14px}
@media (max-width:760px){
	.ot-hero{padding:28px 18px 24px}
	.ot-hero-route{flex-direction:column;align-items:flex-start}
	.ot-hero-route li{padding:8px 12px}
	.ot-hero-route li+li{margin:14px 0 0}
	.ot-hero-route li+li::before{right:auto;left:25px;top:auto;bottom:100%;width:0;height:14px;border-top:0;border-left:2px dashed #b23a22}
	.ot-scenes,.ot-cards{grid-template-columns:1fr}
	.ot-weekly{padding:20px 16px}
}

/* ---------- おつかいかご・ルート ---------- */
.aq-otsukai{max-width:none;margin:0}
.ot-head{margin:0 0 18px}
.ot-head h1{margin:6px 0 4px;font-size:clamp(24px,3.6vw,32px)}
.ot-arcade{margin:0 0 14px;font-size:18px;font-weight:700}
.ot-arcade small{font-size:13px;font-weight:400;color:#5e6672}
.aq-otsukai .aq-panel{margin:0 0 18px}
.aq-otsukai h2{margin:0 0 10px;font-size:19px}
.ot-map{height:280px;margin:10px 0 14px;border-radius:14px;border:1px solid #e8dfd0;background:#eef0ea;z-index:0}
.ot-map[hidden]{display:none}
.ot-pin span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#b23a22;color:#fff;font-weight:700;font-size:14px;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.ot-pin.is-cold span{background:#2f5fa8}
.ot-pin.is-done span{background:#8a929c}
.ot-pin.is-next span{background:#1f6b46;transform:scale(1.15)}
.ot-stops{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ot-stop{position:relative;padding:14px 16px;border:1px solid #e8dfd0;border-radius:14px;background:#fff}
.ot-stop+.ot-stop{margin-top:6px}
.ot-walk{margin:-6px 0 8px;font-size:12px;color:#5e6672}
.ot-walk::before{content:"↓ "}
.ot-stop-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.ot-stop-head b{font-size:16.5px}
.ot-stop-head b a{color:inherit}
.ot-eta{margin-left:auto;font-weight:700;color:#b23a22;font-size:16px;white-space:nowrap}
.ot-cold{font-style:normal;font-size:12px;padding:1px 8px;border-radius:12px;background:#e6eefb;color:#2f5fa8;font-weight:700}
.ot-deadline{margin:6px 0 0;font-size:12.5px;color:#5e6672}
.ot-items{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.ot-items li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 0;border-top:1px dashed #e8dfd0;font-size:14.5px}
.ot-item-name{flex:1;min-width:12em;display:flex;flex-direction:column}
.ot-item-name small{color:#5e6672;font-size:12.5px}
.ot-qty{display:inline-flex;align-items:center;gap:8px}
.ot-qty button{width:32px;height:32px;border-radius:50%;border:1.5px solid #d9cfbf;background:#fff;color:#1e2a3a;font-size:16px;line-height:1;cursor:pointer;padding:0}
.ot-qty b{min-width:1.6em;text-align:center}
html body .ot-remove{border:0;background:none;color:#b23a22;font-size:13px;text-decoration:underline;cursor:pointer;padding:4px}
.ot-subtotal{margin:6px 0 0;text-align:right;font-size:14px;color:#3b4552}
.ot-total{margin:14px 0 0;text-align:right;font-size:15px}
.ot-total b{font-size:22px;color:#b23a22;margin:0 4px}
.ot-total small{display:block;color:#5e6672;font-size:12.5px}
.ot-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0 0 12px}
.ot-day{position:relative;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1.5px solid #e8dfd0;border-radius:12px;background:#fff;cursor:pointer;font-size:14px}
.ot-day input{position:absolute;opacity:0;pointer-events:none}
.ot-day span{font-weight:700}
.ot-day small{font-size:12px;color:#5e6672;line-height:1.5}
.ot-day:has(input:checked){border-color:#b23a22;background:#fbf1ea;box-shadow:inset 0 0 0 1px #b23a22}
.ot-day:has(input:focus-visible){outline:3px solid #f2c230;outline-offset:2px}
.ot-day.is-off{cursor:not-allowed;background:#f4f2ee;color:#8a929c}
.ot-range{margin:0 0 10px;font-size:14.5px}
.ot-time{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.ot-time label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700}
.ot-time select{min-height:46px;min-width:8em;padding:6px 12px;border:1px solid #d9cfbf;border-radius:10px;background:#fff;font-size:17px;font-weight:700}
.ot-time>span{padding-bottom:10px;font-weight:700}
.ot-savedcard{margin:10px 0 0;font-size:14.5px}
.ot-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
html body .ot-submit{min-height:52px;padding:12px 28px;border:0;border-radius:30px;background:#b23a22;color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
html body .ot-submit:hover{background:#93301c}
html body .ot-submit:disabled{opacity:.5;cursor:not-allowed}
.ot-msg{margin:10px 0 0;font-size:14px;color:#1f6b46;font-weight:700}
.ot-msg:empty{display:none}
.ot-msg.is-error{color:#b42318}
.ot-when-big{margin:0;font-size:18px;font-weight:700}
.ot-status{display:inline-block;margin:6px 0 0;padding:3px 12px;border-radius:20px;background:#f7f1e7;font-size:13px;font-weight:700}
.ot-status.is-confirmed{background:#e3f3ea;color:#1f6b46}
.ot-status.is-requested,.ot-status.is-paying{background:#fff4d6;color:#7a5a00}
.ot-status.is-cancelled,.ot-status.is-failed,.ot-status.is-expired{background:#f2f2f2;color:#5e6672}
.ot-code{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0 0 18px;padding:16px;border-radius:16px;background:#1e2a3a;color:#fff;text-align:center}
.ot-code p{margin:0;font-size:13px;opacity:.85}
.ot-code b{font-size:40px;letter-spacing:.2em;line-height:1.2;font-family:var(--latin, system-ui)}
.ot-code small{font-size:12px;opacity:.8}
.ot-stop.is-handed{background:#f6f7f8;color:#5e6672}
.ot-stop.is-next{border-color:#1f6b46;box-shadow:0 0 0 2px rgba(31,107,70,.25)}
.ot-stop.is-declined,.ot-stop.is-expired,.ot-stop.is-failed,.ot-stop.is-cancelled{opacity:.6}
.ot-stop-state{margin:6px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.ot-next-label{color:#1f6b46}
.ot-tel{margin:6px 0 0;font-size:13px}
.ot-ops>div{padding:14px 0;border-bottom:1px solid #e8dfd0}
.ot-ops>div:first-child{padding-top:0}
.ot-ops p{margin:4px 0 8px;font-size:14px;color:#3b4552}
.ot-late-btns,.ot-inline,.ot-set-ops{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.ot-late-btns button,.ot-inline button,.ot-set-ops button,.ot-setlist button{min-height:42px;padding:8px 16px;border-radius:24px;border:1.5px solid #b23a22;background:#fff;color:#b23a22;font:inherit;font-weight:700;font-size:14px;cursor:pointer}
.ot-set-ops .aq-btn-ghost{border-color:#d9cfbf;color:#5e6672}
.ot-inline input,.ot-inline select{min-height:42px;padding:6px 10px;border:1px solid #d9cfbf;border-radius:10px;font-size:15px}
.ot-inline label{display:flex;flex-direction:column;gap:2px;font-size:12.5px;font-weight:700}
.ot-cancel{margin:14px 0 0;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.ot-cancel small{color:#5e6672}
.ot-setlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ot-setlist>li{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid #e8dfd0;border-radius:12px;background:#fff}
.ot-setlist>li>div:first-child{display:flex;flex-direction:column}
.ot-setlist small{color:#5e6672;font-size:12.5px}
.ot-subform{flex-basis:100%;margin-top:4px}
.ot-subform summary{cursor:pointer;color:#b23a22;font-weight:700;font-size:14px}
.ot-subform .ot-inline{margin:8px 0 4px}
.ot-empty p{margin:0 0 8px}
.ot-3ds{border:2px solid #e9b44c}
/* 店舗管理画面 */
.ot-store{border-left:4px solid #b23a22}
.ot-store-card.is-soon{border-color:#1f6b46;box-shadow:0 0 0 2px rgba(31,107,70,.25)}
.ot-code-s{font-size:20px;letter-spacing:.12em}
.ot-store .ot-items li{padding:4px 0;font-size:14px}
@media (max-width:640px){
	.ot-map{height:220px}
	.ot-eta{margin-left:0;flex-basis:100%;font-size:15px}
	.ot-time select{min-width:7em}
	html body .ot-submit{width:100%}
	.aq-otsukai-bar{bottom:12px;font-size:13px}
}
