/* ═══════════════════════════════════════════════════════════
   はつ旅 共通UI ── site.css
   ・左：アクティビティ空き状況ドック（常駐）
   ・右：AIコンシェルジュ（常駐）
   ・上：ヘアラインのヘッダー
   影を使わず、罫線・余白・書体で構成する。
   ═══════════════════════════════════════════════════════════ */

:root{
  --hd-h: 66px;
  --ok:#2F6F52;
  --few:#9A7A22;
  --full:#9E3838;
  --none:#A29B8D;
  --dock-w: 400px;
}

/* ── Header ───────────────────────────────────────────── */
.site-hd{
  position:fixed;top:0;left:0;right:0;z-index:900;height:var(--hd-h);
  display:flex;align-items:center;background:transparent;
  border-bottom:1px solid transparent;
  transition:background .4s ease, border-color .4s ease;
}
.site-hd.solid{background:rgba(20,17,13,.9);backdrop-filter:blur(12px);
  border-bottom-color:rgba(240,234,222,.16);}
.site-hd .inner{max-width:1240px;margin:0 auto;padding:0 32px;width:100%;
  display:flex;align-items:center;justify-content:space-between;gap:20px;}
.site-hd .brand{font-family:"Cormorant Garamond",serif;font-size:20px;letter-spacing:.01em;
  color:#F4F0E7;text-decoration:none;white-space:nowrap;line-height:1.1;}
.site-hd .brand small{display:block;font-family:"Inter",sans-serif;font-size:9px;letter-spacing:.34em;
  text-transform:uppercase;color:#A9A296;margin-top:3px;font-weight:500;}
.site-hd nav{display:flex;align-items:center;gap:30px;}
.site-hd nav a{font-family:"Inter",sans-serif;font-size:12px;font-weight:500;letter-spacing:.09em;
  color:#DDD7CA;text-decoration:none;white-space:nowrap;transition:color .2s ease;}
.site-hd nav a:hover{color:#D9B25A;}
.site-hd .cta-sm{padding:0 0 3px;border:0;border-bottom:1px solid #D9B25A;
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#D9B25A;}
.site-hd .cta-sm:hover{color:#F4F0E7;border-bottom-color:#F4F0E7;}
.site-hd .lang{font-size:11px;letter-spacing:.12em;color:#A9A296;text-decoration:none;
  padding-left:24px;border-left:1px solid rgba(240,234,222,.2);}
.site-hd .lang:hover{color:#D9B25A;}
.site-hd .burger{display:none;background:none;border:0;cursor:pointer;padding:6px;}
.site-hd .burger span{display:block;width:22px;height:1px;background:#F4F0E7;margin:6px 0;transition:.3s;}
@media (max-width:1080px){
  .site-hd nav{position:fixed;inset:var(--hd-h) 0 auto 0;flex-direction:column;align-items:flex-start;
    gap:0;background:rgba(20,17,13,.98);backdrop-filter:blur(12px);padding:0 32px;
    max-height:0;overflow:hidden;transition:max-height .4s ease,padding .4s ease;}
  .site-hd nav.open{max-height:80vh;padding:12px 32px 28px;}
  .site-hd nav a,.site-hd .cta-sm,.site-hd .lang{width:100%;padding:16px 0;border:0;
    border-bottom:1px solid rgba(240,234,222,.12);text-align:left;}
  .site-hd .burger{display:block;}
  .site-hd .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .site-hd .burger.open span:nth-child(2){opacity:0;}
  .site-hd .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ═══ 左：空き状況ドック ═══════════════════════════════ */
.dock-tab{
  position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:940;
  display:flex;flex-direction:column;align-items:center;gap:16px;
  padding:32px 16px;border:0;cursor:pointer;
  background:#20190F;color:#F4F0E7;font:inherit;
  transition:background .25s ease,padding .25s ease;
}
.dock-tab:hover{background:#C4632B;padding-left:22px;}
.dock-tab:focus-visible{outline:2px solid #D9B25A;outline-offset:2px;}
.dock-tab .live{
  width:9px;height:9px;border-radius:50%;
  background:#7FD3A3;box-shadow:0 0 0 0 rgba(127,211,163,.7);animation:dockPulse 2.6s infinite;flex-shrink:0;}
@keyframes dockPulse{0%{box-shadow:0 0 0 0 rgba(127,211,163,.65);}70%{box-shadow:0 0 0 8px rgba(127,211,163,0);}100%{box-shadow:0 0 0 0 rgba(127,211,163,0);}}

/* 縦タブのラベル：日本語は1文字ずつ積む／英語は行ごと回転 */
.v-lb{display:flex;flex-direction:column;align-items:center;}
.v-lb .ch{
  display:block;font-size:15px;font-weight:500;line-height:1.55;
  letter-spacing:0;text-align:center;
}
.v-lb.rot{
  writing-mode:horizontal-tb;transform:rotate(180deg);
  white-space:nowrap;font-size:14px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;
}
.v-lb.rot{writing-mode:vertical-rl;transform:none;}
.dock-tab.hidden{opacity:0;pointer-events:none;}

.dock{
  position:fixed;left:0;top:0;bottom:0;z-index:945;
  width:var(--dock-w);max-width:92vw;
  background:#FBF9F4;border-right:1px solid rgba(32,25,15,.14);
  display:flex;flex-direction:column;
  transform:translateX(-100%);transition:transform .42s cubic-bezier(.4,0,.2,1);
}
.dock.open{transform:none;}
.dock .hd{
  padding:26px 26px 20px;border-bottom:1px solid rgba(32,25,15,.12);flex-shrink:0;
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
}
.dock .hd .lbl{font-family:"Inter",sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.3em;
  text-transform:uppercase;color:#9E7B3C;}
.dock .hd h2{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:27px;
  line-height:1.2;color:#20190F;margin:9px 0 0;letter-spacing:-.01em;}
.dock .hd button{background:none;border:0;color:#8A8478;cursor:pointer;font-size:22px;
  line-height:1;padding:4px 6px;flex-shrink:0;}
.dock .hd button:hover{color:#20190F;}

.dock .urgency{
  margin:0;padding:15px 26px;background:rgba(158,56,56,.05);
  border-bottom:1px solid rgba(32,25,15,.08);
  font-size:12.5px;color:#7A3232;line-height:1.65;flex-shrink:0;
}
.dock .urgency strong{font-weight:600;}

.dock .tabs{display:flex;gap:20px;padding:16px 26px 0;flex-shrink:0;flex-wrap:wrap;}
.dock .tab{
  background:none;border:0;padding:0 0 9px;cursor:pointer;font:inherit;
  font-size:12px;font-weight:500;letter-spacing:.04em;color:#8A8478;
  border-bottom:1px solid transparent;transition:all .2s ease;
}
.dock .tab:hover{color:#20190F;}
.dock .tab[aria-selected="true"]{color:#C4632B;border-bottom-color:#C4632B;}

.dock .body{flex:1;overflow-y:auto;padding:6px 26px 26px;}
.dock .dates{
  display:grid;grid-template-columns:repeat(7,1fr);gap:2px;
  position:sticky;top:0;background:#FBF9F4;padding:12px 0 9px;z-index:2;
  border-bottom:1px solid rgba(32,25,15,.1);margin-bottom:4px;
}
.dock .dates span{
  text-align:center;font-family:"Inter",sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.02em;color:#8A8478;line-height:1.35;
}
.dock .dates span b{display:block;font-size:12.5px;font-weight:500;color:#20190F;}
.dock .dates span.sat b{color:#3A6B8A;} .dock .dates span.sun b{color:#9E3838;}

.dock .row{padding:17px 0;border-bottom:1px solid rgba(32,25,15,.08);}
.dock .row:last-child{border-bottom:0;}
.dock .row .top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:11px;}
.dock .row .nm{font-family:"Inter",sans-serif;font-size:14px;font-weight:500;color:#20190F;
  text-decoration:none;line-height:1.35;}
.dock .row .nm:hover{color:#C4632B;}
.dock .row .op{display:block;font-size:10.5px;color:#9A9385;font-weight:400;margin-top:3px;letter-spacing:.02em;}
.dock .row .book{
  font-family:"Inter",sans-serif;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:#C4632B;text-decoration:none;border-bottom:1px solid rgba(196,99,43,.4);
  padding-bottom:2px;white-space:nowrap;flex-shrink:0;
}
.dock .row .book:hover{border-bottom-color:#C4632B;}
.dock .row .slots{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.dock .st{
  display:flex;align-items:center;justify-content:center;height:32px;
  font-size:14px;font-weight:600;
}
.dock .st.ok{color:var(--ok);background:rgba(47,111,82,.08);}
.dock .st.few{color:var(--few);background:rgba(154,122,34,.1);}
.dock .st.full{color:var(--full);background:rgba(158,56,56,.07);}
.dock .st.none{color:var(--none);background:transparent;}

.dock .ft{padding:18px 26px;border-top:1px solid rgba(32,25,15,.12);background:#F5F2EA;flex-shrink:0;}
.dock .legend{display:flex;flex-wrap:wrap;gap:14px 18px;margin-bottom:12px;font-size:11px;color:#6B6558;}
.dock .legend span{display:inline-flex;align-items:center;gap:6px;}
.dock .legend i{font-style:normal;font-weight:600;font-size:12.5px;}
.dock .notes{font-size:11px;color:#8A8478;line-height:1.7;}
.dock .notes strong{font-weight:600;color:#5A554A;}
.dock .updated{font-size:10px;color:#A29B8D;margin-top:9px;letter-spacing:.05em;}

.dock-scrim{
  position:fixed;inset:0;z-index:944;background:rgba(20,16,10,.42);
  opacity:0;pointer-events:none;transition:opacity .4s ease;
}
.dock-scrim.on{opacity:1;pointer-events:auto;}

@media (max-width:520px){
  .dock{width:100vw;max-width:100vw;}
  .dock-tab,.ai-fab{padding:24px 13px;}
  .v-lb .ch{font-size:13.5px;}
}

/* ═══ 右：AIコンシェルジュ ══════════════════════════════ */
.ai-fab{
  position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:940;
  display:flex;flex-direction:column;align-items:center;gap:16px;
  padding:32px 16px;border:0;cursor:pointer;
  background:#20190F;color:#F4F0E7;font:inherit;
  transition:background .25s ease,padding .25s ease;
}
.ai-fab:hover{background:#C4632B;padding-right:22px;}
.ai-fab:focus-visible{outline:2px solid #D9B25A;outline-offset:2px;}
.ai-fab .dot{width:9px;height:9px;border-radius:50%;background:#7FD3A3;
  box-shadow:0 0 0 0 rgba(127,211,163,.7);animation:dockPulse 2.6s infinite;flex-shrink:0;}
.ai-fab.hidden{opacity:0;pointer-events:none;}

.ai-panel{
  position:fixed;right:0;top:0;bottom:0;z-index:945;
  width:var(--dock-w);max-width:92vw;
  display:flex;flex-direction:column;background:#FBF9F4;
  border-left:1px solid rgba(32,25,15,.14);
  transform:translateX(100%);transition:transform .42s cubic-bezier(.4,0,.2,1);
}
.ai-panel.open{transform:none;}
.ai-panel .hd{display:flex;align-items:center;gap:12px;padding:22px 24px;
  background:#20190F;color:#F4F0E7;flex-shrink:0;}
.ai-panel .hd .av{width:32px;height:32px;border-radius:50%;background:#C4632B;
  display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.ai-panel .hd .t{flex:1;min-width:0;}
.ai-panel .hd .t b{display:block;font-size:13.5px;font-weight:500;letter-spacing:.02em;}
.ai-panel .hd .t small{font-size:10.5px;color:#A9A296;display:flex;align-items:center;gap:6px;letter-spacing:.03em;}
.ai-panel .hd .t small::before{content:"";width:5px;height:5px;border-radius:50%;background:#7FD3A3;}
.ai-panel .hd button{background:none;border:0;color:#A9A296;cursor:pointer;padding:6px;font-size:20px;line-height:1;}
.ai-panel .hd button:hover{color:#FFF;}

.ai-log{flex:1;overflow-y:auto;padding:24px 24px;background:#FBF9F4;}
.ai-msg{display:flex;margin-bottom:13px;}
.ai-msg .bub{max-width:83%;padding:12px 15px;font-size:13.5px;line-height:1.7;
  white-space:pre-wrap;word-break:break-word;}
.ai-msg.bot .bub{background:#FFF;color:#20190F;border:1px solid rgba(32,25,15,.1);}
.ai-msg.me{justify-content:flex-end;}
.ai-msg.me .bub{background:#20190F;color:#F4F0E7;}
.ai-typing{display:flex;gap:5px;padding:14px 16px;}
.ai-typing i{width:6px;height:6px;border-radius:50%;background:#C4BDB0;animation:aiBlink 1.3s infinite;}
.ai-typing i:nth-child(2){animation-delay:.18s;} .ai-typing i:nth-child(3){animation-delay:.36s;}
@keyframes aiBlink{0%,60%,100%{opacity:.3;}30%{opacity:1;}}

.ai-chips{display:flex;flex-wrap:wrap;gap:7px;padding:0 24px 16px;background:#FBF9F4;}
.ai-chips button{padding:9px 13px;border:1px solid rgba(32,25,15,.14);background:#FFF;
  cursor:pointer;font:inherit;font-size:11.5px;color:#4A453C;transition:all .2s ease;text-align:left;}
.ai-chips button:hover{border-color:#C4632B;color:#C4632B;}

.ai-in{display:flex;gap:10px;padding:16px 22px;border-top:1px solid rgba(32,25,15,.1);background:#FFF;flex-shrink:0;}
.ai-in input{flex:1;min-width:0;padding:11px 14px;border:1px solid rgba(32,25,15,.16);
  font:inherit;font-size:13.5px;color:#20190F;background:#FBF9F4;}
.ai-in input:focus{outline:none;border-color:#C4632B;background:#FFF;}
.ai-in button{width:42px;height:42px;flex-shrink:0;border:0;cursor:pointer;
  background:#C4632B;color:#FFF;font-size:16px;display:flex;align-items:center;justify-content:center;}
.ai-in button:disabled{opacity:.4;cursor:default;}
.ai-note{padding:0 22px 16px;font-size:10px;color:#9A9385;text-align:center;background:#FFF;line-height:1.5;}

@media (max-width:520px){
  .ai-panel{width:100vw;max-width:100vw;border-left:0;}
  .ai-fab{padding:24px 13px;}
}
@media (prefers-reduced-motion:reduce){
  .ai-fab .dot,.ai-typing i,.dock-tab .live{animation:none;}
  .dock,.site-hd,.ai-fab,.dock-scrim{transition:none;}
}

/* ═══════════════════════════════════════════════════════════
   追加：上＝パッケージプラン ／ 下＝宿泊施設の空き状況
   左＝アクティビティ空き状況、右＝AIコンシェルジュ と合わせて
   画面の四辺に「旅程を組む要素」を常駐させる。
   ═══════════════════════════════════════════════════════════ */

/* ── 上：パッケージプラン ─────────────────────────────── */
.pk-tab{
  position:fixed;top:var(--hd-h);left:50%;transform:translateX(-50%);z-index:930;
  display:flex;align-items:center;gap:11px;
  padding:16px 34px;border:0;cursor:pointer;
  background:#20190F;color:#F4F0E7;font:inherit;
  font-size:15px;font-weight:500;letter-spacing:.22em;white-space:nowrap;
  transition:background .25s ease,padding .25s ease;
}
.pk-tab:hover{background:#C4632B;padding-bottom:22px;}
.pk-tab:focus-visible{outline:2px solid #D9B25A;outline-offset:2px;}
.pk-tab .live{width:9px;height:9px;border-radius:50%;background:#D9B25A;flex-shrink:0;}
.pk-tab.hidden{opacity:0;pointer-events:none;}

.pk{
  position:fixed;top:0;left:0;right:0;z-index:935;
  background:#FBF9F4;border-bottom:1px solid rgba(32,25,15,.16);
  transform:translateY(-100%);transition:transform .44s cubic-bezier(.4,0,.2,1);
  max-height:100svh;overflow-y:auto;
}
.pk.open{transform:none;}
.pk .inner{max-width:1240px;margin:0 auto;padding:34px 32px 38px;}
.pk .hd{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding-bottom:24px;border-bottom:1px solid rgba(32,25,15,.12);margin-bottom:30px;}
.pk .hd .lbl{font-family:"Inter",sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.3em;
  text-transform:uppercase;color:#9E7B3C;}
.pk .hd h2{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:30px;
  line-height:1.2;color:#20190F;margin:9px 0 0;letter-spacing:-.012em;}
.pk .hd .sub{font-size:12.5px;color:#8A8478;margin-top:8px;line-height:1.7;max-width:44em;}
.pk .hd button{background:none;border:0;color:#8A8478;cursor:pointer;font-size:23px;
  line-height:1;padding:4px 6px;flex-shrink:0;}
.pk .hd button:hover{color:#20190F;}

.pk .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.pk .card{display:flex;flex-direction:column;}
.pk .card .img{height:170px;overflow:hidden;margin-bottom:20px;background:#EAE3D4;}
.pk .card .img img{width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(.92);transition:filter .5s ease,transform .7s ease;}
.pk .card:hover .img img{filter:saturate(1);transform:scale(1.03);}
.pk .card .meta{display:flex;align-items:center;gap:12px;
  font-family:"Inter",sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:#C4632B;margin-bottom:10px;}
.pk .card .meta .nights{color:#8A8478;letter-spacing:.14em;}
.pk .card h3{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:23px;
  line-height:1.3;color:#20190F;margin:0 0 12px;letter-spacing:-.01em;}
.pk .card p{font-size:13.5px;color:#6B6558;line-height:1.85;margin:0 0 18px;flex:1;}
.pk .card .rail{display:flex;flex-direction:column;gap:7px;margin-bottom:20px;
  padding-top:16px;border-top:1px solid rgba(32,25,15,.1);}
.pk .card .rail span{display:flex;align-items:baseline;gap:10px;font-size:12px;color:#5A554A;line-height:1.6;}
.pk .card .rail span b{font-family:"Inter",sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.14em;
  color:#9E7B3C;min-width:44px;flex-shrink:0;text-transform:uppercase;}
.pk .card .go{
  font-family:"Inter",sans-serif;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:#C4632B;text-decoration:none;border-bottom:1px solid rgba(196,99,43,.4);
  padding-bottom:3px;align-self:flex-start;transition:border-color .2s ease;
}
.pk .card .go:hover{border-bottom-color:#C4632B;}
.pk .ft{margin-top:32px;padding-top:20px;border-top:1px solid rgba(32,25,15,.1);
  font-size:11.5px;color:#8A8478;line-height:1.75;}

@media (max-width:900px){ .pk .grid{grid-template-columns:1fr;gap:34px;} .pk .card .img{height:190px;} }

/* ── 下：宿泊施設の空き状況 ───────────────────────────── */
.st-tab{
  position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:930;
  display:flex;align-items:center;gap:11px;
  padding:18px 34px;border:0;cursor:pointer;
  background:#20190F;color:#F4F0E7;font:inherit;
  font-size:15px;font-weight:500;letter-spacing:.22em;white-space:nowrap;
  transition:background .25s ease,padding .25s ease;
}
.st-tab:hover{background:#C4632B;padding-top:25px;}
.st-tab:focus-visible{outline:2px solid #D9B25A;outline-offset:2px;}
.st-tab .live{width:9px;height:9px;border-radius:50%;background:#7FD3A3;
  box-shadow:0 0 0 0 rgba(127,211,163,.7);animation:dockPulse 2.6s infinite;flex-shrink:0;}
.st-tab.hidden{opacity:0;pointer-events:none;}

.stay-dock{
  position:fixed;left:0;right:0;bottom:0;z-index:945;
  background:#FBF9F4;border-top:1px solid rgba(32,25,15,.16);
  transform:translateY(100%);transition:transform .44s cubic-bezier(.4,0,.2,1);
  max-height:82svh;display:flex;flex-direction:column;
}
.stay-dock.open{transform:none;}
.stay-dock .hd{max-width:1240px;margin:0 auto;width:100%;padding:26px 32px 18px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-shrink:0;}
.stay-dock .hd .lbl{font-family:"Inter",sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.3em;
  text-transform:uppercase;color:#9E7B3C;}
.stay-dock .hd h2{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:28px;
  line-height:1.2;color:#20190F;margin:9px 0 0;letter-spacing:-.012em;}
.stay-dock .hd .sub{font-size:12.5px;color:#7A3232;margin-top:9px;line-height:1.65;max-width:46em;}
.stay-dock .hd .sub strong{font-weight:600;}
.stay-dock .hd button{background:none;border:0;color:#8A8478;cursor:pointer;font-size:23px;
  line-height:1;padding:4px 6px;flex-shrink:0;}
.stay-dock .hd button:hover{color:#20190F;}

.stay-dock .body{flex:1;overflow-y:auto;}
.stay-dock .inner{max-width:1240px;margin:0 auto;padding:0 32px 8px;}
.stay-dock .area{margin-bottom:8px;}
.stay-dock .area > h3{
  font-family:"Inter",sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase;color:#9E7B3C;padding:16px 0 10px;
  border-bottom:1px solid rgba(32,25,15,.12);margin:0 0 4px;
}
.stay-dock table{width:100%;border-collapse:collapse;}
.stay-dock th,.stay-dock td{padding:13px 8px;font-size:13px;border-bottom:1px solid rgba(32,25,15,.07);}
.stay-dock thead th{font-family:"Inter",sans-serif;font-size:10px;font-weight:600;letter-spacing:.02em;
  color:#8A8478;text-align:center;padding:10px 8px;}
.stay-dock thead th b{display:block;font-size:12.5px;font-weight:500;color:#20190F;}
.stay-dock thead th.sat b{color:#3A6B8A;} .stay-dock thead th.sun b{color:#9E3838;}
.stay-dock thead th:first-child{text-align:left;}
.stay-dock tbody th{text-align:left;font-weight:500;color:#20190F;min-width:210px;}
.stay-dock tbody th a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(196,99,43,.3);}
.stay-dock tbody th a:hover{color:#C4632B;}
.stay-dock tbody th .op{display:block;font-size:10.5px;color:#9A9385;font-weight:400;margin-top:3px;}
.stay-dock td{text-align:center;}
.stay-dock .st{display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;font-size:14px;font-weight:600;}
.stay-dock .st.ok{color:var(--ok);background:rgba(47,111,82,.08);}
.stay-dock .st.few{color:var(--few);background:rgba(154,122,34,.1);}
.stay-dock .st.full{color:var(--full);background:rgba(158,56,56,.07);}
.stay-dock .st.none{color:var(--none);}
.stay-dock .direct{
  font-family:"Inter",sans-serif;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:#C4632B;text-decoration:none;border-bottom:1px solid rgba(196,99,43,.4);
  padding-bottom:2px;white-space:nowrap;}
.stay-dock .direct:hover{border-bottom-color:#C4632B;}
.stay-dock .ft{background:#F5F2EA;border-top:1px solid rgba(32,25,15,.12);flex-shrink:0;}
.stay-dock .ft .inner{padding:16px 32px;}
.stay-dock .legend{display:flex;flex-wrap:wrap;gap:14px 20px;margin-bottom:10px;font-size:11px;color:#6B6558;}
.stay-dock .legend span{display:inline-flex;align-items:center;gap:6px;}
.stay-dock .legend i{font-style:normal;font-weight:600;font-size:12.5px;}
.stay-dock .notes{font-size:11px;color:#8A8478;line-height:1.7;}
.stay-dock .notes strong{font-weight:600;color:#5A554A;}
.stay-dock .scroll{overflow-x:auto;}

@media (max-width:760px){
  .stay-dock table{min-width:640px;}
  .st-tab,.pk-tab{font-size:13px;letter-spacing:.14em;padding-left:22px;padding-right:22px;}
}

/* ═══════════════════════════════════════════════════════════
   中央モーダル：旅行会社の方へ（B2B問い合わせ）
   四辺の常駐UIとは別に、CTAから開くフォーカスされた導線。
   影は使わず、罫線・余白・書体で構成する（他UIと同じ原則）。
   ═══════════════════════════════════════════════════════════ */
.ct-modal{
  position:fixed;inset:0;z-index:950;
  display:flex;align-items:flex-start;justify-content:center;
  padding:calc(var(--hd-h) + 26px) 20px 44px;
  overflow-y:auto;opacity:0;pointer-events:none;
  transition:opacity .34s ease;
}
.ct-modal.open{opacity:1;pointer-events:auto;}
.ct-card{
  position:relative;width:100%;max-width:600px;margin:auto;
  background:#FBF9F4;border:1px solid rgba(32,25,15,.16);
  padding:46px 46px 40px;
  transform:translateY(14px);transition:transform .34s cubic-bezier(.4,0,.2,1);
}
.ct-modal.open .ct-card{transform:none;}
.ct-x{position:absolute;top:18px;right:20px;background:none;border:0;
  color:#8A8478;cursor:pointer;font-size:26px;line-height:1;padding:4px 6px;}
.ct-x:hover{color:#20190F;}

.ct-hd{margin-bottom:28px;padding-right:26px;}
.ct-hd .lbl{font-family:"Inter",sans-serif;font-size:9.5px;font-weight:600;
  letter-spacing:.3em;text-transform:uppercase;color:#9E7B3C;}
.ct-hd h2{font-family:"Cormorant Garamond",serif;font-weight:600;
  font-size:clamp(24px,4vw,32px);line-height:1.24;color:#20190F;
  margin:10px 0 13px;letter-spacing:-.012em;}
.ct-hd .sub{font-size:13.5px;color:#6B6558;line-height:1.85;max-width:44em;}

.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;}
.ct-grid .f{display:flex;flex-direction:column;gap:7px;}
.ct-grid .f.full{grid-column:1 / -1;}
.ct-grid .f > span{font-family:"Inter",sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.08em;color:#5A554A;text-transform:uppercase;
  display:flex;align-items:center;gap:8px;}
.ct-grid .f > span i{font-style:normal;font-size:9px;font-weight:600;letter-spacing:.06em;
  color:#C4632B;background:rgba(196,99,43,.08);padding:2px 7px;text-transform:none;}
.ct-grid input,.ct-grid select,.ct-grid textarea{
  font:inherit;font-size:14px;color:#20190F;background:#FFF;
  border:1px solid rgba(32,25,15,.18);padding:12px 14px;width:100%;
  border-radius:0;-webkit-appearance:none;appearance:none;
  transition:border-color .2s ease;
}
.ct-grid select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238A8478' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer;}
.ct-grid textarea{resize:vertical;min-height:96px;line-height:1.7;}
.ct-grid input:focus,.ct-grid select:focus,.ct-grid textarea:focus{
  outline:none;border-color:#C4632B;}

.ct-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.ct-consent{font-size:11px;color:#8A8478;line-height:1.75;margin:16px 0 0;}
.ct-error{font-size:12.5px;color:#9E3838;line-height:1.7;margin:14px 0 0;
  background:rgba(158,56,56,.06);padding:11px 14px;border-left:2px solid #9E3838;}
.ct-error a{color:#9E3838;font-weight:600;}

.ct-send{margin-top:22px;width:100%;padding:15px 20px;border:0;cursor:pointer;
  background:#20190F;color:#F4F0E7;font:inherit;font-size:12.5px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;transition:background .25s ease;}
.ct-send:hover{background:#C4632B;}
.ct-send:disabled{opacity:.5;cursor:default;}

.ct-ok{text-align:center;padding:28px 10px 16px;}
.ct-ok .tick{width:54px;height:54px;margin:0 auto 20px;border-radius:50%;
  background:rgba(47,111,82,.1);color:var(--ok);display:flex;
  align-items:center;justify-content:center;font-size:25px;}
.ct-ok h3{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:26px;
  color:#20190F;margin:0 0 12px;}
.ct-ok p{font-size:14px;color:#6B6558;line-height:1.85;max-width:34em;margin:0 auto;}

@media (max-width:560px){
  .ct-card{padding:38px 22px 32px;}
  .ct-grid{grid-template-columns:1fr;}
  .ct-modal{padding:calc(var(--hd-h) + 14px) 12px 28px;}
}
@media (prefers-reduced-motion:reduce){
  .ct-modal,.ct-card{transition:none;}
}
