.promotion-modal{--ink:var(--color-ink);--ink-soft:var(--color-ink-soft);--muted:var(--color-muted);--teal:var(--color-teal);--teal-deep:var(--color-teal-deep);--teal-light:var(--color-teal-light);--cream:var(--color-cream);--coral:var(--color-coral);--coral-deep:var(--color-coral-deep);--sand:var(--color-sand);--surface:var(--color-surface);--line:var(--color-line);--elev-1:var(--shadow-elev-1);--elev-2:var(--shadow-elev-2);--elev-3:var(--shadow-elev-3);--ease:var(--ease-standard);--ease-entrance:var(--ease-entrance)}body.promotion-modal-open{overflow:hidden}.promotion-trigger{z-index:45;background:var(--color-ink);min-height:48px;color:var(--color-surface);box-shadow:var(--shadow-elev-2);cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s var(--ease-standard), transform .3s var(--ease-entrance), background .2s var(--ease-standard), visibility .22s;border:0;border-radius:999px;align-items:center;gap:9px;padding:7px 16px 7px 7px;font-size:11.5px;font-weight:800;line-height:1;display:inline-flex;position:fixed;bottom:22px;right:22px;transform:translateY(10px)scale(.98)}.promotion-trigger.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:.1s;transform:none}@media (hover:hover){.promotion-trigger:hover{background:var(--color-teal-deep)}}.promotion-trigger:focus-visible{outline:2px solid var(--color-cream);outline-offset:3px}.promotion-trigger-icon{background:var(--color-cream);width:32px;height:32px;color:var(--color-ink);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.promotion-trigger-icon svg{width:16px;height:16px}.promotion-trigger-promo{display:none}@media (width<=767px){.promotion-trigger{right:16px;bottom:calc(4.5rem + env(safe-area-inset-bottom,0px));border:1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);background:radial-gradient(circle at 32% 20%, #ffffffc7 0 8%, transparent 9%), radial-gradient(circle at 50% 118%, #ffffff6b, transparent 46%), var(--color-cream);width:64px;min-width:64px;height:64px;min-height:64px;color:var(--color-ink);box-shadow:inset 0 1px 0 #ffffffd9, inset 0 -4px 7px color-mix(in srgb, var(--color-ink) 10%, transparent), var(--shadow-elev-2);border-radius:50%;justify-content:center;padding:0}.promotion-trigger:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 30% 18%,#ffffff8c,#0000 34%);position:absolute;inset:1px}.promotion-trigger:focus-visible{outline-color:var(--color-teal-deep)}.promotion-trigger-icon,.promotion-trigger-label{display:none}.promotion-trigger-promo{z-index:1;letter-spacing:.09em;text-transform:uppercase;text-shadow:0 1px #ffffff8c;font-size:10px;font-weight:900;line-height:1;display:block;position:relative}}@media (prefers-reduced-motion:reduce){.promotion-trigger{transition:none}.promotion-trigger.is-visible{transition-delay:0s}}.promotion-modal{z-index:70;background:color-mix(in srgb, var(--ink) 68%, transparent);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s var(--ease), visibility .25s;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.promotion-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}.promotion-modal.is-open .dialog{opacity:1;transform:none}.promotion-modal .eyebrow-row{align-items:center;gap:8px;display:flex}.promotion-modal .preview-chip{background:var(--cream);color:var(--ink);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:4px 8px;font-size:8px;font-weight:800;display:inline-flex}.promotion-modal .tour-placeholder{background:linear-gradient(135deg, var(--teal-deep), var(--ink));color:#ffffff9e;letter-spacing:.16em;text-align:center;text-transform:uppercase;justify-content:center;align-items:center;width:100%;height:100%;min-height:120px;padding:18px;font-size:9px;font-weight:800;display:flex}.promotion-modal .dialog{background:var(--surface);width:min(1020px,100%);max-height:min(880px,100dvh - 48px);box-shadow:var(--elev-3);opacity:0;transition:opacity .25s var(--ease), transform .38s var(--ease-entrance);border:1px solid #ffffff3d;border-radius:24px;flex-direction:column;display:flex;overflow:hidden;transform:translateY(16px)scale(.988)}.promotion-modal .dialog:focus,.promotion-modal .dialog:focus-visible{outline:none}.promotion-modal .dialog-head{flex-shrink:0;padding:24px 28px 0;position:relative}.promotion-modal .dialog-eyebrow{color:var(--teal-deep);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:9px;font-weight:800}.promotion-modal .dialog-head h2{max-width:680px;color:var(--ink);letter-spacing:-.035em;margin:7px 0 0;padding-right:36px;font-size:30px;font-weight:800;line-height:1.08}.promotion-modal .dialog-sub{max-width:650px;color:var(--muted);margin:7px 0 0;font-size:12.5px;line-height:1.55}.promotion-modal .close{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;transition:background .2s var(--ease), border-color .2s var(--ease);border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:20px;right:20px}.promotion-modal .close:hover{background:var(--sand);border-color:var(--teal-light)}.promotion-modal .close svg{width:16px;height:16px}.promotion-modal .tabs{grid-template-columns:repeat(var(--tab-count,3), minmax(0, 1fr));border:1px solid var(--line);background:var(--sand);border-radius:14px;gap:4px;margin:20px 0 0;padding:4px;display:grid}.promotion-modal .tab{min-height:54px;color:var(--muted);text-align:center;cursor:pointer;transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease);background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 10px;display:flex}.promotion-modal .tab:hover{color:var(--ink)}.promotion-modal .tab.is-active{border-color:var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--elev-1)}.promotion-modal .tab-label{letter-spacing:-.005em;font-size:12.5px;font-weight:800;line-height:1.15}.promotion-modal .tab-sub{color:var(--muted);letter-spacing:.02em;font-size:9.5px;font-weight:700}.promotion-modal .tab.is-active .tab-sub{color:var(--teal-deep)}.promotion-modal .panels{flex:1;min-height:0;display:flex}.promotion-modal .panel{flex-direction:column;flex:1;min-height:0;display:none}.promotion-modal .panel.is-active{animation:promotion-panel-in .3s var(--ease-entrance) both;display:flex}@keyframes promotion-panel-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.promotion-modal .panel-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;padding:20px 28px 24px;overflow-y:auto}.promotion-modal .panel-scroll::-webkit-scrollbar{width:8px}.promotion-modal .panel-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.promotion-modal .panel-scroll::-webkit-scrollbar-track{background:0 0}.promotion-modal .offer-badge{background:var(--cream);color:var(--ink);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;align-items:center;padding:5px 9px;font-size:8.5px;font-weight:800;display:inline-flex}.promotion-modal .offer-title{max-width:670px;color:var(--ink);letter-spacing:-.025em;margin:10px 0 4px;font-size:21px;font-weight:800;line-height:1.18}.promotion-modal .offer-desc{max-width:690px;color:var(--ink-soft);margin:0;font-size:12.5px;line-height:1.6}.promotion-modal .included-head{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;margin:20px 0 9px;padding-top:14px;display:flex}.promotion-modal .included-label{color:var(--teal-deep);letter-spacing:.16em;text-transform:uppercase;font-size:9px;font-weight:800}.promotion-modal .included-note{color:var(--muted);text-align:right;align-items:center;gap:5px;font-size:10px;font-weight:600;display:inline-flex}.promotion-modal .included-note svg{width:12px;height:12px;color:var(--teal-deep);flex-shrink:0}.promotion-modal .tour-grid{grid-template-columns:repeat(var(--tour-count,3), minmax(0, 1fr));gap:11px;display:grid}.promotion-modal .tour-card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--elev-1);border-radius:12px;overflow:hidden}.promotion-modal .tour-media{aspect-ratio:4/3;background:var(--sand);position:relative;overflow:hidden}.promotion-modal .tour-media img{object-fit:cover;width:100%;height:100%;transition:transform .45s var(--ease)}.promotion-modal .tour-card:hover .tour-media img{transform:scale(1.025)}.promotion-modal .tour-num{width:26px;height:26px;color:var(--ink);letter-spacing:.02em;background:#fff0c5f2;border:1px solid #ffffffa8;border-radius:50%;place-items:center;font-size:9.5px;font-weight:800;display:grid;position:absolute;top:8px;left:8px;box-shadow:0 1px 4px #0000001f}.promotion-modal .tour-caption{padding:9px 11px 11px}.promotion-modal .tour-caption h4{color:var(--ink);letter-spacing:-.01em;margin:0;font-size:12px;font-weight:800;line-height:1.25}.promotion-modal .tour-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px;margin:4px 0 0;font-size:9.5px;font-weight:600;display:flex}.promotion-modal .tour-meta svg{flex-shrink:0;width:10px;height:10px}.promotion-modal .tour-meta .dot{background:var(--line);border-radius:50%;width:2px;height:2px}.promotion-modal .panel-footer{padding:15px 28px calc(15px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:18px;display:flex}.promotion-modal .price-label{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:8.5px;font-weight:800;display:block}.promotion-modal .price-row{align-items:baseline;gap:8px;margin:1px 0 2px;display:flex}.promotion-modal .price-row strong{color:var(--ink);letter-spacing:-.035em;font-size:25px;font-weight:800;line-height:1}.promotion-modal .price-unit{color:var(--muted);letter-spacing:.06em;font-size:10px;font-weight:800}.promotion-modal .save{background:color-mix(in srgb, var(--teal-light) 32%, var(--surface));color:var(--teal-deep);border-radius:999px;align-items:center;padding:4px 7px;font-size:9px;font-weight:800;display:inline-flex}.promotion-modal .price-note{color:var(--muted);font-size:9.5px}.promotion-modal .actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.promotion-modal .btn{cursor:pointer;min-height:44px;transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:11px 16px;font-size:11.5px;font-weight:800;text-decoration:none;display:inline-flex}.promotion-modal .btn svg{width:13px;height:13px}.promotion-modal .btn-primary{background:var(--coral);color:var(--ink);box-shadow:var(--elev-1)}.promotion-modal .btn-primary:hover{background:var(--coral-deep)}.promotion-modal .btn-ghost{border-color:var(--line);background:var(--surface);color:var(--ink)}.promotion-modal .btn-ghost:hover{background:var(--sand)}.promotion-modal .not-today{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:10px 4px;font-size:10.5px;font-weight:600}.promotion-modal .not-today:hover{color:var(--ink);text-decoration:underline}@media (width<=760px){.promotion-modal{align-items:stretch;padding:0}.promotion-modal .dialog{border:0;border-radius:0;width:100%;height:100dvh;max-height:none;transform:translateY(28px)}.promotion-modal.is-open .dialog{transform:none}.promotion-modal .dialog-head{padding:max(18px, env(safe-area-inset-top)) 18px 0}.promotion-modal .dialog-head h2{letter-spacing:-.03em;padding-right:42px;font-size:23px}.promotion-modal .dialog-sub{padding-right:6px;font-size:11.5px}.promotion-modal .close{top:max(14px, calc(env(safe-area-inset-top) + 6px));width:44px;height:44px;right:14px}.promotion-modal .tabs{margin-top:15px}.promotion-modal .tab{min-height:50px;padding:7px 5px}.promotion-modal .tab-label{font-size:11px}.promotion-modal .tab-sub{font-size:8.5px}.promotion-modal .panel-scroll{padding:16px 18px 18px}.promotion-modal .offer-title{font-size:19px}.promotion-modal .offer-desc{font-size:12px}.promotion-modal .included-head{flex-direction:column;align-items:flex-start;gap:4px;margin-top:16px}.promotion-modal .included-note{text-align:left;font-size:9.5px}.promotion-modal .tour-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.promotion-modal .tour-card:last-child:nth-child(odd){grid-column:1/-1;grid-template-columns:42% minmax(0,1fr);align-items:stretch;min-height:112px;display:grid}.promotion-modal .tour-card:last-child:nth-child(odd) .tour-media{aspect-ratio:auto;height:100%;min-height:112px}.promotion-modal .tour-card:last-child:nth-child(odd) .tour-caption{flex-direction:column;justify-content:center;padding:12px 14px;display:flex}.promotion-modal .tour-caption{padding:8px 9px 10px}.promotion-modal .tour-caption h4{font-size:11px}.promotion-modal .tour-meta{font-size:9px}.promotion-modal .panel-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom));flex-direction:column;align-items:stretch;gap:10px}.promotion-modal .actions{flex-wrap:wrap;align-items:center;gap:2px 10px;display:flex}.promotion-modal .actions .btn-primary{flex:1 0 100%;width:100%}.promotion-modal .actions .btn-ghost{width:auto;min-height:44px;color:var(--teal-deep);background:0 0;border:0;flex:auto;padding:4px 6px;font-size:10.5px}.promotion-modal .actions .btn-ghost:hover{background:0 0;text-decoration:underline}.promotion-modal .actions .not-today{text-align:center;flex:auto;min-height:44px;padding:4px 6px}.promotion-modal .price-row strong{font-size:23px}}@media (width<=390px){.promotion-modal .tab-sub{display:none}.promotion-modal .tab{min-height:44px}.promotion-modal .dialog-eyebrow{font-size:8px}}@media (prefers-reduced-motion:reduce){.promotion-modal *,.promotion-modal :before,.promotion-modal :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
