/* =========================================================
   ORION TOUR — 週末スキー&スノボ特集 2026-2027
   Design concept: 「リフト券」モチーフのポップな冬色サイト
   ========================================================= */

:root{
  --navy-deep:   #121A3A;
  --navy-mid:    #1B2A5E;
  --snow-white:  #FFFFFF;
  --snow-shadow: #DCE6FF;
  --cream:       #FFF8E9;
  --pop-pink:    #FF4D8D;
  --pop-yellow:  #FFD23F;
  --pop-teal:    #19C7C0;
  --pop-orange:  #FF8B3D;
  --pop-purple:  #8C6CFF;
  --pop-blue:    #2D6CDF;
  --ink:         #1C2340;
  --ink-soft:    #5A638C;
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 10px;
  --font-display: "Yusei Magic", "Noto Sans JP", sans-serif;
  --font-body: "Noto Sans JP", sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3{font-family:var(--font-display);margin:0;}
.sp-only{display:none;}
@media (prefers-reduced-motion: reduce){ *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;} }
.page-snow{position:fixed; inset:0; z-index:40; pointer-events:none; overflow:hidden;}
.snowflake{position:absolute; top:-10px; color:rgba(45,108,223,.55); user-select:none; animation-name:snowFall, snowSway; animation-timing-function:linear, ease-in-out; animation-iteration-count:infinite, infinite;}
@keyframes snowFall{from{transform:translateY(-10vh);}to{transform:translateY(110vh);}}
@keyframes snowSway{0%,100%{margin-left:0;}50%{margin-left:24px;}}
.gnav{position:sticky; top:0; z-index:60;}
.gnav__bar{background:var(--snow-white);border-bottom:3px solid var(--pop-yellow);box-shadow:0 2px 10px rgba(18,26,58,.06);max-width:1180px; margin:0 auto; padding:12px 20px;display:flex; align-items:center; justify-content:space-between;}
.gnav__logo img{height:32px; display:block;}
.gnav__burger{display:flex; align-items:center; gap:8px;background:none; border:none; cursor:pointer; padding:6px 4px;}
.gnav__burger-bars{display:flex; flex-direction:column; justify-content:center; gap:5px;width:24px; height:18px;}
.gnav__burger-bars span{display:block; width:100%; height:3px; border-radius:2px;background:var(--navy-deep);transition:transform .25s, opacity .2s;}
.gnav__burger-label{font-size:.72rem; font-weight:700; color:var(--navy-deep);}
.gnav__burger[aria-expanded="true"] .gnav__burger-bars span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.gnav__burger[aria-expanded="true"] .gnav__burger-bars span:nth-child(2){opacity:0;}
.gnav__burger[aria-expanded="true"] .gnav__burger-bars span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
.gnav__overlay{position:fixed; inset:0; background:rgba(18,26,58,.45);opacity:0; pointer-events:none; transition:opacity .25s; z-index:55;}
.gnav__overlay.is-open{opacity:1; pointer-events:auto;}
.gnav__panel{position:fixed; top:0; right:0; bottom:0;width:min(86vw, 340px);background:var(--navy-deep); color:#fff;padding:24px 28px 40px;transform:translateX(100%);transition:transform .3s ease;z-index:58; overflow-y:auto;}
.gnav__panel.is-open{transform:translateX(0);}
.gnav__panel-close{display:flex; align-items:center; justify-content:center;width:38px; height:38px; margin:0 0 30px auto;background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3);border-radius:50%; color:#fff; font-size:1rem; cursor:pointer;transition:background .2s, transform .15s;}
.gnav__panel-close:hover, .gnav__panel-close:focus-visible{background:var(--pop-pink); transform:rotate(90deg);}
.gnav__panel-main, .gnav__panel-sub{margin:0 0 26px;}
.gnav__panel a{display:block; padding:13px 2px; font-size:.92rem; font-weight:700;border-bottom:1px dashed rgba(255,255,255,.16); color:#fff;}
.gnav__panel-sub a{font-size:.8rem; font-weight:500; color:#AEB9EC;}
.gnav__panel a:hover, .gnav__panel a:focus-visible{color:var(--pop-yellow);}

/* HERO */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg, var(--navy-deep) 0%, var(--navy-mid) 70%, #2A3E82 100%);padding:64px 20px 0;min-height:560px;display:flex; align-items:center; justify-content:center;}
.hero__sky{position:absolute; inset:0;}
.hero__snow{position:absolute; inset:0;background-image:radial-gradient(2px 2px at 10% 20%, #fff, transparent),radial-gradient(2px 2px at 80% 10%, #fff, transparent),radial-gradient(3px 3px at 30% 60%, #fff, transparent),radial-gradient(2px 2px at 60% 40%, #fff, transparent),radial-gradient(2px 2px at 90% 70%, #fff, transparent),radial-gradient(3px 3px at 45% 85%, #fff, transparent),radial-gradient(2px 2px at 15% 90%, #fff, transparent);opacity:.55;animation:snowDrift 14s linear infinite;}
@keyframes snowDrift{from{background-position-y:0;}to{background-position-y:240px;}}
.hero__photo{position:absolute; inset:0; z-index:0;}
.hero__photo img{width:100%; height:100%; object-fit:cover;opacity:.32; filter:saturate(1.1);}
.hero__photo::after{content:""; position:absolute; inset:0;background:linear-gradient(180deg, rgba(18,26,58,.55) 0%, rgba(18,26,58,.35) 50%, var(--navy-mid) 100%);}
.hero__mountains{position:absolute; left:0; right:0; bottom:0; width:100%; height:160px;}
.hero__content{position:relative; z-index:2;max-width:720px; text-align:center; color:var(--snow-white);padding-bottom:120px;}
.hero__eyebrow{font-size:.78rem; letter-spacing:.18em; font-weight:700;color:var(--pop-yellow); margin:0 0 14px;}
.hero__title{font-size:clamp(2rem, 5vw, 3.1rem);line-height:1.35; margin-bottom:18px;text-shadow:0 4px 18px rgba(0,0,0,.35);}
.hero__lead{font-size:.95rem; line-height:1.9; color:#DCE3FF;margin:0 auto 22px; max-width:520px;}
.hero__badges{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:30px;}
.badge{font-size:.78rem; font-weight:700; padding:7px 16px; border-radius:999px;color:var(--navy-deep); box-shadow:0 3px 0 rgba(0,0,0,.15);}
.badge--pink{background:var(--pop-pink); color:#fff;}
.badge--yellow{background:var(--pop-yellow);}
.badge--teal{background:var(--pop-teal); color:#fff;}
.hero__cta{display:inline-flex; align-items:center; gap:8px;background:var(--pop-pink); color:#fff; font-weight:700;padding:14px 30px; border-radius:999px; font-size:.95rem;box-shadow:0 6px 0 #C22F66;transition:transform .15s, box-shadow .15s;}
.hero__cta:hover, .hero__cta:focus-visible{transform:translateY(2px);box-shadow:0 4px 0 #C22F66;}
.hero__cta i{font-style:normal; animation:bounceDown 1.6s ease-in-out infinite;}
@keyframes bounceDown{0%,100%{transform:translateY(0);}50%{transform:translateY(4px);}}

/* INTRO */
.intro{background:var(--snow-white); padding:34px 20px; border-bottom:1px solid #F0E6CC;}
.intro__label{display:block; text-align:center; font-size:.72rem; font-weight:700;color:var(--ink-soft); letter-spacing:.1em; margin-bottom:18px;}
.intro__list{max-width:1000px; margin:0 auto;display:grid; grid-template-columns:repeat(4,1fr);border:1px solid #EDE6CE; border-radius:var(--radius-md);overflow:hidden;}
.intro__list li{display:flex; flex-direction:column; align-items:center; gap:4px;text-align:center; padding:18px 12px;border-right:1px dashed #EDE6CE;cursor:default;}
.intro__list li:last-child{border-right:none;}
.intro__list li b{font-size:.78rem; font-weight:700; color:var(--ink); line-height:1.5;}
.intro__list li span{font-size:.68rem; color:var(--ink-soft); line-height:1.5;}
.intro__icon{display:block; font-size:1.7rem; margin-bottom:2px;}

/* AREA SWITCHER & FILTER */
.area-switch{max-width:1180px; margin:0 auto; padding:26px 20px 0;display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center;}
.area-switch__label{font-size:.78rem; font-weight:700; color:var(--ink-soft);}
.area-switch__list{display:flex; gap:8px; flex-wrap:wrap;}
.area-chip{font-size:.78rem; font-weight:700; padding:7px 16px; border-radius:999px;border:2px solid var(--navy-mid); color:var(--navy-mid); background:#fff;transition:background .15s, color .15s;}
.area-chip:hover{background:var(--navy-mid); color:#fff;}
.area-chip--current{background:var(--pop-pink); border-color:var(--pop-pink); color:#fff; cursor:default;}
.area-chip--current:hover{background:var(--pop-pink);}

.filter{max-width:1180px; margin:0 auto; padding:40px 20px 10px; text-align:center;}
.filter__title{font-size:1.1rem; margin-bottom:16px;}
.filter__chips{display:flex; gap:10px; flex-wrap:wrap; justify-content:center;}
.chip{font-family:var(--font-body); font-weight:700; font-size:.82rem;padding:9px 18px; border-radius:999px; border:2px solid var(--navy-mid);background:#fff; color:var(--navy-mid); cursor:pointer;transition:background .15s, color .15s, transform .1s;}
.chip:hover{transform:translateY(-2px);}
.chip[aria-selected="true"]{background:var(--navy-mid); color:#fff;}

/* ===================== PICKUP RESORTS (NEW) ===================== */
.pickup {
  max-width: 1180px;
  margin: 0 auto;
  padding: 40px 20px 0;
}
.pickup__head {
  text-align: center;
  margin-bottom: 24px;
}
.pickup__title {
  font-size: 1.3rem;
  color: var(--navy-deep);
}
.pickup__list {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding: 10px 10px 30px; /* added padding for shadow and scrollbar */
  margin: 0 -10px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.pickup__list::-webkit-scrollbar { height: 6px; }
.pickup__list::-webkit-scrollbar-track { background: #f0f0f0; border-radius: 4px; }
.pickup__list::-webkit-scrollbar-thumb { background: var(--navy-mid); border-radius: 4px; }

.pickup__card {
  flex: 0 0 240px;
  scroll-snap-align: center;
  background: #fff;
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(18,26,58,.08);
  border: 2px solid #11193A;
  transition: transform 0.2s, box-shadow 0.2s;
  display: flex;
  flex-direction: column;
}
.pickup__card:hover, .pickup__card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(18,26,58,.15);
}
.pickup__img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-bottom: 2px solid #11193A;
}
.pickup__body {
  padding: 12px 14px;
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.pickup__name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--navy-deep);
  line-height: 1.4;
}

/* WEEKEND LIST */
.weekend-list{max-width:1180px; margin:0 auto; padding:30px 20px 60px;}
.weekend-list__head{text-align:center; margin-bottom:30px;}
.weekend-list__head h2{font-size:1.4rem; margin-bottom:10px;}
.weekend-list__head p{color:var(--ink-soft); font-size:.85rem;}
.weekend-list__caution{display:inline-block; margin-top:10px !important;background:#FFF3D6; color:#8A5A00; font-weight:700;font-size:.76rem !important; padding:7px 16px; border-radius:999px;border:1px solid #F4D98A;}
.weekend-list__note{text-align:center; font-size:.75rem; color:var(--ink-soft); margin-top:30px;}
.ticket-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:24px;}
.ticket{position:relative;background:var(--snow-white);border-radius:var(--radius-md);box-shadow:0 10px 24px rgba(18,26,58,.08);overflow:hidden;border:2px solid #11193A;opacity:0; transform:translateY(14px);animation:ticketIn .5s ease forwards;}
@keyframes ticketIn{to{opacity:1; transform:translateY(0);}}
.ticket__head{background:var(--navy-deep);color:#fff;padding:14px 18px;display:flex; align-items:center; justify-content:space-between;position:relative;}
.ticket__head::after{content:"";position:absolute; left:0; right:0; bottom:-9px; height:18px;background:radial-gradient(circle 9px at 0 0, transparent 9px, var(--navy-deep) 9.5px) 0 0,radial-gradient(circle 9px at 100% 0, transparent 9px, var(--navy-deep) 9.5px) 100% 0;background-size:50% 100%;background-repeat:no-repeat;}
.ticket__dates{font-family:var(--font-display); font-size:1.05rem;}
.ticket__dates small{display:block; font-family:var(--font-body); font-weight:400; font-size:.68rem; color:#AEB9EC; margin-top:2px;}
.ticket__holiday{font-size:.65rem; font-weight:700; background:var(--pop-yellow); color:var(--navy-deep);padding:3px 9px; border-radius:999px;}
.ticket__perf{height:1px; border-top:2px dashed #D9D2BC; margin:14px 18px 0;}
.ticket__body{padding:18px;}
.ticket__daytabs{display:flex; gap:8px; margin-bottom:14px;}
.daytab{flex:1; text-align:center; font-weight:700; font-size:.8rem;padding:8px 4px; border-radius:var(--radius-sm);background:#F4F1E4; color:var(--ink-soft); cursor:pointer; border:2px solid transparent;transition:background .15s, color .15s, border-color .15s;}
.daytab[aria-selected="true"]{background:var(--pop-blue); color:#fff; border-color:var(--navy-deep);}
.daytab .num{display:block; font-family:var(--font-display); font-size:1.05rem;}
.ticket__plans{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
.plan-btn{display:flex; flex-direction:column; align-items:flex-start; gap:2px;font-size:.74rem; font-weight:700; line-height:1.3;padding:10px 10px; border-radius:var(--radius-sm);color:#fff; box-shadow:0 3px 0 rgba(0,0,0,.18);transition:transform .12s, box-shadow .12s;}
.plan-btn:hover, .plan-btn:focus-visible{transform:translateY(2px); box-shadow:0 1px 0 rgba(0,0,0,.18);}
.plan-btn .tag{font-size:.62rem; opacity:.85; font-weight:500;}
.plan-btn--asa-day{background:var(--pop-orange);}
.plan-btn--yoru-day{background:var(--pop-pink);}
.plan-btn--asa-stay{background:var(--pop-teal);}
.plan-btn--yoru-stay{background:var(--pop-blue);}
.plan-btn--mycar{background:var(--pop-purple); grid-column:1 / -1;}

/* CHARM, USEFUL, PLAN GUIDE, FOOTER... */
.charm{max-width:1180px; margin:0 auto; padding:60px 20px 20px;}
.charm h2{text-align:center; font-size:1.3rem; margin-bottom:14px;}
.charm__lead{text-align:center; color:var(--ink-soft); font-size:.85rem; line-height:1.9; max-width:620px; margin:0 auto 34px;}
.charm__grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.charm__card{background:#fff; border:2px solid #11193A; border-radius:var(--radius-md);padding:24px; box-shadow:0 8px 0 rgba(18,26,58,.06);}
.charm__icon{display:flex; align-items:center; justify-content:center;width:48px; height:48px; border-radius:50%; background:var(--c, var(--pop-pink));font-size:1.4rem; margin-bottom:14px;}
.charm__card h3{font-size:1rem; margin-bottom:10px;}
.charm__card p{font-size:.82rem; line-height:1.85; color:var(--ink-soft); margin:0;}

.useful{max-width:1180px; margin:0 auto; padding:20px 20px 60px;}
.useful h2{text-align:center; font-size:1.2rem; margin-bottom:24px;}
.useful__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.useful__card{display:flex; align-items:center; gap:14px;background:#fff; border:2px solid #11193A; border-radius:var(--radius-md);padding:18px; box-shadow:0 6px 0 rgba(18,26,58,.06);transition:transform .12s, box-shadow .12s;}
.useful__card:hover, .useful__card:focus-visible{transform:translateY(2px); box-shadow:0 3px 0 rgba(18,26,58,.06);}
.useful__icon{font-size:1.6rem; flex-shrink:0;}
.useful__text{font-size:.78rem; line-height:1.6; color:var(--ink-soft);}
.useful__text b{display:block; font-size:.92rem; color:var(--ink); margin-bottom:2px;}

.plan-guide{background:var(--navy-deep); color:#fff; padding:54px 20px;}
.plan-guide h2{text-align:center; font-size:1.3rem; margin-bottom:10px;}
.plan-guide__lead{text-align:center; font-size:.8rem; color:#AEB9EC; margin:0 0 30px;}
.plan-guide__frame{max-width:980px; margin:0 auto;border:1px solid rgba(255,255,255,.18); border-radius:var(--radius-md);padding:6px 28px; position:relative;}
.plan-guide__frame-label{position:absolute; top:-11px; left:24px;background:var(--navy-deep); padding:0 10px;font-size:.7rem; font-weight:700; letter-spacing:.08em; color:var(--pop-yellow);}
.plan-guide__list{margin:0;}
.plan-guide__row{display:flex; align-items:flex-start; gap:16px;padding:20px 0; border-bottom:1px dashed rgba(255,255,255,.14);}
.plan-guide__row:last-child{border-bottom:none;}
.plan-guide__row dt{flex:0 0 200px; display:flex; align-items:center; gap:10px;font-size:.86rem; font-weight:700; margin:0;}
.plan-guide__row dd{margin:0; font-size:.78rem; line-height:1.85; color:#C9D2FF; padding-top:2px;}
.plan-guide__icon{display:flex; align-items:center; justify-content:center; flex-shrink:0;width:38px; height:38px;background:var(--c, var(--pop-pink)); border-radius:50%; font-size:1.1rem;}

.site-footer{background:var(--cream); padding:40px 20px 24px; text-align:center;border-top:3px solid var(--navy-deep);}
.pagetop{display:inline-block; font-size:.75rem; font-weight:700; color:var(--navy-mid);margin-bottom:24px; border:2px solid var(--navy-mid); border-radius:999px; padding:8px 18px;}
.footer-area, .footer-company{display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-bottom:16px;}
.footer-area a, .footer-company a{font-size:.75rem; color:var(--ink-soft);}
.footer-area a:hover, .footer-company a:hover{color:var(--pop-pink);}
.site-footer small{font-size:.7rem; color:var(--ink-soft);}

@media (max-width:900px){.useful__grid{grid-template-columns:1fr;}}
@media (max-width:680px){
  .sp-only{display:inline;}
  .hero{min-height:auto; padding:48px 16px 0;}
  .hero__content{padding-bottom:90px;}
  .intro__list{grid-template-columns:repeat(2,1fr);}
  .intro__list li{border-right:1px dashed #EDE6CE; border-bottom:1px dashed #EDE6CE;}
  .intro__list li:nth-child(2n){border-right:none;}
  .intro__list li:nth-last-child(-n+2){border-bottom:none;}
  .plan-guide__frame{padding:4px 16px;}
  .plan-guide__row{flex-direction:column; gap:8px;}
  .plan-guide__row dt{flex:none;}
  .ticket-grid{grid-template-columns:1fr;}
  .ticket__plans{grid-template-columns:1fr;}
  .plan-btn--mycar{grid-column:auto;}
  .charm__grid{grid-template-columns:1fr;}
  .useful__grid{grid-template-columns:1fr;}
  
  .pickup__list { scroll-snap-type: x mandatory; margin: 0 -16px; padding: 10px 16px 20px; }
  .pickup__card { flex: 0 0 80%; max-width: 260px; }
}

.seo-intro {max-width: 1000px;margin: 34px auto 14px;padding: 0 20px;text-align: center;}
.seo-intro__text {font-size: 0.92rem;line-height: 1.85;color: var(--ink-soft);}
.seo-intro__keywords {display: block;margin-top: 10px;font-weight: 700;color: var(--navy-mid);font-size: 0.88rem;}
.faq {max-width: 860px;margin: 0 auto;padding: 40px 20px 60px;}
.faq h2 {text-align: center;font-size: 1.4rem;margin-bottom: 28px;color: var(--navy-deep);}
.faq__container {display: flex;flex-direction: column;gap: 14px;}
.faq__item {background: var(--snow-white);border: 2px solid var(--navy-deep);border-radius: var(--radius-md);box-shadow: 0 4px 0 rgba(18,26,58,.04);overflow: hidden;}
.faq__item summary {display: flex;align-items: center;justify-content: space-between;padding: 18px 24px;font-weight: 700;font-size: 0.95rem;cursor: pointer;user-select: none;color: var(--navy-deep);list-style: none;}
.faq__item summary::-webkit-details-marker {display: none;}
.faq__item summary::after {content: "＋";font-size: 1.1rem;color: var(--pop-pink);transition: transform 0.2s ease;}
.faq__item[open] summary::after {content: "━";font-size: 0.8rem;}
.faq__answer {padding: 0 24px 20px;font-size: 0.88rem;line-height: 1.8;color: var(--ink-soft);border-top: 1px dashed #EDE6CE;padding-top: 14px;}
.weekend-list__no-data {text-align: center;padding: 40px 20px;color: var(--ink-soft);font-weight: 700;grid-column: 1 / -1;}
@media (max-width: 680px) {
  .seo-intro { margin: 24px auto 6px; }
  .seo-intro__text { text-align: left; font-size: 0.86rem; }
  .faq { padding: 30px 16px 50px; }
  .faq h2 { font-size: 1.25rem; }
  .faq__item summary { padding: 14px 18px; font-size: 0.88rem; }
  .faq__answer { padding: 0 18px 16px; font-size: 0.84rem; padding-top: 10px; }
}
