@charset "utf-8";
/* 2026冬号 追加スタイル（style.cssの後に読み込み） */
:root{
  --navy:#12307A; --blue:#0B5CAD; --sky:#0086CD; --pink:#E93F70; --yellow:#FFE600;
  --ink:#14213D; --bg:#FFF;
  --c-okinawa:#6B3FA0; --c-tokyo:#E60F6B; --c-narita:#ED6F22; --c-tohoku:#2E8B3A; --c-sapporo:#2F6EB5;
  --c-seoul:#12307A; --c-aerok:#E93F70; --c-taipei:#0B5CAD; --c-hk:#0E9B7F; --c-vn:#7A8B2E; --c-sh:#ED6F22;
}
body{background:var(--bg);color:var(--ink);}
.lp section{position:relative;}
.lp .container{padding:0 20px;max-width:1240px;}
.lp img{display:block;max-width:100%;height:auto;}

/* ---- MV ---- */
#mv{background:linear-gradient(180deg,#0B5CAD 0%,#4FB3E8 70%,#FFF 100%);padding:96px 0 0;overflow:hidden;}
#mv .container{max-width:1200px;}
#mv .mv-text{color:#fff;text-align:center;padding-bottom:28px;}
#mv .mv-en{font-size:1.3rem;letter-spacing:.3em;font-weight:700;opacity:.9;}
#mv h2{font-weight:700;font-size:4.4rem;line-height:1.35;margin:8px 0 14px;text-shadow:0 2px 12px rgba(7,40,90,.35);}
#mv .mv-lead{font-size:1.6rem;margin:0;padding:0;}
#mv .mv-badge{display:inline-block;background:var(--yellow);color:var(--ink);font-weight:900;font-size:1.5rem;padding:4px 22px;margin-top:18px;transform:skewX(-8deg);}
#mv .mv-img{max-width:1200px;margin:0 auto;border-radius:16px 16px 0 0;box-shadow:0 -6px 30px rgba(7,40,90,.25);width:100%;}

