.furano-landing { --landing-green:#005c34; --landing-ink:#152820; --landing-gold:#a34b00; --landing-cream:#fff5db; }
.furano-landing .hero.hero--landing { background: #fff; color: var(--landing-ink); }
.furano-landing .hero--landing .hero-inner {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(380px,1.8fr) minmax(0,1fr);
  grid-template-rows: repeat(2,minmax(150px,1fr));
  grid-template-areas: 'snow copy family' 'car copy summer';
  gap: 8px;
  padding-block: 18px 8px;
  align-items: stretch;
}
.hero--landing .hero-copy {
  grid-area: copy;
  align-self: center;
  text-align: center;
  padding: clamp(18px,3vw,42px);
}
.furano-landing .hero--landing h1 {
  font-size: clamp(32px,4.3vw,60px);
  font-weight: 850;
  margin: 0 0 14px;
}
.furano-landing .hero--landing .hero-lede { color: var(--landing-green); font-size: clamp(18px,2.4vw,32px); font-weight: 800; }
.furano-landing .hero--landing .hero-definition { margin: 0 0 18px; font-size: 15px; }
.hero--landing .hero-fee { display: inline-block; color: var(--landing-gold); font-weight: 850; font-size: 1.55em; }
.hero--landing .hero-highlights,.hero--landing .hero-buttons { justify-content: center; }
.hero--landing .hero-highlights li { background: #e3f1e8; color: #004d2d; border-radius: 999px; }
.furano-landing .hero--landing .hero-buttons .lime,
.landing-callout .button { background: var(--landing-green); color: #fff; border-color: var(--landing-green); }
.landing-tile { margin: 0; min-width: 0; position: relative; overflow: hidden; border-radius: 10px; background: #e7efeb; }
.landing-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.landing-tile--snow { grid-area:snow; }
.landing-tile--family { grid-area:family; }
.landing-tile--car { grid-area:car; background: #f1f5f2; }
.landing-tile--car img { object-fit:contain; }
.landing-tile--summer { grid-area:summer; }
.furano-landing .landing-image-note { margin: 0 auto 18px; text-align:right; color:#47594d; font-size:12px; }
.furano-landing .visitor-entries { background: var(--landing-cream); padding-block: clamp(30px,5vw,64px); }
.furano-landing .visitor-entries h2, .furano-landing .section-heading h2,
.furano-landing .visual-route h2 { color:var(--landing-ink); font-weight:800; }
.furano-landing .visitor-entries .landing-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.furano-landing .visitor-entries .landing-benefit {
  position:relative; padding:0 0 18px; overflow:hidden; border:1px solid #d4dfd6; background:#fff; border-radius:12px; color:var(--landing-ink);
}
.landing-benefit img { display:block; width:100%; aspect-ratio:2.1; object-fit:cover; }
.furano-landing .landing-benefit h3 { margin:14px 16px 6px; font-size:clamp(16px,2vw,23px); font-weight:800; }
.furano-landing .landing-benefit p { margin:0 16px 10px; font-size:14px; line-height:1.55; }
.furano-landing .landing-benefit span { margin-inline:16px; color:var(--landing-green); font-weight:750; }
.furano-landing .landing-benefit .landing-card-number {
  position:absolute; top:9px; left:9px; margin:0; color:white; background:var(--landing-green);
  border-radius:50%; width:34px; height:34px; line-height:34px; text-align:center;
}
.furano-landing #fleet { background:#fff; }
.furano-landing .vehicle-card { border-radius:12px; }
.furano-landing .vehicle-price strong { color:var(--landing-green); font-weight:800; }
.furano-landing .vehicle-spec { color:#374b40; font-size:13px; }
.furano-landing .vehicle-price > small { font-size:12px; }
.furano-landing .vehicle-price > span { position:static; font-size:12px; }
.landing-callout { background:var(--landing-cream); border-block:1px solid #f4e3b4; }
.landing-callout > div { display:flex; flex-wrap:wrap; gap:14px 24px; align-items:center; justify-content:space-between; padding-block:20px; }
.landing-callout b { color:var(--landing-ink); font-size:clamp(17px,2vw,23px); }
.landing-callout .button { min-height:48px; padding:10px 22px; font-weight:750; }
.furano-landing #simulator { background:#eaf4ed; }
.furano-landing .visual-route { padding-block:clamp(28px,5vw,60px); }
.furano-landing .visual-route li { border-top:4px solid var(--landing-green); }
.furano-landing #faq { background:#fff5db; }
.furano-landing #inquiry { background:#eaf4ed; }
.furano-landing .landing-guides { padding-block:22px; }
.landing-guides > summary { cursor:pointer; font-weight:750; background:#fff; border:1px solid #cbdacf; border-radius:10px; padding:15px 18px; color:var(--landing-green); }
.furano-landing .mobile-cta a { background:var(--landing-green); }
@media(max-width:760px){
  .furano-landing .hero--landing .hero-inner {
    grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto auto auto;
    grid-template-areas:'snow family' 'copy copy' 'car summer'; gap:6px;
  }
  .hero--landing .hero-copy { padding:12px 0 10px; }
  .hero--landing .landing-tile { aspect-ratio:2.2; }
  .hero--landing .landing-tile--car,.hero--landing .landing-tile--summer { aspect-ratio:2.65; }
  .furano-landing .hero--landing h1 { margin-bottom:8px; }
  .furano-landing .hero--landing .hero-lede { margin-bottom:8px; }
  .furano-landing .hero--landing .hero-definition { margin-bottom:8px; }
  .furano-landing .hero--landing .hero-buttons .button { flex:1 1 auto; min-width:0; padding-inline:11px; font-size:13px; }
  .furano-landing .visitor-entries .landing-benefits { grid-template-columns:minmax(0,1fr); }
  .landing-benefit img { aspect-ratio:2.65; }
  .landing-callout .button { width:100%; justify-content:center; }
}

body.snow-landing { --landing-green:#12658b; --landing-ink:#173b50; --landing-cream:#edf8ff; background:#fff; color:#173b50; }
.snow-landing .hero.route-intro { background:#eef8ff; }
.snow-landing .route-intro > .container { display:grid; grid-template-columns:1fr 1.15fr; gap:24px; align-items:center; padding-block:22px; }
.snow-landing .hero h1 { color:#173b50; margin-bottom:8px; }
.snow-landing .hero-lede,.snow-landing .route-choice { color:#24526c; margin-bottom:12px; }
.snow-landing .photo-slot { background:#e9f6fe; border:1px dashed #83b2cb; color:#325c73; }
.snow-landing .photo-slot img { display:block; width:100%; height:100%; object-fit:cover; }
.snow-landing .photo-slot > span { font-size:13px; text-align:center; padding:8px; }
.snow-landing .route-photo { margin-bottom:8px; }
.snow-landing .hero-slot { margin:0; aspect-ratio:2.2; }
.snow-landing .visual-route.route-board { padding-block:20px 26px; }
.snow-landing .route-board li { border-color:#bcdbea; border-top-color:#5d9ec2; }
.snow-landing .route-board li:nth-child(n+3) { border-top-color:#12658b; }
.snow-landing .route-board .route-actions a { border-color:#12658b; color:#12658b; }
.snow-landing .route-board .route-actions a:first-child { background:#12658b; color:#fff; }
.snow-landing .landing-benefit .photo-slot { margin:10px; aspect-ratio:2.1; }
.snow-landing .landing-benefit h3 { margin-bottom:0; }
.snow-landing .landing-benefit .landing-card-number { top:16px; left:16px; }
.snow-landing .vehicle-image.photo-slot { margin:10px; height:auto; }
.snow-landing #simulator,.snow-landing #inquiry,.snow-landing #faq { background:#eef8ff; }
.snow-landing .site-header .button,.snow-landing .hero-buttons .lime,.snow-landing .mobile-cta a,
.snow-landing .contact-copy > .button.line { background:#12658b; border-color:#12658b; color:#fff; }
.snow-landing .landing-guides > summary { color:#12658b; border-color:#bcdbea; }
.snow-landing .landing-callout { border-color:#bcdbea; }
@media(max-width:760px){
  .snow-landing .route-intro > .container { grid-template-columns:1fr; gap:12px; }
  .snow-landing .hero-slot { aspect-ratio:2.8; }
  .snow-landing .route-board ol { gap:8px; }
}

body.monthly-layout .site-header { border-top: 6px solid #0879b6; }
.monthly-layout .hero.route-intro { background:#0879b6; }
.monthly-layout .route-intro > .container {
  width:100%; max-width:none; padding:0; gap:0;
  grid-template-columns:minmax(0,1fr) minmax(340px,1.25fr) minmax(0,1fr);
  align-items:stretch;
}
.monthly-layout .route-intro .hero-copy { text-align:center; padding:32px 18px; margin:auto; }
.monthly-layout .hero h1,.monthly-layout .hero-lede,.monthly-layout .route-choice { color:#fff; }
.monthly-layout .hero h1 { font-weight:850; font-size:clamp(28px,4vw,56px); }
.monthly-layout .route-choice { margin-bottom:5px; }
.monthly-layout .hero-fee-number { display:block; font-size:clamp(45px,7vw,92px); font-weight:850; line-height:1.1; color:#ffed72; }
.monthly-layout .hero-fee-note { color:white; font-size:13px; margin:6px 0 0; }
.monthly-layout .hero-slot { border:1px dashed #8fbfd7; border-radius:0; margin:0; aspect-ratio:auto; min-height:240px; background:#dcf2ff; }
.monthly-layout .hero-slot img { width:100%; height:100%; object-fit:cover; }
.monthly-layout .hero-utility { text-align:center; padding:9px 16px; background:#075984; color:#fff; font-weight:700; font-size:14px; }
.monthly-layout .home-booking { text-align:center; padding:16px 12px 8px; }
.monthly-layout .booking-primary,.monthly-layout .site-header .button.compact,.monthly-layout .mobile-cta a:last-child {
  display:inline-flex; align-items:center; justify-content:center; background:#087f32; color:white; border-color:#087f32; font-weight:800;
}
.monthly-layout .booking-primary { border-radius:999px; padding:14px 28px; min-height:52px; font-size:clamp(16px,2vw,23px); }
.monthly-layout .home-booking .rate-jump { display:block; margin:7px auto 0; color:#075984; text-decoration:underline; }
@media(max-width:760px){
  .monthly-layout .route-intro > .container { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .monthly-layout .route-intro .hero-copy { grid-column:1/-1; grid-row:1; padding:16px 10px; }
  .monthly-layout .hero-slot { min-height:0; aspect-ratio:2.2; }
}

.monthly-layout .monthly-topbar { background:#086fa8; color:#fff; }
.monthly-topbar .container { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:34px; font-size:13px; }
.monthly-topbar a { color:inherit; }
body.monthly-layout .site-header { border-top:0; }
.monthly-layout .hero.route-intro { background:#157bc1; }
.monthly-layout .route-intro > .container { grid-template-columns:minmax(0,1fr) minmax(345px,1.35fr) minmax(0,1fr); }
.monthly-layout .hero-slot { background:#cce9fa; min-height:310px; }
.monthly-layout .monthly-proof {
  position:relative; z-index:1; margin:-18px auto 0; display:grid; gap:8px;
  grid-template-columns:1.3fr repeat(3,minmax(0,1fr)); width:min(940px,calc(100% - 32px));
}
.monthly-proof > * { min-width:0; margin:0; padding:10px 8px; border:1px solid #91bfd8; background:#fff; border-radius:10px; text-align:center; color:#124667; }
.monthly-proof .photo-slot { aspect-ratio:auto; min-height:58px; }
.monthly-proof b,.monthly-proof small { display:block; }
.monthly-proof small { font-size:12px; }
.monthly-layout .home-booking { padding-block:18px 22px; }
.monthly-layout .home-booking .booking-primary { min-width:min(420px,100%); }
.monthly-layout .monthly-quick { background:#e6f4fe; text-align:center; padding:12px; }
.monthly-quick a { display:inline-block; margin:3px 6px; padding:5px 12px; border:1px solid #96c4db; border-radius:5px; color:#075984; background:#fff; font-weight:700; }
.monthly-layout .monthly-rate-tab {
  position:fixed; right:0; top:43%; z-index:4; padding:10px 8px; writing-mode:vertical-rl;
  background:#fff; color:#075984; border:2px solid #0879b6; border-right:0; border-radius:10px 0 0 10px; font-weight:800;
}
.monthly-layout .landing-benefit { border-top:4px solid #0879b6; }
.monthly-layout .landing-benefit h3,.monthly-layout .vehicle-card h3 { color:#075984; }
@media(max-width:760px){
  .monthly-layout .route-intro > .container { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .monthly-layout .hero-slot { min-height:0; }
  .monthly-layout .monthly-proof { margin:8px auto 0; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .monthly-layout .monthly-rate-tab { display:none; }
}

/* The full-width campaign layout keeps the pale-blue palette across content sections. */
.furano-blue.monthly-layout .header-inner { min-height:74px; }
.furano-blue.monthly-layout .desktop-nav { gap:clamp(12px,1.8vw,27px); font-size:clamp(12px,1.08vw,15px); font-weight:700; }
.furano-blue.monthly-layout .site-header .button.compact {
  padding:10px 15px; min-height:44px; border-radius:5px; background:var(--site-book); border-color:var(--site-book);
}
.monthly-layout .monthly-topbar .container { min-height:36px; }
.furano-blue.monthly-layout .hero-utility { border-block:1px solid var(--site-line); font-size:14px; }
.furano-blue.monthly-layout .hero.route-intro { background:#e5f3fb; }
.furano-blue.monthly-layout .route-intro > .container {
  grid-template-columns:minmax(0,1fr) minmax(390px,1.5fr) minmax(0,1fr);
  min-height:360px;
}
.furano-blue.monthly-layout .route-intro .hero-copy { padding:25px 15px 45px; }
.furano-blue.monthly-layout .hero h1 { margin-bottom:8px; font-size:clamp(28px,4vw,56px); }
.furano-blue.monthly-layout .hero .hero-lede { margin-bottom:14px; font-weight:750; }
.furano-blue.monthly-layout .hero .route-choice {
  display:inline-block; padding:3px 12px; margin:0 0 4px; border-radius:5px; background:#fff;
}
.furano-blue.monthly-layout .hero .hero-fee-number { font-size:clamp(52px,7.4vw,100px); }
.furano-blue.monthly-layout .hero-slot { min-height:0; background:#f3f9fc; border-color:#c2dae7; }
.monthly-layout .monthly-proof {
  width:min(1000px,calc(100% - 32px)); grid-template-columns:1.25fr repeat(3,minmax(0,1fr));
  margin:-27px auto 0; gap:0; overflow:hidden; border:1px solid var(--site-line);
  border-radius:10px; background:#fff; box-shadow:0 4px 12px rgba(23,56,77,.08);
}
.furano-blue.monthly-layout .monthly-proof > * {
  margin:0; padding:10px 8px; border:0; border-radius:0; min-height:63px;
  display:grid; place-content:center; align-self:stretch;
}
.furano-blue.monthly-layout .monthly-proof > * + * { border-inline-start:1px solid var(--site-line); }
.furano-blue.monthly-layout .monthly-proof > .photo-slot { background:#edf6fb; }
.monthly-proof b { font-size:clamp(13px,1.45vw,18px); }
.monthly-proof small { margin-top:3px; }
.furano-blue.monthly-layout .booking-primary {
  background:var(--site-book); border-color:var(--site-book);
  box-shadow:0 4px 10px rgba(8,116,66,.18); gap:9px;
}
.booking-primary .line-badge {
  display:inline-grid; place-items:center; min-width:32px; height:32px; padding:0 4px;
  border-radius:50%; background:#fff; color:var(--site-book); font-size:9px; letter-spacing:.015em;
}
.monthly-layout .monthly-quick { border-block:1px solid var(--site-line); }
.monthly-layout .monthly-quick a { min-height:40px; display:inline-flex; align-items:center; }
.monthly-layout .monthly-section-title {
  width:fit-content; max-width:100%; margin:0 auto 22px; padding:0 0 9px;
  border-bottom:3px solid #72aecf; color:var(--site-navy); text-align:center; line-height:1.4;
}
.monthly-layout .visitor-entries .landing-benefits { margin-top:0; }
.furano-blue.monthly-layout .landing-benefit { display:block; border:1px solid var(--site-line); border-top:3px solid #74a9c6; }
.furano-blue.monthly-layout .landing-benefit h3 { margin:12px 10px 0; text-align:center; }
.furano-blue.monthly-layout #fleet .section-heading { text-align:center; margin-bottom:20px; }
.monthly-layout #fleet .vehicle-card { border-top:3px solid #7daac3; }
.monthly-layout #fleet .vehicle-label {
  background:#eef7fc; padding:8px 11px; margin:0; font-size:13px; font-weight:700;
}
.monthly-layout #fleet .vehicle-price {
  background:#eff7fb; border:0; border-radius:6px; padding:8px 10px;
}
.monthly-layout #fleet .vehicle-price strong { font-size:clamp(22px,2.6vw,36px); }
.monthly-layout #fleet .vehicle-body .button { margin-top:12px; }
.monthly-layout .monthly-steps { padding:clamp(28px,5vw,58px) 0; background:#eff7fb; }
.monthly-steps ol {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px;
  list-style:none; padding:0; margin:0;
}
.monthly-steps li {
  background:#fff; border:1px solid var(--site-line); border-radius:9px;
  padding:14px; display:grid; align-content:start; gap:5px; color:var(--site-navy);
}
.monthly-steps li span { font-size:12px; color:var(--site-dark-blue); font-weight:800; }
.monthly-steps li b { font-size:16px; }
.monthly-steps li small { font-size:13px; line-height:1.55; }
.monthly-steps .home-booking { padding-bottom:0; }
@media(max-width:900px){
  .monthly-layout .monthly-steps ol { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px){
  .furano-blue.monthly-layout .route-intro > .container { grid-template-columns:repeat(2,minmax(0,1fr)); min-height:0; }
  .furano-blue.monthly-layout .route-intro .hero-copy { grid-column:1/-1; grid-row:1; padding:16px 8px 12px; }
  .furano-blue.monthly-layout .hero-slot { aspect-ratio:2.45; }
  .monthly-layout .monthly-proof { grid-template-columns:repeat(2,minmax(0,1fr)); margin:8px auto 0; }
  .furano-blue.monthly-layout .monthly-proof > * { min-height:52px; padding:5px; }
  .furano-blue.monthly-layout .monthly-proof > :nth-child(3) { border-inline-start:0; }
  .furano-blue.monthly-layout .monthly-proof > :nth-child(n+3) { border-block-start:1px solid var(--site-line); }
  .monthly-layout .monthly-quick a { margin:2px; padding-inline:9px; font-size:13px; }
}
@media(max-width:480px){
  .monthly-layout .visitor-entries .landing-benefits { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  .monthly-layout .landing-benefit .photo-slot { margin:4px; aspect-ratio:1.3; }
  .monthly-layout .landing-benefit .photo-slot > span { font-size:11px; padding:3px; }
  .furano-blue.monthly-layout .landing-benefit h3 { margin:8px 4px 0; font-size:12px; overflow-wrap:anywhere; }
  .monthly-layout .landing-benefit .landing-card-number { display:none; }
}

/* Image-led home: the owner's artwork will fill each panel edge to edge. */
.monthly-layout .image-led-banner { padding-block:14px; }
.monthly-layout .image-led-banner--hero { background:#edf7fc; padding-block:0; }
.monthly-layout .image-led-banner .photo-slot {
  width:100%; margin:0; aspect-ratio:3.55; border-radius:10px; background:#f4f9fc;
}
.monthly-layout .image-led-banner--hero .photo-slot { border-radius:0; border-inline:0; aspect-ratio:3.25; }
.monthly-layout .image-led-banner .photo-slot img { display:block; width:100%; height:100%; object-fit:contain; }
.monthly-layout .image-led-banner .photo-slot > span { color:#426278; font-size:13px; }
.monthly-layout .image-led-note { margin:0; padding:7px 10px; background:#e5f1f8; color:#20465d; font-size:13px; text-align:center; }
.monthly-layout .image-led-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:9px; }
.monthly-layout .image-led-actions a { color:#075682; font-weight:750; font-size:14px; padding:4px 8px; text-decoration:underline; text-underline-offset:4px; }
.monthly-layout .image-led-home #fleet { padding-block:24px; }
.monthly-layout .image-led-home #fleet .section-heading { margin:0 0 12px; }
.monthly-layout .image-led-home #fleet .section-heading h2 { font-size:clamp(19px,2.7vw,30px); margin:0; }
.monthly-layout .image-led-home .fleet-grid { margin-top:12px; }
.monthly-layout .image-led-home .vehicle-price { padding:6px 8px; }
.monthly-layout .image-led-home .vehicle-body { padding:0 10px 12px; }
.monthly-layout .image-led-home .vehicle-body h3 { font-size:clamp(13px,1.6vw,20px); margin-bottom:5px; }
.monthly-layout .image-led-home .vehicle-image.photo-slot { margin:7px; }
.monthly-layout .image-led-home .vehicle-body .button { font-size:12px; }
.monthly-layout .image-led-home .landing-guides { padding-block:6px; }
.monthly-layout .image-led-home .landing-guides > summary { padding:9px 12px; font-size:14px; }
.monthly-layout .image-led-home .image-led-last { padding-bottom:30px; }
@media(max-width:760px){
  .monthly-layout .image-led-banner .photo-slot { aspect-ratio:2.2; }
  .monthly-layout .image-led-banner--hero .photo-slot { aspect-ratio:1.85; }
}

.image-led-home .photo-story { padding-block:8px 16px; }
.photo-story ol { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.photo-story li { position:relative; min-width:0; }
.photo-story .photo-slot {
  aspect-ratio:4 / 3; margin:0; border-radius:9px;
  display:grid; grid-template-rows:minmax(0,1fr); place-items:center;
}
.photo-story .photo-slot img { width:100%; height:100%; object-fit:cover; }
.photo-story .photo-slot span { padding:8px; text-align:center; }
.photo-story .photo-number {
  position:absolute; inset:8px auto auto 8px; border-radius:50%;
  width:28px; height:28px; display:grid; place-items:center;
  color:white; background:#28698c; font-size:12px; font-weight:750;
}
@media(max-width:760px){
  .photo-story ol { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
}
@media(prefers-reduced-motion:no-preference){
  @supports(animation-timeline:view()){
    .image-led-home .photo-story li,.image-led-home .image-led-banner:not(.image-led-banner--hero) .photo-slot {
      animation:furano-photo-enter linear both;
      animation-timeline:view(); animation-range:entry 0% entry 65%;
    }
  }
}
@keyframes furano-photo-enter { from { opacity:.55; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
