.japan-blossoms { --jp-green:#054142; --jp-gold:#D7AD60; --jp-pink:#f2ccd5; background:#fff; }
.japan-blossoms h2 { color:#054142; font-size:clamp(2rem,3.5vw,3.2rem); line-height:1.08; margin-bottom:1.1rem; }
.jp-hero { position:relative; isolation:isolate; overflow:hidden; padding:177px 0 48px; background:#054142; color:#fff; }
.jp-hero-photo,.jp-shade { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; z-index:-3; }
.jp-shade { z-index:-2; background:linear-gradient(90deg,#032e31ed,#032e3185 58%,#032e312b); }
.jp-watermark { position:absolute; width:240px; bottom:18px; right:5%; opacity:.075; pointer-events:none; z-index:-1; }
.jp-breadcrumb { display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:1.8rem; font-size:.72rem; }
.jp-breadcrumb a,.jp-hero p { color:#fff; }
.jp-kicker { display:block; font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.16em; color:#946d2c; }
.jp-hero .jp-kicker { color:#f2ccd5; }
.jp-hero h1 { max-width:700px; color:#fff; font-size:clamp(2.7rem,5.6vw,5.3rem); line-height:1; margin:1rem 0; }
.jp-hero h1 em { display:block; color:#f4dce3; font-size:1.25em; font-weight:400; }
.jp-japanese { font-size:1.05rem; letter-spacing:.08em; margin:1.5rem 0 .45rem; }
.jp-brandline { font-size:.62rem; letter-spacing:.18em; margin:1rem 0 1.5rem; }
.jp-hero .btn { position:relative; }
.jp-petals { position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:-1; }
.jp-petals i { position:absolute; top:-30px; left:var(--x); width:9px; height:14px; border-radius:85% 5% 85% 35%; background:#f2ccd5; opacity:0; animation:jp-fall 17s linear infinite; animation-delay:var(--delay); }
@keyframes jp-fall { 0% { transform:translate3d(0,-30px,0) rotate(0); opacity:0; } 12% { opacity:.7; } 88% { opacity:.5; } 100% { transform:translate3d(65px,650px,0) rotate(240deg); opacity:0; } }
.jp-petals-paused .jp-petals i { animation-play-state:paused; opacity:0; }
.jp-motion { display:none; margin:1.2rem 0 0; background:#05414255; border:1px solid #ffffff70; color:#fff; border-radius:3px; font-size:.65rem; padding:.5rem .7rem; cursor:pointer; }
.jp-motion[data-ready] { display:block; }
.jp-facts { background:#F5F5F5; border-bottom:1px solid #e1e7e4; }
.jp-facts-inner { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; padding-block:1.4rem; }
.jp-fact { display:flex; align-items:center; gap:.7rem; font-size:.72rem; color:#536565; }
.jp-icon { width:24px; height:24px; fill:none; stroke:#054142; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex:0 0 24px; }
.jp-fact strong { display:block; margin-top:.3rem; color:#054142; font-size:.85rem; }
.jp-overview { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:5rem; align-items:start; }
.jp-copy p { line-height:1.85; margin-bottom:1.2rem; }
.jp-tagline { color:#8b642b; font-family:var(--font-serif); font-size:1.7rem; font-style:italic; }
.jp-offer { padding:1.6rem; border:1px solid #d7e0db; border-top:3px solid #D7AD60; background:#F5F5F5; border-radius:5px; scroll-margin-top:150px; }
.jp-rate { font-size:1.2rem; font-weight:700; color:#054142; margin:.8rem 0 .3rem; }
.jp-small { font-size:.78rem; color:#536565; line-height:1.75; }
.jp-small a { text-decoration:underline; text-underline-offset:3px; }
.jp-offer dl { margin:1rem 0; }
.jp-offer dl > div { padding:.7rem 0; border-top:1px solid #d7e0db; }
.jp-offer dt { font-size:.65rem; letter-spacing:.06em; color:#536565; text-transform:uppercase; }
.jp-offer dd { font-size:.86rem; color:#054142; margin:.25rem 0 0; }
.jp-offer .btn { white-space:normal; margin:.8rem 0; }
.jp-gallery-section,.jp-season { background:#F5F5F5; }
.jp-section-head { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:1.8rem; }
.jp-section-head p { max-width:390px; font-size:.85rem; line-height:1.8; }
.jp-section-head h2 { margin-bottom:0; }
.jp-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.jp-place { min-width:0; }
.jp-photo-link { display:block; position:relative; border-radius:5px; overflow:hidden; background:#e2e8e4; }
.jp-photo-link img { width:100%; height:190px; object-fit:cover; display:block; transition:transform .25s ease; }
.jp-photo-link:hover img { transform:scale(1.025); }
.jp-photo-link span { position:absolute; bottom:10px; right:10px; background:#054142e6; color:#fff; font-size:.65rem; padding:.35rem .55rem; border-radius:3px; }
.jp-place h3 { font-size:1.45rem; color:#054142; margin:.8rem 0 .45rem; }
.jp-place p { font-size:.83rem; line-height:1.75; }
.jp-credit { margin-top:1.5rem; }
.jp-timeline-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:4rem; }
.jp-timeline-layout p { margin-bottom:.8rem; line-height:1.8; }
.jp-timeline { list-style:none; border-left:1px solid #dab7c0; padding-left:1.6rem; }
.jp-timeline li { position:relative; padding:0 0 1.8rem; }
.jp-timeline li:before { content:''; position:absolute; left:-1.95rem; top:.3rem; width:10px; height:10px; background:#d7ad60; border:2px solid #fff; border-radius:50%; }
.jp-timeline li:last-child { padding-bottom:0; }
.jp-timeline h3 { font-size:1.55rem; color:#054142; margin:.4rem 0 .7rem; }
.jp-timeline p { font-size:.85rem; }
.jp-day { color:#926c31; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.jp-day-photo { float:right; margin:0 0 .7rem .9rem; width:85px; height:70px; object-fit:cover; border-radius:4px; }
.jp-timeline li:after { content:''; display:block; clear:both; }
.jp-note { border-left:2px solid #dab7c0; padding:.8rem 1rem; background:#fbf6f7; font-size:.82rem; line-height:1.8; margin-top:1.2rem; }
.jp-season-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.7fr); gap:4rem; align-items:center; }
.jp-season p { margin-bottom:1rem; line-height:1.85; }
.jp-season-photo { width:100%; height:240px; object-fit:cover; border-radius:5px; }
.jp-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin-top:2rem; }
.jp-details article { background:#F5F5F5; border-top:2px solid #D7AD60; padding:1.5rem; }
.jp-details h3 { font-size:1.7rem; color:#054142; margin-bottom:1rem; display:flex; gap:.7rem; align-items:center; }
.jp-details ul { list-style:disc; padding-left:1.2rem; }
.jp-details li,.jp-details p { font-size:.87rem; line-height:1.8; margin-bottom:.5rem; }
.jp-end { padding:2rem; background:#054142; color:#fff; margin-top:3rem; border-radius:5px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.jp-end h2 { color:#fff; font-size:2rem; margin-bottom:.8rem; }
.jp-end p { color:#fff; font-size:.85rem; }
.jp-end .btn { flex-shrink:0; white-space:normal; }
.jp-dialog { border:0; border-radius:7px; padding:1rem; background:#F5F5F5; color:#054142; width:min(880px,94vw); max-height:90dvh; margin:auto; }
.jp-dialog::backdrop { background:#001c21df; }
.jp-dialog img { width:100%; max-height:65dvh; object-fit:contain; display:block; }
.jp-dialog-head,.jp-dialog-controls { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.5rem 0; }
.jp-dialog h2 { font-size:1.5rem; margin:0; }
.jp-dialog button { border:1px solid #b7c8c2; background:white; padding:.6rem .8rem; color:#054142; border-radius:3px; cursor:pointer; font-size:.8rem; }
.jp-dialog-status { font-size:.75rem; }
.jp-destination-hero h1 { font-size:clamp(3rem,6vw,5.5rem); }
.jp-package-list { max-width:760px; }
@media(max-width:1024px) { .jp-overview { grid-template-columns:minmax(0,1fr) 310px; gap:2.5rem; } .jp-timeline-layout,.jp-season-grid { gap:2.5rem; } .jp-gallery { gap:1rem; } }
@media(max-width:768px) { .jp-hero { padding-top:150px; } .jp-facts-inner { grid-template-columns:repeat(2,minmax(0,1fr)); } .jp-overview,.jp-timeline-layout,.jp-season-grid { grid-template-columns:minmax(0,1fr); } .jp-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem 1rem; } .jp-photo-link img { height:155px; } .jp-section-head { flex-direction:column; align-items:flex-start; gap:.8rem; } .jp-details { grid-template-columns:minmax(0,1fr); } .jp-end { flex-direction:column; align-items:flex-start; } .jp-watermark { right:-40px; width:190px; } }
@media(max-width:420px) { .jp-hero h1 { font-size:2.8rem; } .jp-gallery { gap:1.2rem .75rem; } .jp-photo-link img { height:125px; } .jp-place h3 { font-size:1.2rem; } .jp-place p { font-size:.76rem; } .jp-offer,.jp-end { padding:1.3rem; } .jp-facts-inner { gap:1rem .7rem; } .jp-fact strong { font-size:.78rem; } }
@media(prefers-reduced-motion:reduce) { .jp-petals { display:none; } .jp-motion[data-ready] { display:none; } .jp-photo-link img { transition:none; } .jp-photo-link:hover img { transform:none; } }

/* Destination discovery section only; package layouts remain unchanged. */
.jd-section { position:relative; isolation:isolate; overflow:hidden; padding:3.5rem 0; scroll-margin-top:140px; background:radial-gradient(ellipse at 2% 8%,#f2ccd550,transparent 48%),radial-gradient(ellipse at 100% 90%,#f2ccd540,transparent 42%),#F5F5F5; }
.jd-content { position:relative; z-index:1; }
.jd-watermark { position:absolute; width:310px; height:auto; right:-35px; top:45%; opacity:.035; pointer-events:none; z-index:0; }
.jd-heading { max-width:720px; margin-bottom:1.8rem; }
.jd-heading h2 { position:relative; padding-bottom:.8rem; margin-bottom:1rem; }
.jd-heading h2:after { content:''; position:absolute; width:74px; height:1px; bottom:0; left:0; background:#D7AD60; }
.jd-heading > p { font-size:.9rem; line-height:1.8; }
.jd-heading .jd-japanese { margin-top:.7rem; color:#054142; letter-spacing:.08em; font-size:.95rem; }
.jd-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.jd-card { min-width:0; border-radius:9px; overflow:hidden; background:#ffffffed; box-shadow:0 5px 22px #0541420a; border:1px solid #0541420b; transition:box-shadow .25s ease; }
.jd-photo { display:block; overflow:hidden; }
.jd-photo img { display:block; width:100%; height:180px; object-fit:cover; transition:transform .5s ease; }
.jd-card:hover,.jd-card:focus-within { box-shadow:0 9px 28px #05414216; }
.jd-card:hover .jd-photo img,.jd-card:focus-within .jd-photo img { transform:scale(1.035); }
.jd-card-copy { padding:1rem 1.15rem 1.2rem; }
.jd-location { display:flex; gap:.35rem; align-items:center; font-size:.65rem; color:#6b7773; letter-spacing:.03em; }
.jd-location svg { width:13px; height:15px; fill:none; stroke:#96733c; stroke-width:1.5; flex-shrink:0; }
.jd-card h3 { font-size:1.45rem; color:#054142; line-height:1.15; margin:.5rem 0 .65rem; }
.jd-card p { font-size:.8rem; line-height:1.8; color:#536565; }
.jd-foot { display:flex; gap:2rem; align-items:center; justify-content:space-between; margin-top:1.7rem; }
.jd-foot p { font-size:.73rem; line-height:1.8; color:#66756f; max-width:640px; }
.jd-foot .btn { flex-shrink:0; white-space:normal; }
@supports(animation-timeline:view()) { .jd-card { animation:jd-arrive linear both; animation-timeline:view(); animation-range:entry 0% entry 30%; } @keyframes jd-arrive { from { opacity:.65; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } } }
@media(max-width:900px) { .jd-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .jd-foot { flex-direction:column; align-items:flex-start; gap:1rem; } }
@media(max-width:520px) { .jd-section { padding:2.5rem 0; } .jd-grid { gap:1rem; } .jd-photo img { height:145px; } .jd-card-copy { padding:.85rem; } .jd-card h3 { font-size:1.25rem; } .jd-card p { font-size:.77rem; } }
@media(max-width:420px) { .jd-grid { grid-template-columns:minmax(0,1fr); } .jd-photo img { height:180px; } }
@media(prefers-reduced-motion:reduce) { .jd-card { animation:none; transition:none; } .jd-photo img { transition:none; } .jd-card:hover .jd-photo img,.jd-card:focus-within .jd-photo img { transform:none; } }