/* ---- section heading ---- */
.lp .sec-head{padding:72px 0 28px;text-align:center;}
.lp .ribbon{display:inline-block;position:relative;background:var(--yellow);color:var(--ink);font-size:2.8rem;font-weight:700;padding:6px 56px 6px 28px;margin:0;clip-path:polygon(0 0,100% 0,calc(100% - 24px) 50%,100% 100%,0 100%);}
.lp .sec-sub{margin:14px 0 0;padding:0;font-size:1.5rem;color:#46607E;}
.lp .sec-no{display:block;font-size:1.2rem;letter-spacing:.25em;font-weight:700;color:var(--sky);margin-bottom:8px;}

/* ---- campaign ---- */
.camp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:1200px;margin:0 auto;}
.camp-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(11,60,120,.12);display:flex;flex-direction:column;}
.camp-card a.thumb{display:block;}
.camp-card img{width:100%;aspect-ratio:3/2;object-fit:contain;}
.camp-card img[src*="jal_night"]{object-fit:contain;background:#0d1230;}
.camp-visual{aspect-ratio:3/2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#fff;text-align:center;background:linear-gradient(135deg,#FFF,#22afd1);}
.camp-visual .cv-small{font-size:1.3rem;font-weight:700;letter-spacing:.08em;}
.camp-visual .cv-big{font-size:5.2rem;font-weight:700;line-height:1.1;color:var(--yellow);}
.camp-visual .cv-big small{font-size:2rem;margin-left:4px;color:#fff;}
.camp-visual .cv-mid{font-size:1.8rem;font-weight:700;line-height:1.4;}
.camp-card .body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:6px;flex-grow:1;}
.camp-card .tag{font-size:1.2rem;font-weight:700;color:var(--blue);}
.camp-card h3{font-size:1.8rem;line-height:1.45;margin:0;}
.camp-card .term{font-size:1.3rem;margin:0;padding:0;color:#46607E;}
.camp-card .btn-area{margin-top:auto;padding-top:10px;}
.camp-card a.btn{min-width:0;display:block;font-size:1.4rem;}
.camp-lounge{max-width:1200px;margin:20px auto 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;background:#2B1B3D;color:#fff;border-radius:14px;overflow:hidden;align-items:center;}
.camp-lounge img{width:100%;height:100%;object-fit:cover;}
.camp-lounge .body{padding:24px 28px;}
.camp-lounge h3{font-size:2rem;margin:0 0 8px;color:#E7BC71;}
.camp-lounge p{margin:0;padding:0;font-size:1.4rem;}

/* ---- domestic ---- */
#domestic .lead-img{max-width:1200px;margin:0 auto 28px;border-radius:16px;overflow:hidden;}
.dest-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;max-width:1200px;margin:0 auto;}
.dest-grid .dest:nth-child(-n+3){grid-column:span 2;}
.dest-grid .dest:nth-child(n+4){grid-column:span 3;}
.dest{--c:#999;background:#fff;border:4px solid var(--c);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;}
.dest .dest-title{background:var(--c);color:#fff;margin:0;padding:8px 14px;font-size:2rem;font-weight:700;display:flex;align-items:baseline;gap:10px;}
.dest .dest-title small{font-size:1.2rem;font-weight:400;opacity:.9;}
.dest img.ph{width:100%;aspect-ratio:16/8;object-fit:cover;}
.dest .caption{font-size:1.2rem;margin:0;padding:6px 14px 0;color:#46607E;}
.dest img.air{width:100%;}
.dest .btn-area{margin:auto 0 0;padding:12px;}
.dest .duo-btn{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.dest .duo-btn a.btn{padding-left:6px;padding-right:6px;}
.dest a.btn{min-width:0;display:block;font-size:1.4rem;background:var(--c);border-bottom-color:rgba(0,0,0,.25);}
.dest.okinawa{--c:var(--c-okinawa);} .dest.tokyo{--c:var(--c-tokyo);} .dest.narita{--c:var(--c-narita);}
.dest.tohoku{--c:var(--c-tohoku);} .dest.sapporo{--c:var(--c-sapporo);}
.dest.seoul{--c:var(--c-seoul);} .dest.aerok{--c:var(--c-aerok);} .dest.taipei{--c:var(--c-taipei);}
.dest.hk{--c:var(--c-hk);} .dest.vn{--c:var(--c-vn);} .dest.sh{--c:var(--c-sh);}

/* ---- overseas ---- */
#overseas .new-hero{max-width:1200px;margin:0 auto 28px;position:relative;border-radius:16px;overflow:hidden;background:#0B5CAD;}
#overseas .new-hero img{width:100%;aspect-ratio:3/1;object-fit:cover;object-position:center;}
#overseas .new-hero .new-text{position:absolute;left:0;top:0;bottom:0;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 36px;color:#fff;background:linear-gradient(90deg,rgba(11,60,140,.88) 0%,rgba(11,60,140,.55) 55%,rgba(11,60,140,0) 100%);width:62%;}
#overseas .new-hero .new-badge{align-self:flex-start;background:var(--pink);font-weight:900;font-size:1.6rem;padding:0 16px;border-radius:4px;}
#overseas .new-hero h3{margin:0;font-size:3rem;line-height:1.3;}
#overseas .new-hero p{margin:0;padding:0;font-size:1.4rem;}
.os-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;max-width:1200px;margin:0 auto;}
.os-grid .dest{grid-column:span 2;}
.os-grid .dest.seoul{grid-column:span 6;}
.os-grid .dest:nth-child(n+5){grid-column:span 3;}
.dest.seoul .duo{display:grid;grid-template-columns:1fr 1fr;}
.dest.seoul .duo > div:first-child{border-right:2px solid #eee;}
.dest.seoul .ph-row{display:grid;grid-template-columns:1fr;}
.dest.seoul img.ph{aspect-ratio:16/5;}
.credit{max-width:1200px;margin:12px auto 0;font-size:1.1rem;color:#46607E;text-align:right;display: flex;justify-content: flex-end;align-items: end;}
.credit img {display: inline-block;margin-left: 1rem;height: 50px}
.hosoku{font-size:1.2rem;color:#46607E;}

/* ---- access ---- */
#access .access-box{max-width:1200px;margin:0 auto;background:#fff;border-radius:16px;padding:28px 32px;box-shadow:0 4px 18px rgba(11,60,120,.1);}
.acc-head{background:linear-gradient(90deg,#0B3C8C,#12307A);color:#fff;border-radius:8px;padding:10px 18px;font-size:1.8rem;font-weight:700;margin-bottom:16px;}
.acc-row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:14px;padding:5px 0;}
.acc-row .from{background:var(--navy);color:#fff;border-radius:99px;text-align:center;font-size:1.4rem;padding:3px 8px;font-weight:700;}
.acc-row .bar{height:22px;border-radius:3px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:1.2rem;font-weight:700;width:var(--w,60%);}
.acc-row .bar.bus{background:#BCE0F6;color:#0B5CAD;}
.acc-row .bar.taxi{background:#FBE3CE;color:#C4580E;}
.acc-legend{display:flex;gap:18px;font-size:1.3rem;margin:0 0 10px;padding:0;color:#46607E;}
.acc-info{margin-top:22px;background:#FFFCE6;border:2px solid #0B9AD9;border-radius:12px;padding:18px 22px;display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:18px;align-items:center;}
.acc-info h3{margin:0 0 6px;font-size:1.7rem;}
.acc-info p{margin:0;padding:0;font-size:1.4rem;}
.acc-info .qr{width:120px;height:120px;background:#fff;border:1px dashed #9AA;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#789;text-align:center;}

/* ---- footer tweaks ---- */
.lp-contact{text-align:center;margin:36px 0 0;padding:0;font-size:1.5rem;}
.lp-contact b{font-size:2.6rem;letter-spacing:.06em;}

/* ---- SP ---- */
@media screen and (max-width:782px){
  #mv{padding-top:76px;}
  #mv h2{font-size:2.8rem;}
  #mv .mv-lead{font-size:1.4rem;}
  .lp .sec-head{padding:48px 0 20px;}
  .lp .ribbon{font-size:2.25rem;padding:5px 44px 5px 18px;font-weight: 900;}
  .camp-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;}
  .camp-card{scroll-snap-align:center;}
  .camp-lounge{grid-template-columns:1fr;}
  .dest-grid,.os-grid{grid-template-columns:1fr;}
  .dest-grid .dest:nth-child(n),.os-grid .dest,.os-grid .dest.seoul{grid-column:auto;}
  .dest.seoul .duo{grid-template-columns:1fr;}
  .dest.seoul .duo > div:first-child{border-right:0;border-bottom:2px solid #eee;}
  #overseas .new-hero img{aspect-ratio:4/3;}
  #overseas .new-hero .new-text{width:100%;padding:0 18px;background:linear-gradient(90deg,rgba(11,60,140,.9),rgba(11,60,140,.3));}
  #overseas .new-hero h3{font-size:2.2rem;}
  #access .access-box{padding:20px 16px;}
  .acc-row{grid-template-columns:100px minmax(0,1fr);gap:8px;}
  .acc-row .from{font-size:1.2rem;}
  .acc-info{grid-template-columns:1fr;}
  .credit{flex-direction: column;align-items: center;}
  .credit img {margin-left: 0;height: 40px;}
  .dest .duo-btn{grid-template-columns:1fr;}
  .os-grid .dest:nth-child(n+5){grid-column:auto;}
  .lp-contact{font-size:1.3rem;}
  .lp-contact b{font-size:2rem;white-space:nowrap;}
}

/* fixes */
.camp-card a.thumb.camp-visual{display:flex;}
.camp-visual span{display:block;}
.dest-grid .dest img.ph{flex:1 1 auto;min-height:0;object-fit:cover;}
.camp-card a.thumb.camp-visual{text-decoration:none;color:#fff;}
.dest.tokyo img.ph{object-position:50% 88%;}

/* ===== v2: 幅拡大 + スライダー化 ===== */
#mv .container{max-width:1240px;}
.slider{position:relative;max-width:1200px;margin:0 auto;}
.slider-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 4px 18px;margin:0 -4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.slider-track::-webkit-scrollbar{display:none;}
.slider-track .dest{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start;grid-column:auto;}
.slider .dest{border:0;border-radius:14px;box-shadow:0 4px 18px rgba(11,60,120,.14);}
.slider .dest .dest-title{font-size:2.2rem;padding:12px 18px;}
.slider .dest img.ph{aspect-ratio:16/10;flex:1 1 auto;min-height:0;object-fit:cover;}
.slider .dest .btn-area{padding:14px 18px 18px;}
.slider .dest .duo-btn{grid-template-columns:1fr;gap:8px;}
.slider .dest.seoul .duo,.slider .dest.seoul img.ph{aspect-ratio:16/10;}
.sl-btn{position:absolute;top:38%;z-index:2;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--navy);box-shadow:0 3px 14px rgba(11,60,120,.3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s,transform .2s;}
.sl-btn:hover{transform:scale(1.08);}
.sl-btn:disabled{opacity:0;pointer-events:none;}
.sl-prev{left:-24px;} .sl-next{right:-24px;}
.sl-dots{display:flex;justify-content:center;gap:10px;margin-top:4px;}
.sl-dots button{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:#B7C9DD;cursor:pointer;}
.sl-dots button.on{background:var(--navy);width:28px;border-radius:6px;}
@media screen and (max-width:1320px){.sl-prev{left:6px;}.sl-next{right:6px;}}
@media screen and (max-width:782px){
  .slider-track{gap:14px;padding-left:20px;padding-right:20px;margin:0 -20px;scroll-padding-left:20px;}
  .slider-track .dest{flex-basis:82%;}
  .sl-btn{display:none;}
  .slider .dest .dest-title{font-size:2rem;}
}
.slider .dest:not(.tokyo):not(.sapporo):not(.seoul) img.air{aspect-ratio:4/3;object-fit:cover;object-position:50% 40%;}
.slider .dest.tokyo img.ph{object-position:50% 85%;}
.slider .dest.tokyo img.ph{object-position:24% 50%;}

/* ===== v3: 空港アクセス（チラシ内容を網羅） ===== */
#access .access-box{padding:0 0 24px;overflow:hidden;}
.acc-head{display:flex;align-items:baseline;gap:14px;border-radius:0;margin:0 0 18px;padding:14px 28px;font-size:2.2rem;}
.acc-head small{font-size:1.3rem;font-weight:400;opacity:.85;letter-spacing:.06em;}
.acc-head em{margin-left:auto;font-style:normal;font-size:1.4rem;font-weight:700;color:var(--yellow);}
.ax-legend{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0 28px 6px;padding:0;font-size:1.3rem;}
.ax-legend .lg:before{content:"";display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:6px;vertical-align:-2px;}
.ax-legend .bus:before{background:#BCE0F6;} .ax-legend .train:before{background:repeating-linear-gradient(90deg,#B66AC0 0 6px,#E9CDEE 6px 12px);} .ax-legend .taxi:before{background:#F9C9A0;}
.ax-group{margin:18px 28px 8px;font-size:1.6rem;color:var(--navy);border-left:5px solid var(--sky);padding-left:10px;line-height:1.3;}
.ax-group.taxi{border-left-color:#ED6F22;color:#B24D0B;margin-top:26px;}
.ax-rows{margin:0 28px;display:flex;flex-direction:column;gap:6px;}
.ax-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:center;}
.ax-from{background:linear-gradient(180deg,#0B6BC2,#12307A);color:#fff;border-radius:99px;text-align:center;font-size:1.5rem;font-weight:700;padding:3px 10px;line-height:1.5;}
.ax-track{display:flex;justify-content:flex-end;align-items:center;gap:0;border-right:10px solid #D8C58A;border-radius:0 4px 4px 0;}
.ax-bar{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;box-sizing:border-box;height:34px;padding:0 10px;font-size:1.4rem;font-weight:700;white-space:nowrap;width:calc(var(--m) / 65 * 100%);min-width:fit-content;}
.ax-bar.bus{background:#BCE0F6;color:#0B4F99;}
.ax-bar.taxi{background:#FBD9BC;color:#A4480A;}
.ax-bar.train{background:repeating-linear-gradient(90deg,#E9CDEE 0 12px,#F6E8F8 12px 24px);color:#7A2C8A;}
.ax-ic{width:22px;height:22px;flex:none;}
.ax-node{flex:none;background:#fff;border:2px solid #7A2C8A;color:#7A2C8A;border-radius:99px;font-size:1.2rem;font-weight:700;padding:0 10px;line-height:1.7;margin:0 -2px;position:relative;z-index:1;}
.ax-note{margin:12px 28px 0;padding:0;}
.ax-fares{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px;}
.ax-fare{background:#fff;border-radius:14px;padding:20px 24px;box-shadow:0 4px 18px rgba(11,60,120,.1);border-top:6px solid var(--sky);}
.ax-fare.taxi{border-top-color:#ED6F22;}
.ax-fare h3{font-size:2.3rem;margin:0 0 10px;color:var(--navy);font-weight: 900;}
.ax-fare.taxi h3{color:#B24D0B;}
.ax-fare dl{margin:0;}
.ax-fare dl div{display:flex;align-items:baseline;gap:8px;border-bottom:1px dotted #B7C9DD;padding:6px 0;}
.ax-fare dt{font-weight:700;font-size:1.75rem;}
.ax-fare dd{margin:0 0 0 auto;font-size:1.9rem;font-weight:700;}
.ax-timetable-wrap{margin-top:20px;background:#FFFCE6;border:2px solid #0B9AD9;border-radius:14px 14px 0 0;padding:18px 24px;}
.ax-timetable{margin-top: 20px;display:flex;align-items:center;gap:20px;justify-content:space-between;flex-wrap:wrap;}
.ax-timetable p{margin:0;padding:0;font-size:1.5rem;font-weight:700;flex:1 1 360px;}
.ax-timetable a.btn{min-width:200px;margin:0;}
.ax-rental{margin-top:0;background:linear-gradient(135deg,#0B5CAD,#2FA3E6);color:#fff;border-radius:0 0 14px 14px;padding:24px 28px;}
.ax-rental h3{font-size:2.2rem;margin:0 0 16px;line-height:1.5;}
.ax-rental-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.ax-rental-grid > div{background:rgba(255,255,255,.14);border-radius:10px;padding:14px 16px;}
.ax-rental-grid .kw{display:inline-block;background:var(--yellow);color:var(--ink);font-weight:900;font-size:1.6rem;padding:0 14px;border-radius:99px;margin-bottom:6px;}
.ax-rental-grid p{margin:0;padding:0;font-size:1.5rem;line-height:1.6;}
.ax-parking{margin-top:20px;background:#fff;border:3px solid #E60012;border-radius:14px;padding:22px 28px;display:flex;align-items:center;gap:24px;justify-content:space-between;flex-wrap:wrap;}
.ax-parking .pk-main{flex:1 1 420px;}
.ax-parking h3{margin:0 0 8px;font-size:2.2rem;color:#E60012;}
.ax-parking .pk-lead{margin:0 0 8px;padding:0;font-size:1.7rem;}
.ax-parking .pk-lead b{background:linear-gradient(transparent 60%,#FFF176 60%);font-size:2rem;}
.ax-parking ul{margin:0;padding:0;list-style:none;font-size:1.3rem;color:#46607E;}
.ax-parking li:before{content:"◎ ";}
.ax-parking a.btn{min-width:220px;margin:0;}
@media screen and (max-width:782px){
  .acc-head{flex-wrap:wrap;padding:12px 18px;font-size:1.9rem;gap:4px 10px;}
  .acc-head em{margin-left:0;width:100%;text-align: right;}
  .ax-legend,.ax-group,.ax-rows,.ax-note{margin-left:16px;margin-right:16px;}
  .ax-row{grid-template-columns:1fr;gap:4px;}
  .ax-from{justify-self:start;padding:1px 16px;font-size:1.4rem;}
  .ax-bar{font-size:1.3rem;}
  .ax-fares{grid-template-columns:1fr;}
  .ax-rental-grid{grid-template-columns:1fr;}
  .ax-rental h3{font-size:1.9rem;text-align: center;}
  .ax-parking h3{font-size:1.9rem;text-align: center;}
  .ax-timetable a.btn,.ax-parking a.btn{width:100%;}
  .ax-fare h3 {font-size: 2rem; text-align: center;}
  .ax-fare dt {font-size: 1.5rem;}
  .ax-fare dd {font-size: 1.65rem;}
  .ax-rental-grid .kw {display: block;width: 80%;text-align: center;margin-left: auto;margin-right: auto;}
}

/* ===== v4: 国内/海外を「メインイメージ→スライダー→キャンペーン」構成に ===== */
.hero{position:relative;overflow:hidden;min-height:clamp(460px,44vw,660px);display:flex;align-items:flex-start;}
.hero-bg,.hero-fg{position:absolute;inset:0;background-repeat:no-repeat;}
.hero-inner{position:relative;z-index:2;width:100%;max-width:1240px;padding-bottom:40px;}
.hero-title{font-weight:700;font-size:clamp(3.4rem,5vw,6.6rem);line-height:1.25;margin:6px 0 10px;}
.hero-lead{font-size:clamp(1.6rem,1.7vw,2.2rem);font-weight:700;margin:0;padding:0;}
.hero-sub{font-size:clamp(1.3rem,1.2vw,1.6rem);margin:8px 0 0;padding:0;line-height:1.8;}
.hero-badge{display:inline-block;background:var(--yellow);color:var(--ink);font-weight:900;font-size:1.4rem;padding:2px 18px;transform:skewX(-8deg);letter-spacing:.1em;}
/* domestic */
.hero-dom{color:var(--navy);background:#DDEBF7;}
.hero-dom .hero-bg{background-image:linear-gradient(90deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.72) 34%,rgba(255,255,255,0) 62%),url(../img/domestic/df_header_bg.jpg);background-size:auto,cover;background-position:center,center 78%;}
.hero-dom .hero-title{color:#0B3C8C;text-shadow:0 0 18px rgba(255,255,255,.9);}
.hero-dom .hero-lead,.hero-dom .hero-sub{text-shadow:0 0 12px rgba(255,255,255,.95);}
/* international */
.hero-intl{color:#fff;background:#2F86C9;}
.hero-intl .hero-bg{background-image:url(../img/lp/hero_intl_bg.jpg);background-size:cover;background-position:center bottom;}
.hero-intl .hero-fg{background-image:url(../img/lp/hero_intl_fg.png);background-size:auto 100%;background-position:right bottom;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%),linear-gradient(0deg,transparent 0,#000 12%);mask-image:linear-gradient(90deg,transparent 0,#000 38%);}
.hero-intl .hero-title,.hero-intl .hero-lead,.hero-intl .hero-sub{text-shadow:0 2px 14px rgba(7,40,90,.55);}
.hero-script{font-style:italic;font-size:2rem;font-weight:700;letter-spacing:.08em;text-shadow:0 2px 10px rgba(7,40,90,.5);}
.hero-new{display:inline-flex;align-items:center;gap:14px;margin-top:22px;background:rgba(8,40,110,.72);border:2px solid #fff;border-radius:12px;padding:12px 20px;font-size:1.5rem;line-height:1.5;backdrop-filter:blur(2px);}
.hero-new .nb{background:var(--pink);font-weight:900;font-size:1.8rem;padding:6px 14px;border-radius:6px;line-height:1;}
.hero-new b{font-size:1.7rem;}
.hero-new small{font-size:1.3rem;}
/* body */
.sec-body{padding:48px 0 32px;}
.blk-title{max-width:1200px;margin:0 auto 22px;font-size:3.6rem;font-weight: 900;color:var(--navy);display:flex;flex-direction: column;align-items:center;gap:5px;}
.camp-title{margin-top:64px;}
.camp-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px;max-width:1200px;margin:0 auto;}
.camp-two .camp-card img,.camp-two .camp-visual{aspect-ratio:16/9;}
.camp-two .camp-card img[src*="taipei_quo"],.camp-two .camp-card img[src*="lounge"]{object-fit:cover;object-position:center;}
.camp-two .camp-card h4{font-size:2.2rem;line-height:1.45;margin:0;}
.camp-two .camp-card .tag{font-size:1.3rem;}
.camp-two .camp-card .term{font-size:1.4rem;}
.camp-two .camp-visual .cv-big{font-size:7rem;}
.camp-two .camp-visual .cv-mid{font-size:2.4rem;}
.camp-two .camp-visual .cv-small{font-size:1.6rem;}
#access .sec-head{padding-top:88px;}
@media screen and (max-width:782px){
  .hero{min-height:auto;}
  .hero-dom .hero-bg{background-image:linear-gradient(180deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.55) 48%,rgba(255,255,255,0) 75%),url(../img/domestic/df_header_bg.jpg);background-size:auto,cover;background-position:center,60% bottom;}
  .hero-intl .hero-fg{background-size:auto 55%;background-position:right bottom;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 25%);mask-image:linear-gradient(90deg,transparent 0,#000 25%);}
  .hero-title{font-size:3.6rem;}
  .hero-new{display:flex;flex-wrap:wrap;margin-top:16px;padding:10px 14px;font-size:1.3rem;}
  .hero-new b{font-size:1.4rem;}
  .blk-title{font-size:2.1rem;}
  .blk-title span {font-size: 1.4rem}
  .camp-two{grid-template-columns:1fr;}
  .camp-two .camp-visual .cv-big{font-size:5.4rem;}
  .camp-two .camp-card h4 {font-size: 1.8rem}
}

/* v4b */
.hero-intl .hero-fg{background-size:min(100%,1800px) auto;background-position:right bottom;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 40%),linear-gradient(180deg,transparent 0,#000 22%);
  mask-image:linear-gradient(90deg,transparent 0,#000 40%),linear-gradient(180deg,transparent 0,#000 22%);
  -webkit-mask-composite:source-in;mask-composite:intersect;}
.camp-two .camp-card img,.camp-two .camp-visual{aspect-ratio:8/5;}
@media screen and (max-width:782px){
  .hero-intl .hero-fg{background-size:auto 48%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%);mask-image:linear-gradient(90deg,transparent 0,#000 30%);-webkit-mask-composite:source-over;mask-composite:add;}
}

/* v4c: 前景画像はアルファ付きWebP（CSSマスク不要） */
.hero-intl .hero-fg{background-image:url(../img/lp/hero_intl_fg.webp);background-size:min(100%,1800px) auto;background-position:right bottom;-webkit-mask-image:none;mask-image:none;}
@media screen and (max-width:782px){.hero-intl .hero-fg{background-size:auto 50%;-webkit-mask-image:none;mask-image:none;}}

/* ===== v5: センター型ループ・カルーセル ===== */
.lp{overflow-x:clip;}
.cs{--cw:min(780px,66vw);--gap:28px;position:relative;width:100vw;margin-left:calc(50% - 50vw);outline:none;}
.cs-viewport{overflow:hidden;padding:14px 0 26px;touch-action:pan-y;cursor:grab;}
.cs-viewport.dragging{cursor:grabbing;}
.cs-track{display:flex;gap:var(--gap);will-change:transform;transition:transform .55s cubic-bezier(.22,.8,.24,1);}
.cs-track.no-anim,.cs-track.drag{transition:none;}
.cs-card{--c:#2F6EB5;flex:0 0 var(--cw);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 28px rgba(11,60,120,.18);display:flex;flex-direction:column;opacity:.5;transform:scale(.93);transition:opacity .5s,transform .5s;user-select:none;-webkit-user-select:none;}
.cs-card.is-active{opacity:1;transform:none;}
.cs-card.naha{--c:var(--c-okinawa);} .cs-card.tokyo{--c:var(--c-tokyo);} .cs-card.narita{--c:var(--c-narita);} .cs-card.tohoku{--c:var(--c-tohoku);} .cs-card.chitose{--c:var(--c-sapporo);}
.cs-card.seoul{--c:var(--c-seoul);} .cs-card.aerok{--c:var(--c-aerok);} .cs-card.taipei{--c:var(--c-taipei);} .cs-card.hk{--c:var(--c-hk);} .cs-card.vn{--c:var(--c-vn);} .cs-card.sh{--c:var(--c-sh);}
.cs-head{background:var(--c);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;}
.cs-head h3{margin:0;font-size:3rem;line-height:1.2;}
.cs-head h3 small{font-size:1.3rem;font-weight:400;opacity:.9;margin-left:12px;letter-spacing:.08em;font-family:inherit;}
.cs-head .time{margin:0;padding:0;display:flex;align-items:baseline;gap:8px;background:rgba(255,255,255,.2);border-radius:99px;padding:4px 18px;white-space:nowrap;}
.cs-head .time i{font-style:normal;font-size:1.3rem;}
.cs-head .time b{font-size:2.2rem;}
.cs-body{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);flex-grow:1;}
.cs-ph{position:relative;margin:0;background:#dde;min-height:340px;display:grid;}
.cs-ph.duo{grid-template-rows:1fr 1fr;gap:3px;}
.cs-ph img.ph{width:100%;height:100%;object-fit:cover;display:block;}
.cs-ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 14px 8px;font-size:1.2rem;color:#fff;background:linear-gradient(0deg,rgba(0,0,0,.62),rgba(0,0,0,0));line-height:1.4;}
.cs-info{padding:20px 24px 22px;display:flex;flex-direction:column;gap:14px;}
.cs-info .catch{margin:0;padding:0;font-size:2.4rem;text-align: center;font-weight:900;line-height:1.45;color:var(--c);}
.air-block{display:flex;gap:14px;align-items:center;}
.air-block img.air{width:46%;flex:none;}
.freq{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:1;}
.freq li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;border-left:4px solid var(--c);padding-left:10px;line-height:1.35;}
.freq .al{flex:0 0 100%;font-size:1.2rem;color:#46607E;font-weight:700;}
.freq .n{font-size:2.6rem;font-weight:700;color:var(--ink);}
.freq .d{font-size:1.4rem;font-weight:700;}
.freq .d small{font-size:1.2rem;font-weight:400;color:#46607E;}
.freq li.stop .d{font-size:2.2rem;font-weight:700;color:#B3261E;}
.cs-card.dual .air-block{flex-direction:column;align-items:stretch;}
.cs-card.dual .air-block img.air{width:100%;}
.cs-card.dual .freq{flex-direction:row;gap:14px;}
.cs-card.dual .freq li{flex:1;}
.cs-btns{margin-top:auto;display:flex;gap:10px;flex-wrap:wrap;}
.cs-btns a.btn{flex:1 1 150px;min-width:0;margin:0;font-size:1.4rem;padding:.8rem 1rem;background:var(--c);border-bottom-color:rgba(0,0,0,.25);}
.cs-btn{position:absolute;top:calc(50% - 24px);z-index:3;width:52px;height:52px;border-radius:50%;border:0;background:#fff;color:var(--navy);box-shadow:0 4px 16px rgba(11,60,120,.35);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s;}
.cs-btn:hover{transform:scale(1.1);}
.cs-prev{left:max(16px,calc(50% - var(--cw)/2 - 70px));} .cs-next{right:max(16px,calc(50% - var(--cw)/2 - 70px));}
.cs-dots{display:flex;justify-content:center;gap:10px;margin-top:-6px;}
.cs-dots button{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:#B7C9DD;cursor:pointer;}
.cs-dots button.on{background:var(--navy);width:30px;border-radius:6px;}
@media screen and (max-width:782px){
  .cs{--cw:84vw;--gap:12px;}
  .cs-head{padding:10px 16px;} .cs-head h3{font-size:2.2rem;} .cs-head .time{padding:2px 12px;} .cs-head .time b{font-size:1.7rem;} .cs-head .time i{font-size:1.1rem;}
  .cs-body{grid-template-columns:1fr;}
  .cs-ph{min-height:0;aspect-ratio:16/10;} .cs-ph.duo{grid-template-rows:none;grid-template-columns:1fr 1fr;}
  .cs-info{padding:14px 16px 18px;} .cs-info .catch{font-size:1.9rem;}
  .freq .n{font-size:2.2rem;}
  .cs-btn{display:none;}
}
/* v5b */
.cs-ph{min-height:320px;}
.air-block{flex:1;align-items:center;}
.air-block img.air{width:50%;}
.freq .n{font-size:2.6rem;}
.cs-card.dual .air-block{justify-content:center;}
/* v5c */
.cs-card.dual .freq{align-items:flex-start;}
.cs-card.dual .freq li{padding-top:2px;padding-bottom:2px;}
.cs-ph figcaption{font-size:1.1rem;}
.cs-card.seoul .cs-info .catch{font-size:2rem;}
@media screen and (max-width:782px){.cs-card.seoul .cs-info .catch{font-size:1.7rem;}}
/* v5d: SP崩れ修正 */
.cs-body{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);}
.cs-body > *{min-width:0;}
.cs-ph{overflow:hidden;}
@media screen and (max-width:782px){
  .cs-body{grid-template-columns:minmax(0,1fr);}
  .cs-ph{aspect-ratio:auto;height:180px;min-height:0;}
  .cs-ph img.ph{height:180px;}
  .cs-ph.duo{grid-template-columns:1fr 1fr;grid-template-rows:210px;}
  .cs-head h3{font-size:2rem;line-height:1.25;} .cs-head h3 small{display:block;margin:0;font-size:1.1rem;}
  .cs-head .time i{display:none;}
  .cs-head .time b{font-size:1.6rem;}
  .cs-card.dual .freq{gap:8px;}
  .freq .n{font-size:1.8rem;}
  .cs-btns a.btn{flex:1 1 100%;}
}
@media screen and (max-width:782px){.cs-body{grid-template-rows:auto 1fr;}}

/* v5e: 折り返し時のちらつき防止 */
.cs.jumping .cs-card{transition:none !important;}

/* v6: 2枚写真（duo）は画像ごとにキャプションを付ける */
.cs-ph.duo{grid-template-rows:1fr 1fr;gap:3px;}
.cs-ph .ph-item{position:relative;margin:0;min-height:0;overflow:hidden;}
.cs-ph .ph-item img.ph{width:100%;height:100%;object-fit:cover;display:block;}
.cs-ph .ph-item figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:18px 12px 6px;font-size:1.1rem;line-height:1.4;color:#fff;
  background:linear-gradient(0deg,rgba(0,0,0,.62),rgba(0,0,0,0));
}
@media screen and (max-width:782px){
  .cs-ph .ph-item{height:180px;}
  .cs-ph .ph-item figcaption{font-size:1rem;padding:16px 8px 5px;}
}
