/* さくらツーリストの申し込み・見積りフォーム（3サイト共通）。forms_ux.py が書き出すフォームの見た目。
   色はサイトごとに .sf--ce（コンパニオン宴会）・.sf--ry（宴会王国）・.sf--bl（貸切バス王国）。正は static-sites/forms_ux/sf.css */
form.sf{--sf-ac:#ff0066;--sf-acd:#d6004f;--sf-acs:#fff0f6;--sf-ink:#222;--sf-sub:#666;--sf-line:#d9d9de;--sf-bg:#fff;--sf-err:#c8102e;--sf-errs:#fff3f4;--sf-ok:#1a7f4b;
  display:block;max-width:720px;margin:0 auto 32px;padding:0;color:var(--sf-ink);font-size:16px;line-height:1.6;text-align:left;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;-webkit-text-size-adjust:100%}
form.sf.sf--ry{--sf-ac:#ff8800;--sf-acd:#c95f00;--sf-acs:#fff5e8}
form.sf.sf--bl{--sf-ac:#ff8800;--sf-acd:#c95f00;--sf-acs:#fff5e8}
form.sf *,form.sf *::before,form.sf *::after{box-sizing:border-box}
form.sf [hidden]{display:none!important}
form.sf p{margin:0}

/* 上の案内 */
form.sf .sf-top{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:12px 14px;border-radius:12px;background:var(--sf-acs);font-size:14px;line-height:1.5}
form.sf .sf-top svg{flex:none;width:22px;height:22px;stroke:var(--sf-acd)}
form.sf .sf-top b{color:var(--sf-acd);font-size:17px}
form.sf .sf-restore{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 14px;padding:10px 14px;border:1px solid var(--sf-line);border-radius:12px;font-size:14px;background:#fafafa}

/* 宿・プランから来たときのカード */
form.sf .sf-card{margin:0 0 16px;padding:14px 16px;border:2px solid var(--sf-ac);border-radius:14px;background:#fff}
form.sf .sf-card-k{font-size:13px;font-weight:700;color:var(--sf-acd);margin-bottom:6px;display:flex;align-items:center;gap:6px}
form.sf .sf-card-k svg{width:18px;height:18px;stroke:var(--sf-acd)}
form.sf .sf-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:15px}
form.sf .sf-card dt{color:var(--sf-sub);font-weight:400;margin:0;padding:0;border:0;background:none;font-size:13px;line-height:1.7}
form.sf .sf-card dd{margin:0;padding:0;border:0;font-weight:700;word-break:break-word}
form.sf .sf-card .sf-link{margin-top:8px}

/* まとまり */
form.sf .sf-sec{margin:0 0 16px;padding:18px 16px 6px;border:1px solid var(--sf-line);border-radius:14px;background:var(--sf-bg);min-width:0}
form.sf .sf-h{float:left;display:flex;align-items:center;gap:10px;width:100%;margin:0 0 14px;padding:0;border:0;background:none;font-size:18px;font-weight:700;line-height:1.4;color:var(--sf-ink)}
form.sf .sf-h::before,form.sf .sf-h::after{content:none}
form.sf .sf-h+*{clear:both}
form.sf .sf-n{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sf-ac);color:#fff;font-size:15px}
form.sf .sf-h small{margin-left:auto;font-size:12px;font-weight:400;color:var(--sf-sub)}
form.sf .sf-secnote{margin:-6px 0 14px;font-size:14px;color:var(--sf-sub)}

/* 1項目 */
form.sf .sf-f{margin:0 0 20px;padding:0;border:0;min-width:0}
form.sf .sf-l{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 6px;padding:0;border:0;background:none;font-size:15px;font-weight:700;line-height:1.45;color:var(--sf-ink);float:none;width:auto}
form.sf .sf-opt{display:inline-block;padding:0 6px;border:1px solid #dcdfe4;border-radius:999px;background:none;color:#8a9099;font-size:11px;font-weight:400;line-height:1.6}
form.sf .sf-req{display:inline-block;padding:1px 8px;border-radius:4px;background:var(--sf-acd);color:#fff;font-size:11px;font-weight:700;line-height:1.6;letter-spacing:.06em}
form.sf .sf-hint{margin:-2px 0 8px;font-size:13px;color:var(--sf-sub);line-height:1.55}
form.sf .sf-note{margin:6px 0 0;font-size:13px;color:var(--sf-sub);line-height:1.55}
form.sf .sf-note a,form.sf .sf-hint a,form.sf .sf-consent a{color:var(--sf-acd);text-decoration:underline}

/* 入力欄（旧 CSS の input/select/textarea の指定を打ち消す） */
form.sf .sf-in{display:block;width:100%;max-width:none;min-width:0;height:auto;min-height:48px;margin:0;padding:11px 14px;border:1.5px solid var(--sf-line);border-radius:10px;background:#fff;color:var(--sf-ink);
  font:inherit;font-size:16px;line-height:1.5;box-shadow:none;outline:none;-webkit-appearance:none;appearance:none;float:none;transition:border-color .15s,box-shadow .15s}
form.sf textarea.sf-in{min-height:112px;resize:vertical}
form.sf select.sf-in{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px}
form.sf input[type=date].sf-in{min-width:0;padding:11px 14px;font-size:16px}
form.sf input[type=date].sf-in::-webkit-date-and-time-value{text-align:left}
form.sf .sf-in::placeholder{color:#a3a7ae;opacity:1}
form.sf .sf-in:focus{border-color:var(--sf-ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--sf-ac) 22%,transparent)}
form.sf .sf-in[readonly]{background:#f6f6f7}
form.sf .sf-f.is-err .sf-in{border-color:var(--sf-err);background:var(--sf-errs)}
form.sf .sf-f.is-ok .sf-in:not(select){border-color:#9fd3b6}
form.sf .sf-w-s{max-width:200px}
form.sf .sf-inrow{display:flex;align-items:center;gap:8px}
form.sf .sf-inrow .sf-in{flex:0 1 auto}
form.sf .sf-w-m{max-width:360px}

/* 横並び（時:分・年/月/日 など） */
form.sf .sf-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
form.sf .sf-row .sf-in{width:auto;flex:1 1 0;min-width:84px}
form.sf .sf-row .sf-sep{color:var(--sf-sub);font-size:15px}
form.sf .sf-sub{display:flex;flex-direction:column;gap:4px;flex:1 1 140px;min-width:0}
form.sf .sf-sub-l{font-size:13px;color:var(--sf-sub);line-height:1.4}
form.sf .sf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
form.sf .sf-grid .sf-sub{flex:none}
form.sf .sf-day{margin:0 0 14px;padding:14px;border-radius:12px;background:#f7f7f9}
form.sf .sf-day .sf-f{margin-bottom:14px}
form.sf .sf-day .sf-f:last-child{margin-bottom:0}
form.sf .sf-day-h{margin:0 0 10px;font-size:15px;font-weight:700}

/* 小見出しと＋−の一覧（車種の台数・人数の内訳） */
form.sf .sf-list{display:grid;grid-template-columns:1fr;gap:0 24px}
form.sf .sf-li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #eee}
form.sf .sf-li-l{font-size:14px;line-height:1.45}
form.sf .sf-li .sf-step{gap:6px;flex:none}
form.sf .sf-li .sf-step .sf-in{min-width:64px;padding:10px 6px}
form.sf .sf-li .sf-stepb{width:44px;height:44px}
@media (min-width:768px){form.sf .sf-list{grid-template-columns:1fr 1fr}}

/* 選ぶボタン（ラジオ・チェック） */
form.sf .sf-chips{display:flex;flex-wrap:wrap;gap:8px}
form.sf .sf-chips.sf-col{flex-direction:column;align-items:stretch}
form.sf .sf-chip{position:relative;display:inline-flex;margin:0;padding:0;float:none;width:auto;font-size:15px;font-weight:400;cursor:pointer;line-height:1.4}
form.sf .sf-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
form.sf .sf-chip span{display:flex;align-items:center;gap:8px;min-height:44px;width:100%;padding:9px 16px 9px 12px;border:1.5px solid var(--sf-line);border-radius:999px;background:#fff;color:var(--sf-ink);transition:border-color .15s,background .15s}
form.sf .sf-col .sf-chip span{border-radius:12px}
form.sf .sf-chip span::before{content:"";flex:none;width:18px;height:18px;border:1.5px solid #b5b9c0;border-radius:50%;background:#fff no-repeat center/12px}
form.sf .sf-chip input[type=checkbox]+span::before{border-radius:5px}
form.sf .sf-chip input:checked+span{border-color:var(--sf-ac);background:var(--sf-acs);font-weight:700}
form.sf .sf-chip input:checked+span::before{border-color:var(--sf-ac);background-color:var(--sf-ac);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
form.sf .sf-chip input:focus-visible+span{box-shadow:0 0 0 3px color-mix(in srgb,var(--sf-ac) 25%,transparent)}
form.sf .sf-f.is-err .sf-chip span{border-color:var(--sf-err)}

/* 人数などの＋− */
form.sf .sf-step{display:inline-flex;align-items:center;gap:8px}
form.sf .sf-step .sf-in{width:auto;min-width:96px;text-align:center;text-align-last:center;padding:11px 12px;background-image:none;font-weight:700}
form.sf .sf-stepb{display:inline-grid;place-items:center;flex:none;width:48px;height:48px;margin:0;padding:0;border:1.5px solid var(--sf-line);border-radius:50%;background:#fff;color:var(--sf-acd);cursor:pointer;-webkit-tap-highlight-color:transparent}
form.sf .sf-stepb svg{width:22px;height:22px;stroke:currentColor}
form.sf .sf-stepb:active{background:var(--sf-acs)}
form.sf .sf-stepb:disabled{color:#c5c8cd;cursor:default;background:#fff}
form.sf .sf-suf{font-size:15px;color:var(--sf-sub)}

/* エラー */
form.sf .sf-err{display:flex;align-items:flex-start;gap:6px;margin:6px 0 0;color:var(--sf-err);font-size:14px;font-weight:700;line-height:1.5}
form.sf .sf-err svg{flex:none;width:18px;height:18px;margin-top:1px;stroke:currentColor}

/* 折りたたみ・リンク風ボタン */
form.sf .sf-link{display:inline-flex;align-items:center;gap:4px;min-height:36px;margin:0;padding:4px 2px;border:0;background:none;color:var(--sf-acd);font:inherit;font-size:14px;font-weight:700;text-decoration:underline;cursor:pointer}
form.sf details.sf-more{margin:0 0 16px;border:1px solid var(--sf-line);border-radius:14px;background:#fff}
form.sf details.sf-more>summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 16px;font-size:16px;font-weight:700;cursor:pointer;list-style:none}
form.sf details.sf-more>summary::-webkit-details-marker{display:none}
form.sf details.sf-more>summary::after{content:"";margin-left:auto;width:20px;height:20px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") no-repeat center/20px}
form.sf details.sf-more[open]>summary::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E")}
form.sf details.sf-more>summary small{font-size:12px;font-weight:400;color:var(--sf-sub)}
form.sf details.sf-more>.sf-more-in{padding:4px 16px 6px}
form.sf .sf-box{max-height:220px;overflow:auto;margin:0 0 10px;padding:12px 14px;border:1px solid var(--sf-line);border-radius:10px;background:#fafafa;font-size:13px;line-height:1.7}

/* 送信 */
form.sf .sf-consent{margin:4px 0 12px;font-size:14px;text-align:center;color:var(--sf-sub)}
form.sf .sf-bar{position:sticky;bottom:0;z-index:50;margin:0;border-radius:14px 14px 0 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--sf-line);box-shadow:0 -6px 16px rgba(0,0,0,.06);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
form.sf .sf-bar-in{display:flex;align-items:center;gap:12px;max-width:720px;margin:0 auto}
form.sf .sf-bar-msg{flex:1 1 auto;min-width:0;font-size:13px;line-height:1.4;color:var(--sf-sub)}
form.sf .sf-bar-msg b{color:var(--sf-acd);font-size:16px}
form.sf .sf-bar-msg.is-ready{color:var(--sf-ok);font-weight:700}
form.sf .sf-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:180px;min-height:52px;margin:0;padding:12px 22px;border:0;border-radius:999px;background:var(--sf-acd);color:#fff;
  font:inherit;font-size:17px;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb,var(--sf-acd) 35%,transparent);-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}
form.sf .sf-btn svg{width:20px;height:20px;stroke:currentColor}
form.sf .sf-btn:hover{filter:brightness(1.05)}
form.sf .sf-btn:disabled{opacity:.75;cursor:progress}
form.sf .sf-btn.is-busy svg{animation:sf-spin .9s linear infinite}
@keyframes sf-spin{to{transform:rotate(360deg)}}
@media (max-width:480px){
  form.sf .sf-sec{padding:16px 14px 4px;border-radius:12px}
  form.sf .sf-bar{padding-left:12px;padding-right:12px}
  form.sf .sf-btn{min-width:150px;padding:12px 18px}
}
@media (min-width:768px){
  form.sf .sf-sec{padding:24px 28px 8px}
  form.sf .sf-bar{margin:0;border-radius:14px 14px 0 0}
}
@media (prefers-reduced-motion:reduce){form.sf *{transition:none!important;animation:none!important}}

/* ---- 11/7 夕の直し（本人のスマホ実機から） ---- */
/* ページが横に揺れないように（フォームのあるページだけ読まれる） */
html,body{overflow-x:clip}
form.sf{overflow-wrap:anywhere}

/* キャンセル料金規定の表（スマホ幅でも横にはみ出さない） */
form.sf .sf-box.sf-cancel{max-height:none;overflow:visible;padding:10px}
form.sf .sf-cxl{width:100%;table-layout:fixed;border-collapse:collapse;margin:0;font-size:12.5px;line-height:1.35;text-align:center;background:#fff}
form.sf .sf-cxl col.sf-cxl-h{width:28%}
form.sf .sf-cxl th,form.sf .sf-cxl td{padding:7px 2px;border:1px solid #e3e3e8;vertical-align:middle;word-break:normal;overflow-wrap:anywhere}
form.sf .sf-cxl thead th{background:var(--sf-acs);color:var(--sf-ink);font-size:11.5px;font-weight:700;line-height:1.3}
form.sf .sf-cxl tbody th{text-align:left;padding-left:6px;font-weight:700;background:#fafafa}
form.sf .sf-cxl td{font-variant-numeric:tabular-nums}
form.sf .sf-cxl-n{margin-top:8px!important;font-size:12.5px;line-height:1.65;color:var(--sf-sub)}
@media (min-width:600px){form.sf .sf-cxl{font-size:14px}form.sf .sf-cxl thead th{font-size:13px}}

/* 日付の欄（押すと下からカレンダーのシート。sf.js が元の入力欄の代わりに出す） */
form.sf .sf-dr{display:flex;align-items:stretch;border:1.5px solid var(--sf-line);border-radius:12px;background:#fff;overflow:hidden}
form.sf .sf-dr:focus-within{border-color:var(--sf-ac)}
form.sf .sf-drb{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:60px;margin:0;padding:9px 14px;border:0;background:none;color:var(--sf-ink);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
form.sf .sf-drb:focus-visible{outline:2px solid var(--sf-ac);outline-offset:-2px}
form.sf .sf-drb-k{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--sf-sub);line-height:1.3}
form.sf .sf-drb-k svg{width:15px;height:15px;stroke:var(--sf-acd)}
form.sf .sf-drb-v{font-size:16px;font-weight:700;line-height:1.4;white-space:nowrap}
form.sf .sf-drb-v.is-empty{color:#a3a7ae;font-weight:400}
form.sf .sf-dr-sep{flex:none;align-self:center;width:1px;height:34px;background:var(--sf-line)}

/* カレンダーのシート（body の直下に置く。色はフォームのサイトに合わせる） */
.sf-pop{--sf-ac:#ff0066;--sf-acd:#d6004f;--sf-acs:#ffe6f0;--sf-ink:#222;--sf-sub:#666;--sf-line:#e3e3e8;position:fixed;inset:0;z-index:2147483000;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;color:var(--sf-ink);line-height:1.5;text-align:left;font-size:16px}
.sf-pop.sf--ry,.sf-pop.sf--bl{--sf-ac:#ff8800;--sf-acd:#c95f00;--sf-acs:#ffefd9}
.sf-pop[hidden]{display:none!important}
.sf-pop *,.sf-pop *::before,.sf-pop *::after{box-sizing:border-box}
.sf-pop-bg{position:absolute;inset:0;background:rgba(0,0,0,.45);animation:sf-fade .2s}
.sf-pop-sh{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;height:92%;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.18);animation:sf-up .24s cubic-bezier(.2,.8,.2,1);overflow:hidden}
.sf-pop-hd{flex:none;border-bottom:1px solid var(--sf-line)}
.sf-pop-handle{display:block;width:100%;height:22px;margin:0;padding:0;border:0;background:none;cursor:grab;touch-action:none}
.sf-pop-handle::before{content:"";display:block;width:40px;height:5px;margin:8px auto 0;border-radius:3px;background:#d4d6da}
.sf-pop-top{display:flex;align-items:center;gap:8px;padding:2px 14px 8px}
.sf-pop-sum{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700;white-space:nowrap}
.sf-pop-p{position:relative;padding:6px 0 8px}
.sf-pop-p.is-empty{color:var(--sf-sub);font-weight:400}
.sf-pop-p.is-on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;border-radius:2px;background:var(--sf-ac)}
.sf-pop-til{color:var(--sf-sub);font-weight:400}
.sf-pop-ck{flex:none;display:flex;flex-direction:column;gap:2px}
.sf-pop-ck label{display:flex;align-items:center;gap:7px;min-height:32px;margin:0;padding:0;font-size:14px;cursor:pointer}
.sf-pop-ck input{width:20px;height:20px;margin:0;accent-color:var(--sf-acd)}
.sf-pop-wd,.sf-pop-g{display:grid;grid-template-columns:repeat(7,1fr)}
.sf-pop-wd{padding:6px 8px;border-top:1px solid var(--sf-line);font-size:12px;text-align:center;color:var(--sf-sub)}
.sf-pop-wd span:first-child{color:#d93a3a}.sf-pop-wd span:last-child{color:#2f6fd6}
.sf-pop-body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 8px 16px}
.sf-pop-m h3{margin:0;padding:18px 0 6px;font-size:16px;font-weight:700;text-align:center;color:var(--sf-ink);border:0;background:none;line-height:1.4}
.sf-pop-d{position:relative;display:flex;align-items:center;justify-content:center;height:56px;margin:0;padding:0;border:0;background:none;font:inherit;font-size:16px;color:var(--sf-ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
.sf-pop-d.is-sun,.sf-pop-d.is-hol{color:#d93a3a}.sf-pop-d.is-sat{color:#2f6fd6}
.sf-pop-d:disabled{color:#c9ccd1;cursor:default}
.sf-pop-n{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;border-radius:50%}
.sf-pop-d.is-today .sf-pop-n{box-shadow:inset 0 0 0 1.5px var(--sf-ac)}
.sf-pop-d.is-in::before,.sf-pop-d.is-a.is-r::before,.sf-pop-d.is-b::before{content:"";position:absolute;top:6px;bottom:6px;left:0;right:0;background:var(--sf-acs)}
.sf-pop-d.is-a.is-r::before{left:50%}
.sf-pop-d.is-b::before{right:50%}
.sf-pop-d.is-a .sf-pop-n,.sf-pop-d.is-b .sf-pop-n{background:var(--sf-acd);color:#fff;font-weight:700;box-shadow:none}
.sf-pop-d.is-b .sf-pop-n{background:var(--sf-ac)}
.sf-pop-t{position:absolute;bottom:0;left:0;right:0;z-index:2;font-size:9px;line-height:1;text-align:center;color:var(--sf-acd);font-weight:700;pointer-events:none}
.sf-pop-ft{flex:none;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--sf-line);background:#fff}
.sf-pop-ok{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:52px;margin:0;padding:10px;border:0;border-radius:10px;background:var(--sf-acd);color:#fff;font:inherit;font-size:17px;font-weight:700;letter-spacing:.04em;cursor:pointer}
.sf-pop-ok small{font-size:14px;font-weight:700;opacity:.92;letter-spacing:0}
.sf-pop-x{position:absolute;top:8px;right:8px;display:none;width:40px;height:40px;border:0;border-radius:50%;background:none;color:var(--sf-sub);cursor:pointer}
.sf-pop-x svg{width:22px;height:22px;stroke:currentColor}
@media (min-width:768px){
  .sf-pop-sh{left:50%;right:auto;bottom:auto;top:50%;width:440px;height:min(720px,88%);transform:translate(-50%,-50%);border-radius:16px;animation:sf-fade .2s}
  .sf-pop-handle{height:10px}.sf-pop-handle::before{display:none}
  .sf-pop-top{padding-top:10px;padding-right:52px}
  .sf-pop-x{display:block}
}
@keyframes sf-up{from{transform:translateY(100%)}to{transform:none}}
@keyframes sf-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.sf-pop *{animation:none!important}}

form.sf .sf-cxl td{text-align:center!important}
.sf-pop-d{align-items:flex-start;padding-top:4px}
.sf-pop-n{width:42px;height:42px}
.sf-pop-t{bottom:2px}

/* フォームの上の見出しと短い説明（ページの上の「予約フォーム／TEL／メール」のボタンの代わり） */
form.sf .sf-hero{position:relative;margin:0 0 16px;padding:20px 18px 14px;border:1px solid color-mix(in srgb,var(--sf-ac) 22%,#fff);border-radius:16px;background:linear-gradient(160deg,var(--sf-acs) 0%,#fff 62%);overflow:hidden}
form.sf .sf-hero::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:color-mix(in srgb,var(--sf-ac) 9%,transparent);pointer-events:none}
form.sf .sf-hero-t{position:relative;z-index:1;margin:0;padding:0;border:0;background:none;font-size:23px;font-weight:800;line-height:1.35;letter-spacing:.03em;color:var(--sf-ink);text-align:left;float:none;width:auto}
form.sf .sf-hero-t::before,form.sf .sf-hero-t::after{content:none;display:none}
form.sf .sf-hero-sub{position:relative;z-index:1;display:inline-block;margin:8px 0 0!important;padding:3px 12px;border-radius:999px;background:var(--sf-acd);color:#fff;font-size:13px;font-weight:700;letter-spacing:.04em}
form.sf .sf-hero-pts{position:relative;z-index:1;display:grid;gap:6px;margin:12px 0 0;padding:0;list-style:none}
form.sf .sf-hero-t+.sf-hero-pts{margin-top:12px}
form.sf .sf-hero>.sf-hero-pts:first-child{margin-top:0}
form.sf .sf-hero-pts li{display:flex;align-items:flex-start;gap:8px;margin:0;padding:0;border:0;background:none;list-style:none;font-size:14.5px;line-height:1.55;color:var(--sf-ink)}
form.sf .sf-hero-pts li::before{content:none;display:none}
form.sf .sf-hero-pts svg{flex:none;width:18px;height:18px;margin-top:2px;padding:2px;border-radius:50%;background:var(--sf-acd);stroke:#fff}
form.sf .sf-hero-left{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin-top:12px!important;padding-top:10px;border-top:1px dashed color-mix(in srgb,var(--sf-ac) 30%,#ddd);font-size:14px;color:var(--sf-sub);min-height:2.4em}
form.sf .sf-hero-left [data-sf-left]{font-weight:700;color:var(--sf-ink);white-space:nowrap}
form.sf .sf-hero-left [data-sf-left] b{color:var(--sf-acd);font-size:17px;margin:0 1px}
form.sf .sf-hero-left .is-ready{color:var(--sf-ok)}
form.sf .sf-hero-rest{font-size:13px}
form.sf .sf-hero-note{position:relative;z-index:1;margin-top:6px!important;font-size:13px}
form.sf .sf-hero-note a{color:var(--sf-acd);text-decoration:underline}
@media (min-width:768px){form.sf .sf-hero{padding:26px 28px 18px}form.sf .sf-hero-t{font-size:27px}}

/* キーボードが出ている間（タッチの端末で入力欄に focus 中）は画面下の送信の帯を隠す。場所は残す */
form.sf.sf-typing .sf-bar{visibility:hidden;opacity:0;pointer-events:none}

/* ロゴ（forms_ux.py の LOGOS で WebP に差し替えたもの） */
img.sf-logo-img{max-width:100%;height:auto}
#head .logo img.sf-logo-img{width:346px}
.sf-logo-co{margin:4px 0 0;padding:0;font-size:11px;line-height:1.4;color:#666;letter-spacing:.02em}


/* ---- 11/7 夜 文字の組み方（本人「フォームの文字やフォントがダサい」）----
   書体: Web フォントは読まない（重さを増やさない）。iPhone・Mac はヒラギノ角ゴ、Windows は BIZ UDPゴシック→游ゴシック、Android は Noto Sans JP（端末に入っている）。
   段階: 見出し 20/800 → ラベル 15/700 → 入力 16/500 → 補足 13/400（#4f5562）。日本語の字詰め（palt）は見出しとラベルだけ。行間は本文 1.7・見出し 1.35 */
form.sf,.sf-pop{font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","BIZ UDPGothic","Yu Gothic UI","Yu Gothic","Noto Sans JP",Meiryo,system-ui,sans-serif;
  --sf-sub:#4f5562;--sf-ink:#1c2230;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
form.sf{font-size:16px;line-height:1.7;letter-spacing:.02em}
form.sf .sf-hero-t{font-size:24px;font-weight:800;letter-spacing:.04em;line-height:1.35;font-feature-settings:"palt"}
form.sf .sf-hero-pts li{font-size:14.5px;line-height:1.6;letter-spacing:.02em}
form.sf .sf-h{font-size:19px;font-weight:800;letter-spacing:.04em;line-height:1.35;margin-bottom:18px;font-feature-settings:"palt"}
form.sf .sf-n{width:26px;height:26px;font-size:14px;font-weight:700;letter-spacing:0;font-feature-settings:"tnum"}
form.sf .sf-sec{padding-top:22px}
form.sf .sf-f{margin-bottom:24px}
form.sf .sf-l{font-size:15px;font-weight:700;letter-spacing:.04em;line-height:1.45;margin-bottom:8px;color:var(--sf-ink);font-feature-settings:"palt"}
form.sf .sf-l .sf-req,form.sf .sf-l .sf-opt{letter-spacing:.06em;font-feature-settings:normal}
form.sf .sf-hint{margin:-2px 0 10px;font-size:13px;line-height:1.65;color:var(--sf-sub);letter-spacing:.02em}
form.sf .sf-note{margin-top:8px;font-size:13px;line-height:1.65;color:var(--sf-sub);letter-spacing:.02em}
form.sf .sf-secnote{font-size:13.5px;color:var(--sf-sub)}
form.sf .sf-in{font-size:16px;font-weight:500;letter-spacing:.02em;color:var(--sf-ink)}
form.sf .sf-in::placeholder{color:#9aa0aa;font-weight:400}
form.sf select.sf-in{width:100%!important;max-width:none!important}
form.sf .sf-step .sf-in{width:auto!important}
form.sf .sf-w-s{max-width:200px!important}
form.sf .sf-w-m{max-width:360px!important}
form.sf .sf-chip{font-size:15px;letter-spacing:.02em}
form.sf .sf-chip input:checked+span{font-weight:700}
form.sf .sf-sub-l,form.sf .sf-li-l{color:var(--sf-ink);font-size:14px}
form.sf .sf-day-h{font-size:15px;font-weight:800;letter-spacing:.04em}
form.sf .sf-drb-k{font-size:12px;letter-spacing:.04em}
form.sf .sf-drb-v{font-size:17px;font-weight:700;letter-spacing:.02em;font-feature-settings:"palt"}
form.sf details.sf-more>summary{font-size:15.5px;letter-spacing:.04em}
form.sf .sf-err{font-size:13.5px;letter-spacing:.02em}
form.sf .sf-consent{font-size:13px;color:var(--sf-sub)}
form.sf .sf-bar-msg{font-size:13px;color:var(--sf-sub)}
form.sf .sf-btn{font-size:17px;letter-spacing:.08em}
form.sf .sf-cxl{letter-spacing:0}

/* 送信の帯の下の余白: フォームがページの最後のときは、まわりの箱の下の余白を詰める（11/7 本人「下に変な空白」） */
form.sf{margin-bottom:0}
form.sf .sf-bar{margin-bottom:0;border-radius:14px 14px 0 0}
.form:has(>form.sf),.body:has(>form.sf),.entry-content:has(form.sf){padding-bottom:0!important;margin-bottom:0!important}
form.sf .sf-hint,form.sf .sf-note,form.sf .sf-hero-pts li{font-feature-settings:normal}
form.sf .sf-in{letter-spacing:0}
form.sf.sf{margin-bottom:0!important}
body:has(form.sf){margin-bottom:0!important}
