.vof-editorial{--vof-sticky-header-height:93px;--vof-admin-bar-height:0px;--vof-anchor-offset:calc(var(--vof-sticky-header-height) + var(--vof-admin-bar-height) + 24px)}
.admin-bar .vof-editorial{--vof-admin-bar-height:32px}.vof-editorial__content :is(h2[id],h3[id],h4[id],.vof-itinerary-day[id]){scroll-margin-top:var(--vof-anchor-offset)}
.vof-duration-selector{margin:38px 0 48px}.vof-duration-selector>.vof-eyebrow{margin-bottom:14px}.vof-duration-selector__buttons{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px!important;width:100%}.vof-duration-selector .wp-block-button{width:100%}.vof-duration-selector .wp-block-button__link{display:block;width:100%;padding:20px 14px 17px;border-radius:24px;background:var(--vof-paper);box-shadow:var(--vof-shadow);color:var(--vof-sea);text-align:center;text-decoration:none}.vof-duration-selector .wp-block-button__link strong{font:600 2rem var(--vof-serif)}.vof-duration-selector .wp-block-button__link small{display:block;margin-top:4px;color:var(--vof-muted);font-size:.68rem}.vof-duration-selector .wp-block-button:nth-child(2) .wp-block-button__link{background:var(--vof-sage-light)}
.vof-duration-summary{display:grid;gap:8px;margin:0 0 52px}.vof-duration-summary>.wp-block-group{display:grid;grid-template-columns:minmax(145px,190px) 1fr;align-items:center;padding:13px 17px;border-radius:16px;background:var(--vof-paper)}.vof-duration-summary strong{font-size:.78rem}.vof-duration-summary p{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0!important}.vof-duration-summary a{display:inline-grid;place-items:center;min-width:42px;padding:6px 9px;border-radius:999px;background:var(--vof-sea-light);font-size:.7rem;text-decoration:none}.vof-duration-summary span{color:var(--vof-coral)}
.vof-itinerary-day{margin:64px 0 28px;padding:0;background:transparent}.vof-day-heading{display:grid;grid-template-columns:70px 1fr;gap:18px;align-items:center;margin-bottom:24px}.vof-day-heading__number{display:grid;place-items:center;width:68px;height:82px;border-radius:34px 34px 16px 16px;background:var(--vof-sea);color:#fff;font:600 1.75rem var(--vof-serif)}.vof-day-heading .vof-eyebrow{margin:0 0 4px}.vof-day-heading h3{margin:0;font-size:1.8rem}.vof-itinerary-day__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vof-itinerary-stop{min-width:0;padding:19px 20px;border-radius:20px;background:var(--vof-paper);box-shadow:var(--vof-shadow)}.vof-itinerary-stop__label{display:inline!important;margin:0!important;color:inherit!important;font:inherit!important;line-height:inherit!important}.vof-itinerary-stop h4{margin:7px 0;font-size:1.05rem}.vof-itinerary-stop p{margin:0!important;font-size:.82rem;line-height:1.55;color:var(--vof-muted)}.vof-route-nav{width:100%;max-width:none!important;margin:24px 0 62px;padding:15px 4px;border-top:1px solid var(--vof-sand);border-bottom:1px solid var(--vof-sand)}.vof-route-nav p{margin:0!important}.vof-route-nav a{text-decoration:none;font-size:.78rem;font-weight:700}
.vof-editorial-map{display:grid;grid-template-columns:minmax(190px,230px) minmax(0,1fr);gap:24px;margin:48px 0 70px;padding:24px;border-radius:30px;background:var(--vof-sea-light);color:var(--vof-ink);overflow:hidden}.vof-editorial-map__copy{align-self:center;padding:14px 2px 14px 12px}.vof-editorial-map h3{margin:8px 0 12px;color:var(--vof-ink);font-size:1.5rem}.vof-editorial-map p:not(.vof-eyebrow),.vof-editorial-map__link{font-size:.76rem;line-height:1.55}.vof-editorial-map__link{font-weight:700;text-decoration:none}.vof-editorial-map iframe{display:block;width:100%;min-height:310px;border:0;border-radius:22px;background:var(--vof-paper)}
.vof-comparator{margin:60px 0}.vof-comparator>h3{margin-bottom:24px}.vof-airport-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px!important;width:100%;max-width:none!important}.vof-airport-card{min-width:0;padding:23px 18px;border-radius:26px;background:var(--vof-paper);box-shadow:var(--vof-shadow)}.vof-airport-card__code{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:var(--vof-sea-light);color:var(--vof-sea);font-size:.72rem;font-weight:700}.vof-airport-card:nth-child(n+3) .vof-airport-card__code{background:var(--vof-coral-light);color:var(--vof-coral)}.vof-airport-card h4{margin:15px 0 7px;font:600 1rem var(--vof-sans)}.vof-airport-card p{margin:0 0 12px!important;font-size:.75rem;line-height:1.48;color:var(--vof-muted)}.vof-airport-card small{display:inline-block;padding:5px 9px;border-radius:999px;background:var(--vof-sage-light);color:var(--vof-sea);font-size:.6rem;font-weight:700}
.vof-mobility-cards,.vof-mobility-cards>.wp-block-group__inner-container{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px!important;width:100%;max-width:none!important}.vof-mobility-cards>.wp-block-group__inner-container{grid-column:1/-1}.vof-mobility-card{min-width:0;padding:23px;border-top:3px solid var(--vof-sea);border-radius:0 0 24px 24px;background:var(--vof-paper)}.vof-mobility-card__number{display:inline!important;margin:0!important;color:inherit!important;font:inherit!important;line-height:inherit!important}.vof-mobility-card h3{margin:8px 0;font-size:1.15rem}.vof-mobility-card p{margin:0!important;font-size:.76rem;line-height:1.5;color:var(--vof-muted)}
.vof-stay-profiles,.vof-stay-profiles>.wp-block-group__inner-container{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px!important;width:100%;max-width:none!important}.vof-stay-profiles{margin-top:30px}.vof-stay-profiles>.wp-block-group__inner-container{grid-column:1/-1}.vof-stay-profile{position:relative;min-width:0;padding:25px 21px;border-radius:28px;background:var(--vof-sand-light)}.vof-stay-profile--featured{background:var(--vof-sea);color:#fff;transform:translateY(-8px)}.vof-stay-profile__number{position:absolute;right:18px;top:16px;color:var(--vof-coral);font:600 1.2rem var(--vof-serif)}.vof-stay-profile h3{margin:8px 0 10px;font-size:1.2rem}.vof-stay-profile p:not(.vof-eyebrow){margin:0!important;font-size:.76rem;line-height:1.5;color:var(--vof-muted)}.vof-stay-profile--featured h3{color:#fff}.vof-stay-profile--featured .vof-eyebrow,.vof-stay-profile--featured .vof-stay-profile__number{color:#a9d1d8}.vof-stay-profile--featured p:not(.vof-eyebrow){color:#d7e6e8}
.vof-contextual-card{margin:44px 0;padding:31px 34px;border-radius:30px;background:var(--vof-sage-light)}.vof-contextual-card--sea{background:var(--vof-sea-light)}.vof-contextual-card--booking{background:var(--vof-sage-light)}.vof-contextual-card>h3{margin-top:0}.vof-contextual-card>p{max-width:600px}.vof-dynamic-cta{display:grid;grid-template-columns:50px minmax(0,1fr);gap:16px;align-items:start;margin-top:22px;padding:20px;border-radius:22px;background:var(--vof-paper)}.vof-dynamic-cta__icon{display:grid;place-items:center;width:50px;height:50px;border-radius:17px;background:var(--vof-sea-light)}.vof-dynamic-cta small,.vof-dynamic-cta strong{display:block}.vof-dynamic-cta small{font-size:.65rem;color:var(--vof-muted)}.vof-dynamic-cta strong{font-size:.95rem}.vof-dynamic-cta a{display:inline-block;margin-top:8px;font-size:.78rem;text-decoration:none}.vof-dynamic-cta .vof-disclosure{margin:10px 0 0!important}.vof-dynamic-cta--featured{background:var(--vof-sea);color:#fff}.vof-dynamic-cta--featured small,.vof-dynamic-cta--featured .vof-disclosure{color:#d7e6e8}.vof-dynamic-cta--featured a{color:#fff}.vof-dynamic-cta--compact{padding:16px}.vof-dynamic-cta--compact .vof-dynamic-cta__icon{width:42px;height:42px}
.vof-insurance-block{margin:60px 0;padding:38px;border-radius:36px;background:var(--vof-sand-light)}.vof-insurance-block>h3{margin-top:0}.vof-insurance-benefits{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px!important;padding:0!important;list-style:none!important}.vof-insurance-benefits li{padding:15px;border-radius:16px;background:var(--vof-paper);font-size:.76rem}.vof-insurance-banner{position:relative;display:block;margin-top:26px;overflow:hidden;border-radius:22px;background:var(--vof-sea)}.vof-insurance-banner img{display:block;width:100%;min-height:150px;max-height:230px;object-fit:cover}.vof-insurance-banner__cta{position:absolute;right:18px;bottom:16px;padding:10px 14px;border-radius:999px;background:var(--vof-paper);color:var(--vof-sea);font-size:.7rem;font-weight:700}.vof-insurance-block>.vof-dynamic-cta{margin-top:14px}
.vof-premium-map-demo{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.72fr);gap:34px;align-items:center;margin:62px 0;padding:38px;border-radius:38px 14px 38px 38px;background:var(--vof-sea-dark);color:#fff;overflow:hidden}.vof-premium-map-demo h3{margin:8px 0 12px;color:#fff;font-size:2rem}.vof-premium-map-demo p{color:#d7e6e8}.vof-premium-map-demo .vof-eyebrow{color:#a9d1d8}.vof-premium-map-demo__benefits{display:grid;gap:8px;padding:0!important;list-style:none!important}.vof-premium-map-demo__benefits li{padding-left:22px;font-size:.78rem}.vof-premium-map-demo__benefits li:before{content:'✓';margin-left:-22px;margin-right:10px;color:var(--vof-coral-light)}.vof-premium-map-demo__visual{position:relative}.vof-premium-map-demo__visual img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border:8px solid var(--vof-paper);border-radius:24px;transform:rotate(3deg);box-shadow:0 18px 35px rgba(0,0,0,.2)}.vof-premium-map-demo__badge{position:absolute;right:-8px;bottom:18px;padding:10px 13px;border-radius:999px;background:var(--vof-coral);color:#fff;font-size:.66rem;font-weight:700}.vof-premium-map-demo .wp-block-button__link{background:var(--vof-coral);color:#fff}
@media(max-width:880px){.vof-editorial{--vof-sticky-header-height:109px}.vof-airport-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vof-mobility-cards,.vof-mobility-cards>.wp-block-group__inner-container,.vof-stay-profiles,.vof-stay-profiles>.wp-block-group__inner-container{grid-template-columns:repeat(2,minmax(0,1fr))}.vof-stay-profile:last-child{grid-column:1/-1}.vof-premium-map-demo{grid-template-columns:minmax(0,1fr) 220px}}
@media(max-width:782px){.admin-bar .vof-editorial{--vof-admin-bar-height:46px}}
@media(max-width:600px){.vof-editorial{--vof-sticky-header-height:87px}.vof-duration-selector__buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.vof-duration-summary>.wp-block-group{display:block}.vof-duration-summary p{margin-top:8px!important}.vof-day-heading{grid-template-columns:60px 1fr;gap:14px}.vof-day-heading__number{width:58px;height:70px;font-size:1.5rem}.vof-day-heading h3{font-size:1.55rem}.vof-itinerary-day__grid,.vof-airport-grid,.vof-mobility-cards,.vof-mobility-cards>.wp-block-group__inner-container,.vof-stay-profiles,.vof-stay-profiles>.wp-block-group__inner-container,.vof-insurance-benefits{grid-template-columns:minmax(0,1fr)!important}.vof-stay-profile:last-child{grid-column:auto}.vof-stay-profile--featured{transform:none}.vof-route-nav{gap:10px}.vof-route-nav p{flex:1 1 100%}.vof-editorial-map{grid-template-columns:1fr;padding:18px}.vof-editorial-map__copy{padding:10px}.vof-editorial-map iframe{min-height:270px}.vof-airport-card{display:grid;grid-template-columns:48px 1fr;column-gap:14px}.vof-airport-card__code{grid-row:1/4}.vof-airport-card h4{margin:2px 0 5px}.vof-airport-card p{margin:0!important}.vof-airport-card small{justify-self:start;margin-top:8px}.vof-contextual-card,.vof-insurance-block{padding:28px 22px}.vof-dynamic-cta{grid-template-columns:42px minmax(0,1fr);padding:18px}.vof-dynamic-cta__icon{width:42px;height:42px}.vof-insurance-banner__cta{position:static;display:block;border-radius:0;text-align:center}.vof-premium-map-demo{grid-template-columns:1fr;padding:32px 24px}.vof-premium-map-demo__visual{max-width:230px;margin:auto}.vof-premium-map-demo h3{font-size:1.75rem}}

/* 0.2.2 — visual parity with the approved London editorial system. */
.vof-phase-two-section{margin:0 0 94px}
.vof-duration-selector__buttons{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.vof-duration-selector .wp-block-button__link{min-height:108px;padding:22px 14px 18px;transition:transform .2s,background .2s}
.vof-duration-selector .wp-block-button__link:hover{transform:translateY(-3px);background:var(--vof-sea-light)}
.vof-duration-selector .wp-block-button__link strong{font-size:2.1rem}
.vof-duration-selector .wp-block-button__link small{font-size:.62rem}
.vof-day-heading{grid-template-columns:90px minmax(0,1fr);gap:28px;align-items:start;margin-bottom:34px}
.vof-day-heading__number{width:82px;height:96px;border-radius:16px 42px 18px 18px;font-size:2.1rem}
.vof-day-heading h3{margin:7px 0 10px;font-size:2rem}
.vof-itinerary-day__grid,.vof-airport-grid,.vof-mobility-cards,.vof-stay-profiles{isolation:isolate}
.vof-itinerary-day__grid>.wp-block-group__inner-container,.vof-airport-grid>.wp-block-group__inner-container,.vof-mobility-cards>.wp-block-group__inner-container,.vof-stay-profiles>.wp-block-group__inner-container{display:contents!important}
.vof-itinerary-day__grid{gap:15px!important}
.vof-itinerary-stop{padding:24px;border-radius:26px}
.vof-route-nav{display:flex!important;align-items:center;justify-content:space-between;gap:18px;margin:30px 0 66px;padding:18px 0}
.vof-route-nav p{flex:0 1 auto}
.vof-route-nav a{display:inline-flex;align-items:center;min-height:42px;padding:10px 16px;border-radius:999px;background:var(--vof-sea-light)}
.vof-editorial-map{grid-template-columns:230px minmax(0,1fr);margin:38px 0 70px}
.vof-editorial-map iframe{height:310px;min-height:310px}
.vof-airport-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-auto-columns:0!important;grid-auto-flow:row!important}
.vof-airport-card{padding:24px 18px}
.vof-airport-card p{min-height:70px;font-size:.68rem}
.vof-airport-card small{font-size:.55rem}
.vof-mobility-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.vof-mobility-card{padding:25px}
.vof-mobility-card p{font-size:.72rem}
.vof-stay-profiles{grid-template-columns:repeat(3,minmax(0,1fr))!important;margin-top:34px}
.vof-stay-profile{padding:26px 22px}
.vof-stay-profile--featured{transform:translateY(-10px)}
.vof-stay-profile p:not(.vof-eyebrow){font-size:.72rem}
.vof-contextual-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 30px;align-items:end;padding:38px 40px;border-radius:38px 14px 38px 38px;overflow:hidden}
.vof-contextual-card>*:not(.vof-dynamic-cta){grid-column:1}
.vof-contextual-card>.vof-dynamic-cta{grid-column:2;grid-row:1/5;align-self:center;min-width:220px;margin:0}
.vof-contextual-card--booking{background:var(--vof-sage);color:#fff}
.vof-contextual-card--booking h3,.vof-contextual-card--booking .vof-eyebrow{color:#fff}
.vof-contextual-card--sea{background:var(--vof-sea);color:#fff}
.vof-contextual-card--sea h3,.vof-contextual-card--sea .vof-eyebrow{color:#fff}
.vof-contextual-card--booking>p:not(.vof-eyebrow),.vof-contextual-card--sea>p:not(.vof-eyebrow){color:rgba(255,255,255,.86)}
.vof-dynamic-cta{background:#fff;color:var(--vof-ink);box-shadow:0 12px 30px rgba(35,49,47,.12)}
.vof-dynamic-cta--featured{background:#fff;color:var(--vof-ink)}
.vof-dynamic-cta--featured small,.vof-dynamic-cta--featured .vof-disclosure{color:var(--vof-muted)}
.vof-dynamic-cta--featured a{color:var(--vof-sea)}
.vof-insurance-block{padding:38px;border-radius:36px}
.vof-insurance-benefits{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.vof-insurance-banner img{min-height:150px;max-height:none;aspect-ratio:auto}
.vof-faq summary{display:flex;justify-content:space-between;align-items:center;font-size:1.08rem}
.vof-faq summary:after{content:'+';color:var(--vof-coral);font-size:1.5rem;font-weight:500}
.vof-faq details[open] summary:after{content:'×'}
.vof-premium-map-demo{padding:42px;border-radius:38px 14px 38px 38px}

@media(max-width:1080px){
  .vof-airport-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .vof-airport-card p{min-height:0}
  .vof-contextual-card{grid-template-columns:1fr}
  .vof-contextual-card>.vof-dynamic-cta{grid-column:1;grid-row:auto;min-width:0;margin-top:16px}
}
@media(max-width:880px){
  .vof-duration-selector__buttons{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .vof-mobility-cards,.vof-stay-profiles{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .vof-stay-profile:last-child{grid-column:1/-1}
  .vof-stay-profile--featured{transform:none}
}
@media(max-width:600px){
  .vof-day-heading{grid-template-columns:64px minmax(0,1fr);gap:16px}
  .vof-day-heading__number{width:62px;height:76px;font-size:1.7rem}
  .vof-day-heading h3{font-size:1.65rem}
  .vof-itinerary-day__grid,.vof-airport-grid,.vof-mobility-cards,.vof-stay-profiles,.vof-insurance-benefits{grid-template-columns:minmax(0,1fr)!important}
  .vof-route-nav{align-items:stretch;flex-direction:column}
  .vof-route-nav p,.vof-route-nav a{width:100%}
  .vof-route-nav a{justify-content:center}
  .vof-editorial-map{grid-template-columns:1fr}
  .vof-stay-profile:last-child{grid-column:auto}
  .vof-contextual-card{display:block;padding:30px 25px}
  .vof-contextual-card>.vof-dynamic-cta{margin-top:22px}
  .vof-insurance-block{padding:28px 22px}
  .vof-premium-map-demo{padding:32px 24px}
}

/* ARTICLE-SYS-001 — shared editorial rhythm and migration components. */
.vof-editorial__content > :is(.article-section,.vof-itinerary-day,.vof-editorial-map,.vof-restaurant-card,.vof-accommodation-card,.vof-plan-trip){margin-block:clamp(3.5rem,7vw,6rem)}
.vof-editorial__content > :is(.article-section,.vof-itinerary-day,.vof-editorial-map,.vof-restaurant-card,.vof-accommodation-card,.vof-plan-trip) + :is(.article-section,.vof-itinerary-day,.vof-editorial-map,.vof-restaurant-card,.vof-accommodation-card,.vof-plan-trip){margin-top:clamp(4rem,8vw,7rem)}
.vof-editorial__content :is(h2,h3){text-wrap:balance}
.vof-editorial__content h2{margin-bottom:clamp(1.25rem,2.5vw,2rem)}
.vof-editorial__content h3{margin-bottom:clamp(.85rem,1.8vw,1.25rem)}
.vof-editorial__content :is(figure,.wp-block-image,.wp-block-gallery){margin-block:clamp(2rem,4vw,3.75rem)}
.vof-editorial__content :is(.vof-tip,.vof-contextual-card,.vof-insurance-block){margin-block:clamp(2.5rem,5vw,4.5rem)}

.vof-itinerary-day{position:relative;padding-top:1.25rem;border-top:1px solid var(--vof-sand)}
.vof-day-heading__subtitle{margin:.45rem 0 0!important;color:var(--vof-muted);font-size:.86rem;line-height:1.55}
.vof-day-heading__number{box-shadow:0 12px 28px rgba(21,78,80,.16)}

.vof-editorial-map{width:min(1040px,calc(100vw - 48px));max-width:none!important;margin-left:50%;transform:translateX(-50%);grid-template-columns:minmax(180px,.32fr) minmax(0,1fr);padding:clamp(1.25rem,3vw,2rem)}
.vof-editorial-map__media{min-width:0;overflow:hidden;border-radius:22px;background:var(--vof-paper)}
.vof-editorial-map :is(iframe,.cmplz-placeholder-element,.vof-consent-placeholder){width:100%;min-height:clamp(360px,45vw,560px)}

.vof-restaurant-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem!important}
.vof-restaurant-card{position:relative;margin:0!important;padding:clamp(1.4rem,3vw,2rem);border:1px solid rgba(21,78,80,.13);border-radius:24px;background:var(--vof-paper);box-shadow:0 12px 34px rgba(35,49,47,.06)}
.vof-restaurant-card__badge{display:inline-flex;margin:0 0 .85rem!important;padding:.35rem .6rem;border-radius:999px;background:var(--vof-coral-light);color:var(--vof-coral);font-size:.62rem!important;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.vof-restaurant-card h3{margin:0 0 .35rem!important;font-size:clamp(1.35rem,2.3vw,1.8rem)}
.vof-restaurant-card__meta{margin:0 0 1rem!important;color:var(--vof-sea);font-size:.76rem!important;font-weight:700}
.vof-restaurant-card > p:last-child{margin-bottom:0!important;color:var(--vof-muted);font-size:.9rem;line-height:1.65}

.vof-accommodation-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem!important}
.vof-accommodation-card{display:flex;flex-direction:column;margin:0!important;padding:clamp(1.4rem,2.4vw,1.8rem);border-radius:26px;background:var(--vof-sand-light)}
.vof-accommodation-card:nth-child(2){background:var(--vof-sage-light)}
.vof-accommodation-card h3{margin:.2rem 0!important;font-size:1.35rem}
.vof-accommodation-card__location{margin:.2rem 0 1rem!important;color:var(--vof-coral);font-size:.72rem!important;font-weight:800;text-transform:uppercase}
.vof-accommodation-card p:not(.vof-eyebrow):not(.vof-accommodation-card__location){font-size:.82rem;line-height:1.55}
.vof-accommodation-card .vof-dynamic-cta{margin-top:auto}

.vof-plan-trip{padding:clamp(1.6rem,4vw,2.75rem);border-radius:30px;background:var(--vof-sea-light)}
.vof-plan-trip h3{margin:.25rem 0 .7rem!important}
.vof-plan-trip__links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem!important;margin-top:1.5rem}
.vof-plan-trip .vof-dynamic-cta{margin:0;min-width:0}
.vof-plan-trip .vof-dynamic-cta__icon,.vof-affiliate__icon{font-size:.72rem;font-weight:800;line-height:1}

.vof-toc{max-height:min(34rem,70vh);overflow:auto;scrollbar-width:thin}
.vof-toc__list{align-items:start}

@media(max-width:880px){
  .vof-accommodation-grid{grid-template-columns:1fr}
  .vof-restaurant-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .vof-editorial__content > :is(.article-section,.vof-itinerary-day,.vof-editorial-map,.vof-restaurant-card,.vof-accommodation-card,.vof-plan-trip){margin-block:3.25rem}
  .vof-editorial-map{width:100%;margin-left:0;transform:none;grid-template-columns:1fr;padding:1rem;border-radius:24px}
  .vof-editorial-map :is(iframe,.cmplz-placeholder-element,.vof-consent-placeholder){min-height:300px}
  .vof-plan-trip__links{grid-template-columns:1fr}
  .vof-toc{max-height:28rem}
}

/* 0.2.5 — WordPress renders constrained Group blocks with one structural
 * .wp-block-group__inner-container. These selected component wrappers carry
 * no visual state of their own: backgrounds, padding and pseudo-elements stay
 * on the named component. Flatten only this allow-list so the real editorial
 * blocks become the grid/flex items. */
.vof-editorial :is(
  .vof-duration-selector,
  .vof-duration-summary,
  .vof-day-heading,
  .vof-itinerary-day__grid,
  .vof-route-nav,
  .vof-editorial-map,
  .vof-airport-grid,
  .vof-mobility-cards,
  .vof-stay-profiles,
  .vof-contextual-card,
  .vof-dynamic-cta,
  .vof-premium-map-demo,
  .vof-timeline,
  .vof-travel-tips,
  .duration-selector,
  .cumulative-routes,
  .editorial-note,
  .route-map,
  .day-heading,
  .route-line,
  .compact-stops,
  .photo-tip,
  .with-photo,
  .photo-pair,
  .affiliate-card,
  .airport-compare,
  .mobility-grid,
  .requirements,
  .useful-links,
  .stay-profiles,
  .booking-card,
  .contextual-flight,
  .insurance-banner
) > .wp-block-group__inner-container {
  display: contents !important;
}

/* A cumulative row is itself a Group block inside the component grid. */
.vof-editorial :is(.vof-duration-summary,.cumulative-routes)
  > .wp-block-group__inner-container
  > .wp-block-group
  > .wp-block-group__inner-container {
  display: contents !important;
}

/* Preserve rules that intentionally target the real first-level component
 * items; the Gutenberg wrapper remains present in the DOM even when flattened. */
.vof-duration-summary > .wp-block-group__inner-container > .wp-block-group {
  display: grid;
  grid-template-columns: minmax(145px,190px) 1fr;
  align-items: center;
  padding: 13px 17px;
  border-radius: 16px;
  background: var(--vof-paper);
}
.vof-contextual-card > .wp-block-group__inner-container > *:not(.vof-dynamic-cta) { grid-column: 1; }
.vof-contextual-card > .wp-block-group__inner-container > .vof-dynamic-cta {
  grid-column: 2;
  grid-row: 1 / 5;
  align-self: center;
  min-width: 220px;
  margin: 0;
}

@media(max-width:1080px){
  .vof-contextual-card > .wp-block-group__inner-container > .vof-dynamic-cta {
    grid-column: 1;
    grid-row: auto;
    min-width: 0;
    margin-top: 16px;
  }
}
@media(max-width:600px){
  .vof-duration-summary > .wp-block-group__inner-container > .wp-block-group { display: block; }
  .vof-contextual-card > .wp-block-group__inner-container > .vof-dynamic-cta { margin-top: 22px; }
}

/* Gutenberg-valid component geometry. Editable content uses native blocks;
 * visual details remain scoped to the named article components. */
.vof-date-card{
  display:block;
  height:100%;
  box-sizing:border-box;
  padding:24px 18px;
  border-radius:26px;
  background:#fffdf8;
  box-shadow:0 18px 50px rgba(31,57,54,.08);
}
.vof-date-card .vof-airport-card__code{
  width:100%;
  height:38px;
  min-height:38px;
  box-sizing:border-box;
}
.vof-date-card .vof-date-card__title{
  width:100%;
  max-width:none;
  margin:18px 0 10px;
  font-size:16px;
  line-height:1.25;
}
.vof-date-card .vof-date-card__detail{
  width:100%;
  max-width:none;
  margin:0!important;
  font-size:13px;
  line-height:1.5;
}
.vof-airports-editorial{margin-bottom:32px}
.vof-nearby-grid .wp-block-image img{
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
}

/* ARTICLE-SYS-002 — Costa Blanca component laboratory (RC preview only). */
.postid-18588 .vof-editorial-map{
  display:block;
  width:min(1040px,calc(100vw - 48px));
  margin-block:clamp(4.5rem,8vw,7rem);
  padding:0;
  border:1px solid rgba(21,78,80,.14);
  border-radius:30px;
  background:var(--vof-paper);
  box-shadow:0 18px 48px rgba(35,49,47,.07);
  overflow:hidden;
}
.postid-18588 .vof-editorial-map__copy{
	padding:clamp(.9rem,1.8vw,1.25rem) clamp(1.1rem,2.7vw,2rem);
	background:var(--vof-sea-light);
}
.postid-18588 .vof-editorial-map__copy .vof-eyebrow{margin-bottom:.3rem!important}
.postid-18588 .vof-editorial-map__copy h3{margin:.2rem 0 .35rem;font-size:clamp(1.45rem,2.5vw,2rem)}
.postid-18588 .vof-editorial-map__copy p:last-child{max-width:680px;margin-bottom:0!important}
.postid-18588 .vof-editorial-map__media{border-radius:0;background:var(--vof-paper)}
.postid-18588 .vof-editorial-map :is(iframe,.cmplz-placeholder-element,.vof-consent-placeholder){
  display:block;
  width:100%;
  min-height:clamp(480px,56vw,650px);
  border:0;
  border-radius:0;
}

.postid-18588 .vof-accommodation-grid,
.postid-18588 .vof-restaurant-grid,
.postid-18588 .vof-plan-trip__links{display:block!important;width:100%;max-width:none!important}
.postid-18588 .vof-accommodation-grid>.wp-block-group__inner-container,
.postid-18588 .vof-restaurant-grid>.wp-block-group__inner-container,
.postid-18588 .vof-plan-trip__links>.wp-block-group__inner-container{display:grid!important;width:100%;max-width:none!important}
.postid-18588 .vof-accommodation-grid>.wp-block-group__inner-container{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.postid-18588 .vof-accommodation-card{min-height:100%;border:1px solid rgba(21,78,80,.1);box-shadow:0 12px 34px rgba(35,49,47,.05)}
.postid-18588 .vof-accommodation-card>.wp-block-group__inner-container{display:flex;flex-direction:column;min-height:100%}
.postid-18588 .vof-accommodation-card__cta{margin:auto 0 0!important;padding-top:1rem;border-top:1px solid rgba(21,78,80,.13)}
.postid-18588 .vof-accommodation-card__cta a{display:inline-flex;align-items:center;min-height:42px;text-decoration:none;font-size:.78rem;font-weight:800}

.postid-18588 .vof-restaurant-grid{margin-top:clamp(2rem,4vw,3rem)}
.postid-18588 .vof-restaurant-grid>.wp-block-group__inner-container{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.postid-18588 .vof-restaurant-card{min-height:100%;padding:clamp(1.1rem,2vw,1.45rem);border-top:4px solid var(--vof-coral);border-radius:8px 26px 26px 26px}
.postid-18588 .vof-restaurant-card>.wp-block-group__inner-container{display:flex;flex-direction:column;min-height:100%}
.postid-18588 .vof-restaurant-card__badge{margin-bottom:.55rem!important}
.postid-18588 .vof-restaurant-card h3{margin-bottom:.2rem!important}
.postid-18588 .vof-restaurant-card__meta{margin:0 0 .7rem!important;color:var(--vof-sea);font-size:.76rem!important;font-weight:800;letter-spacing:.035em}

.postid-18588 .vof-plan-trip{width:100%;max-width:none!important;margin-top:clamp(5.5rem,9vw,8rem)!important;margin-bottom:clamp(5rem,8vw,7rem)!important;padding:clamp(1.5rem,3vw,2.35rem);background:var(--vof-sea-light)}
.postid-18588 .vof-plan-trip>.wp-block-group__inner-container{display:block!important}
.postid-18588 .vof-plan-trip__links>.wp-block-group__inner-container{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:.85rem}
.postid-18588 .vof-plan-trip .vof-dynamic-cta{height:100%;min-height:132px;margin:0;padding:1.1rem 1.2rem;grid-template-columns:42px minmax(0,1fr)}
.postid-18588 .vof-plan-trip .vof-dynamic-cta>div{display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.postid-18588 .vof-plan-trip .vof-dynamic-cta strong{white-space:nowrap;font-size:clamp(.9rem,1.5vw,1.05rem)}
.postid-18588 .vof-plan-trip .vof-dynamic-cta a{margin-top:auto;padding-top:.55rem;font-weight:800}
.postid-18588 .vof-plan-trip .vof-dynamic-cta .vof-disclosure{display:none}
.postid-18588 .vof-plan-trip>.wp-block-group__inner-container>p:last-child{max-width:760px;margin:1.4rem 0 0!important;color:var(--vof-muted);font-size:.72rem;line-height:1.55}
.postid-18588 .vof-contextual-card--car,
.postid-18588 .vof-contextual-card--insurance{margin-block:clamp(3rem,6vw,5rem)}

@media(max-width:1080px){
  .postid-18588 .vof-accommodation-grid>.wp-block-group__inner-container{grid-template-columns:repeat(2,minmax(0,1fr))}
  .postid-18588 .vof-accommodation-card:last-child{grid-column:1/-1}
}
@media(max-width:700px){
  .postid-18588 .vof-editorial-map{width:100%;margin-left:0;transform:none;border-radius:24px}
  .postid-18588 .vof-editorial-map :is(iframe,.cmplz-placeholder-element,.vof-consent-placeholder){min-height:380px}
  .postid-18588 .vof-accommodation-grid>.wp-block-group__inner-container,
  .postid-18588 .vof-restaurant-grid>.wp-block-group__inner-container,
  .postid-18588 .vof-plan-trip__links>.wp-block-group__inner-container{grid-template-columns:minmax(0,1fr)}
  .postid-18588 .vof-accommodation-card:last-child{grid-column:auto}
  .postid-18588 .vof-plan-trip{padding:1.35rem;border-radius:24px}
  .postid-18588 .vof-plan-trip .vof-dynamic-cta{min-height:0}
}
