/* Structural implementation only. Exact locked visual-system token mapping belongs to the fidelity pass. */
:root {
  --ec-shell: 76rem;
  --ec-gutter: clamp(1rem, 4vw, 2rem);
  --ec-space-1: .5rem;
  --ec-space-2: 1rem;
  --ec-space-3: 1.5rem;
  --ec-space-4: 2.5rem;
  --ec-space-5: 4rem;
  --ec-radius-structural: .75rem;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; }
a { color: inherit; }
button, input, select { font: inherit; }
button, input, select, a { min-height: 2.75rem; }
img { display: block; max-width: 100%; height: auto; }
.ec-shell { width: min(100% - (2 * var(--ec-gutter)), var(--ec-shell)); margin-inline: auto; }
.ec-skip-link { position: fixed; inset-inline-start: 1rem; inset-block-start: -5rem; z-index: 1000; padding: .75rem 1rem; background: Canvas; color: CanvasText; }
.ec-skip-link:focus { inset-block-start: 1rem; }
.ec-site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--ec-space-2); min-height: 4.5rem; }
.ec-brand { display: inline-flex; flex-direction: column; justify-content: center; min-height: 2.75rem; text-decoration: none; line-height: 1; }
.ec-brand__by { font-size: .75em; margin-top: .35rem; }
.ec-primary-nav ul, .ec-utility-nav ul { display: flex; align-items: center; gap: var(--ec-space-2); padding: 0; margin: 0; list-style: none; }
.ec-primary-nav a, .ec-utility-nav a { display: inline-flex; align-items: center; text-decoration: none; }
.ec-menu-toggle { display: none; }
.ec-main { min-height: 65vh; }
.ec-hero, .ec-page-header { padding-block: var(--ec-space-5); }
.ec-hero__content, .ec-page-header { display: grid; gap: var(--ec-space-2); }
.ec-hero h1, .ec-page-header h1, .ec-entity-hero h1 { margin: 0; max-width: 20ch; line-height: 1.05; }
.ec-kicker { margin: 0; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }
.ec-dek { max-width: 52rem; font-size: 1.125rem; }
.ec-section { padding-block: var(--ec-space-4); }
.ec-section--cinematic { padding-block: var(--ec-space-5); }
.ec-section__heading { display: flex; align-items: end; justify-content: space-between; gap: var(--ec-space-2); margin-bottom: var(--ec-space-3); }
.ec-content-slot:empty { min-height: 1px; }
.ec-category-shortcuts, .ec-tabs, .ec-actions, .ec-discover__utilities { display: flex; flex-wrap: wrap; gap: var(--ec-space-1); }
.ec-category-shortcuts a, .ec-tabs button, .ec-actions button, .ec-discover__utilities button { display: inline-flex; align-items: center; padding-inline: 1rem; }
.ec-search-form { display: grid; gap: var(--ec-space-1); width: min(100%, 52rem); }
.ec-search-form__row { display: grid; grid-template-columns: 1fr auto; }
.ec-search-form input { width: 100%; }
.ec-filter-bar { display: grid; gap: var(--ec-space-2); grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; }
.ec-filter-bar label { display: grid; gap: .35rem; }
.ec-filter-bar .ec-checkbox { display: flex; align-items: center; min-height: 2.75rem; }
.ec-discover, .ec-events-discovery, .ec-search-page { display: grid; gap: var(--ec-space-3); padding-bottom: var(--ec-space-5); }
.ec-results { display: grid; gap: var(--ec-space-2); }
.ec-search-groups { display: grid; gap: var(--ec-space-4); }
.ec-entity-hero { position: relative; display: grid; align-items: end; min-height: 18rem; }
.ec-entity-hero__media { margin: 0; }
.ec-entity-hero__content { padding-block: var(--ec-space-4); display: grid; gap: var(--ec-space-2); }
.ec-entity-body { display: grid; grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr); gap: var(--ec-space-4); padding-block: var(--ec-space-4); }
.ec-prose { max-width: 48rem; }
.ec-empty-state { padding-block: var(--ec-space-5); }
.ec-site-footer { margin-top: var(--ec-space-5); }
@media (max-width: 62rem) {
  .ec-menu-toggle { display: inline-flex; align-items: center; }
  .ec-primary-nav { display: none; position: absolute; inset-inline: var(--ec-gutter); inset-block-start: 4.5rem; z-index: 50; background: Canvas; padding: 1rem; }
  .ec-primary-nav[data-open="true"] { display: block; }
  .ec-primary-nav ul { align-items: stretch; flex-direction: column; }
  .ec-utility-nav li:not(:first-child):not(:last-child) { display: none; }
  .ec-filter-bar { grid-template-columns: 1fr 1fr; }
  .ec-entity-body { grid-template-columns: 1fr; }
}
@media (max-width: 40rem) {
  .ec-utility-nav { display: none; }
  .ec-filter-bar { grid-template-columns: 1fr; }
  .ec-search-form__row { grid-template-columns: 1fr; }
  .ec-site-header__inner { min-height: 4rem; }
  .ec-primary-nav { inset-block-start: 4rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.001ms !important; animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; }
}
.ec-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ec-space-3); }
.ec-card { min-width: 0; }
.ec-card__link { display: grid; text-decoration: none; min-height: 100%; }
.ec-card__media { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.ec-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ec-card__body { display: grid; align-content: start; gap: var(--ec-space-1); padding-block: var(--ec-space-2); }
.ec-card__meta, .ec-card__signals { display: flex; flex-wrap: wrap; gap: var(--ec-space-1); align-items: center; }
.ec-card__title { margin: 0; line-height: 1.15; }
.ec-card__body p { margin: 0; }
.ec-card__actions { display: flex; flex-wrap: wrap; gap: var(--ec-space-1); padding-bottom: var(--ec-space-2); }
.ec-signal { display: inline-flex; align-items: center; min-height: 1.75rem; }
.ec-filter-dialog { width: min(42rem, calc(100% - 2rem)); max-height: 85vh; padding: var(--ec-space-3); }
.ec-filter-dialog__header { display: flex; justify-content: space-between; align-items: center; gap: var(--ec-space-2); }
.ec-filter-dialog fieldset { display: grid; gap: var(--ec-space-1); margin-block: var(--ec-space-3); }
.ec-filter-dialog__note { max-width: 48ch; }
.ec-near-me-explainer { max-width: 52ch; margin-block: 0; }
@media (max-width: 62rem) { .ec-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 40rem) {
  .ec-card-grid { grid-template-columns: 1fr; }
  .ec-filter-dialog[open] { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; border: 0; }
}

/* Public detail structure. Exact visual tokens remain bound to the locked visual handoff later. */
.ec-status-alert{border-block:1px solid currentColor;padding:.75rem 0;font-size:.95rem}.ec-status-alert strong{margin-inline-end:.5rem}.ec-actions--entity{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.ec-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.7rem 1rem;text-decoration:none;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;cursor:pointer}.ec-button--primary{font-weight:700}.ec-entity-body{display:grid;gap:2rem;padding-block:2rem}.ec-structured-content{order:0}.ec-prose{order:1;max-width:72ch}.ec-fact-list{display:grid;gap:0;margin:0}.ec-fact{display:grid;grid-template-columns:minmax(7.5rem,.8fr) minmax(0,1.2fr);gap:1rem;padding:.7rem 0;border-bottom:1px solid rgba(0,0,0,.12)}.ec-fact dt{font-weight:600}.ec-fact dd{margin:0}.ec-secondary-ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.ec-occurrences ul{padding-inline-start:1.2rem}.ec-occurrences li+li{margin-top:.35rem}@media (min-width:56rem){.ec-entity-body{grid-template-columns:minmax(16rem,.72fr) minmax(0,1.55fr);align-items:start}.ec-structured-content{position:sticky;top:6rem}.ec-prose{max-width:76ch}}

/* Saved / interaction states. Structural only; exact locked visual tokens map in fidelity pass. */
.ec-saved-page{display:grid;gap:var(--ec-space-3);padding-bottom:var(--ec-space-5)}
.ec-account-hint{max-width:52ch;margin:0}
[data-ec-save].is-saved,[data-ec-saved-filter].is-active{font-weight:700}
[data-ec-save][disabled],[data-ec-add-trip][disabled],[data-ec-auth-intent][disabled]{cursor:wait;opacity:.65}
.ec-empty-state--saved{padding-block:var(--ec-space-4)}
.ec-sr-status{position:fixed!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Trip planner structural shell. */
.ec-trips-app{display:grid;gap:var(--ec-space-4);padding-bottom:var(--ec-space-5)}
.ec-trip-intent:not(:empty){padding:var(--ec-space-2);border:1px solid currentColor}
.ec-trip-create,.ec-trip-edit{display:grid;gap:var(--ec-space-2);max-width:46rem}
.ec-trip-create label,.ec-trip-edit label,.ec-trip-item__form label,.ec-trip-share label{display:grid;gap:.35rem}
.ec-trip-create input,.ec-trip-edit input,.ec-trip-edit textarea,.ec-trip-item__form input,.ec-trip-item__form select,.ec-trip-item__form textarea,.ec-trip-share input{width:100%;padding:.55rem .65rem}
.ec-trip-create__dates,.ec-trip-edit__dates{display:grid;grid-template-columns:1fr 1fr;gap:var(--ec-space-2)}
.ec-trip-workspace{display:grid;grid-template-columns:minmax(14rem,.65fr) minmax(0,1.75fr);gap:var(--ec-space-4);align-items:start}
.ec-trip-list{display:grid;gap:var(--ec-space-2)}
.ec-trip-summary{padding:var(--ec-space-2) 0;border-bottom:1px solid rgba(0,0,0,.12)}
.ec-trip-summary[data-active=true]{border-inline-start:3px solid currentColor;padding-inline-start:var(--ec-space-2)}
.ec-trip-summary h3,.ec-trip-summary p{margin-block:0 .5rem}
.ec-trip-summary__status{font-weight:700}
.ec-trip-detail{display:grid;gap:var(--ec-space-4);min-width:0}
.ec-trip-detail__header,.ec-trip-edit,.ec-trip-share{padding-bottom:var(--ec-space-3);border-bottom:1px solid rgba(0,0,0,.16)}
.ec-trip-edit h3,.ec-trip-share h3{margin:0}
.ec-trip-share{display:grid;gap:var(--ec-space-2)}
.ec-trip-share p{margin:0;max-width:62ch}
.ec-trip-share__status{font-weight:700}
.ec-trip-day{display:grid;gap:var(--ec-space-2)}
.ec-trip-day h3{margin:0}
.ec-trip-day__empty{margin:0}
.ec-trip-item{display:grid;grid-template-columns:minmax(12rem,.9fr) minmax(18rem,1.35fr) minmax(8rem,.45fr);gap:var(--ec-space-2);align-items:start;padding:var(--ec-space-2) 0;border-bottom:1px solid rgba(0,0,0,.12)}
.ec-trip-item__title{min-height:auto;font-weight:700}
.ec-trip-item__form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ec-space-1)}
.ec-trip-item__note-field{grid-column:1/-1}
.ec-trip-item__form>button{justify-self:start}
.ec-trip-item__actions{display:grid;align-content:start}
.ec-trip-item__actions button{width:100%}
@media (max-width:64rem){.ec-trip-item{grid-template-columns:minmax(0,1fr)}.ec-trip-item__actions{display:flex;flex-wrap:wrap}.ec-trip-item__actions button{width:auto}}
@media (max-width:48rem){.ec-trip-workspace{grid-template-columns:1fr}.ec-trip-create__dates,.ec-trip-edit__dates,.ec-trip-item__form{grid-template-columns:1fr}.ec-trip-item__note-field{grid-column:auto}.ec-trip-item__actions{display:grid}.ec-trip-item__actions button{width:100%}}

.ec-destination-highlights { margin-block: clamp(2rem, 5vw, 4.5rem); }
.ec-destination-highlights .ec-section-heading { max-width: 44rem; margin-bottom: 1.25rem; }
.ec-destination-highlights .ec-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.ec-card--destination-place { min-height: 12rem; }
.ec-card--destination-place .ec-card__link { display: block; height: 100%; padding: 1.25rem; color: inherit; text-decoration: none; }
.ec-card--destination-place h3 { margin: .35rem 0 .6rem; }

/* Secure partner profile preview. Uses the same Place renderer without traveler actions. */
.ec-site-header--private{border-bottom:1px solid rgba(0,0,0,.14)}
.ec-private-label{display:inline-flex;align-items:center;min-height:2rem;padding:.25rem .75rem;border:1px solid currentColor;border-radius:999px;font-size:.85rem;font-weight:700}
.ec-private-preview-banner{padding-block:clamp(2rem,5vw,4rem);border-bottom:1px solid rgba(0,0,0,.14)}
.ec-private-preview-banner__inner{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(14rem,.55fr);gap:var(--ec-space-4);align-items:start}
.ec-private-preview-banner h1{margin:.4rem 0 1rem;max-width:22ch;line-height:1.05}
.ec-private-preview-banner p{max-width:62ch}
.ec-private-preview-meta{margin:0;display:grid;gap:.75rem}
.ec-private-preview-meta div{padding:.75rem 0;border-bottom:1px solid rgba(0,0,0,.12)}
.ec-private-preview-meta dt{font-size:.85rem;font-weight:700}
.ec-private-preview-meta dd{margin:.2rem 0 0}
.ec-private-preview-unavailable{padding-block:var(--ec-space-5);max-width:52rem}
.ec-partner-notice{margin-block:1.25rem;padding:1rem;border:1px solid currentColor}
.ec-partner-notice p{margin:0}
.ec-entity--partner-preview .ec-entity-body{padding-bottom:var(--ec-space-5)}
.ec-partner-feedback{margin-block:var(--ec-space-4);padding-block:var(--ec-space-4);border-top:1px solid rgba(0,0,0,.16)}
.ec-partner-feedback h2{margin:.4rem 0 1.25rem}
.ec-partner-feedback__forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ec-space-3)}
.ec-partner-feedback__form{display:grid;align-content:start;gap:.85rem;padding:var(--ec-space-3);border:1px solid rgba(0,0,0,.18)}
.ec-partner-feedback__form p{margin:0}
.ec-partner-feedback__form label{display:block}
.ec-partner-feedback__form textarea{width:100%;font:inherit;padding:.75rem;resize:vertical}
.ec-partner-feedback__form .ec-button{justify-self:start}
.ec-partner-feedback__complete{padding:1rem;border:1px solid currentColor}
.ec-partner-feedback blockquote{margin:1rem 0 0;padding-inline-start:1rem;border-inline-start:3px solid currentColor;max-width:60ch}
@media (max-width:48rem){.ec-private-preview-banner__inner,.ec-partner-feedback__forms{grid-template-columns:1fr}.ec-private-label{font-size:.75rem}}

/* Partner Home — four-question status/action surface, never a CMS dashboard. */
.ec-partner-header-actions{display:flex;align-items:center;gap:1rem}.ec-partner-header-actions a{color:inherit}.ec-partner-home{display:grid;gap:var(--ec-space-4);padding-block:clamp(2rem,5vw,4rem)}.ec-partner-home__intro{max-width:64ch}.ec-partner-home__intro h1{margin:.4rem 0 1rem}.ec-partner-account{display:grid;gap:var(--ec-space-3)}.ec-partner-account>h2{margin:0}.ec-partner-panel{padding:clamp(1.1rem,3vw,1.8rem);border:1px solid rgba(0,0,0,.16);display:grid;gap:1rem}.ec-partner-panel--action{border-width:2px}.ec-partner-panel h2,.ec-partner-panel h3,.ec-partner-panel p{margin:0}.ec-partner-panel__heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.ec-partner-status{display:inline-flex;align-items:center;min-height:1.8rem;padding:.2rem .65rem;border:1px solid currentColor;border-radius:999px;font-size:.84rem;font-weight:700}.ec-partner-actions{display:flex;flex-wrap:wrap;gap:.65rem}.ec-button--muted[aria-disabled=true]{opacity:.62;cursor:default}.ec-partner-action-list{display:grid;gap:.75rem;list-style:none;padding:0;margin:0}.ec-partner-action-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-top:1px solid rgba(0,0,0,.12)}.ec-partner-action-list li div{display:grid;gap:.2rem}.ec-partner-action-list li span{font-size:.9rem}.ec-partner-campaign-list{display:grid;gap:.25rem}.ec-partner-campaign{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid rgba(0,0,0,.12)}.ec-partner-campaign>div{display:grid;gap:.45rem}.ec-partner-term{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0}.ec-partner-term div{padding:.85rem 0;border-top:1px solid rgba(0,0,0,.12)}.ec-partner-term dt{font-size:.84rem;font-weight:700}.ec-partner-term dd{margin:.2rem 0 0}.ec-partner-home--unavailable{max-width:54rem}@media(max-width:48rem){.ec-partner-action-list li,.ec-partner-campaign{align-items:flex-start;flex-direction:column}.ec-partner-term{grid-template-columns:1fr}.ec-partner-actions .ec-button{width:100%}.ec-partner-header-actions{gap:.6rem}}

/* Partner Quick Update — safe operational facts only. */
.ec-partner-quick-update{display:grid;gap:var(--ec-space-3);padding-block:clamp(2rem,5vw,4rem);max-width:58rem}.ec-quick-form{display:grid;gap:var(--ec-space-3)}.ec-quick-form fieldset{margin:0}.ec-quick-form legend{font-size:1.2rem;font-weight:700;padding:0 .35rem}.ec-quick-form label{display:grid;gap:.35rem}.ec-quick-form input,.ec-quick-form select{width:100%;padding:.55rem .65rem}.ec-quick-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ec-quick-help{font-size:.92rem}.ec-hours-grid{display:grid;gap:.5rem}.ec-hours-row{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(7rem,.7fr) auto minmax(7rem,.7fr);gap:.6rem;align-items:center}.ec-quick-boundary{padding:1rem;border-inline-start:3px solid currentColor}.ec-quick-boundary p{margin:.35rem 0 0}.ec-quick-notice{padding:1rem;border:1px solid currentColor}.ec-quick-notice--success{border-width:2px}@media(max-width:40rem){.ec-quick-row{grid-template-columns:1fr}.ec-hours-row{grid-template-columns:1fr 1fr}.ec-hours-row strong{grid-column:1/-1}.ec-hours-row>span{display:none}.ec-partner-quick-update .ec-partner-actions{display:grid}}

/* Partner Request a Change — concierge request, not a CMS editor. */
.ec-partner-request-change{display:grid;gap:var(--ec-space-3);padding-block:clamp(2rem,5vw,4rem);max-width:58rem}.ec-change-form{display:grid;gap:1.25rem}.ec-change-form fieldset{border:0;padding:0;margin:0}.ec-change-form legend{font-weight:700;margin-bottom:.65rem}.ec-change-form textarea,.ec-change-form input[type=file]{width:100%;margin-top:.4rem}.ec-change-chips{display:flex;flex-wrap:wrap;gap:.55rem}.ec-change-chips label{position:relative}.ec-change-chips input{position:absolute;opacity:0;pointer-events:none}.ec-change-chips span{display:inline-flex;align-items:center;min-height:44px;padding:.6rem .9rem;border:1px solid currentColor;cursor:pointer}.ec-change-chips input:checked+span{border-width:2px;font-weight:700}.ec-change-chips input:focus-visible+span{outline:2px solid currentColor;outline-offset:2px}.ec-change-history{display:grid;gap:.8rem}.ec-change-history article{padding-block:.8rem;border-top:1px solid rgba(0,0,0,.12)}.ec-change-history article p{margin:.45rem 0}

/* B05 Partner campaign materials */
.ec-campaign-materials .ec-partner-panel{max-width:820px}.ec-campaign-materials textarea{width:100%;max-width:720px}.ec-campaign-materials input[type=file]{display:block;margin-top:.6rem}.ec-material-list{padding-left:1.2rem}.ec-partner-readback{margin:1.25rem 0;padding:1rem;border:1px solid currentColor;border-radius:12px}.ec-help{font-size:.92rem;opacity:.75}
.ec-campaign-preview__media{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.ec-campaign-preview__media figure{margin:0}.ec-campaign-preview__media img,.ec-campaign-preview__media video{display:block;width:100%;max-height:34rem;object-fit:contain;background:#f3f3f1}.ec-campaign-preview__platform{padding:1rem 0;border-top:1px solid rgba(0,0,0,.12)}.ec-campaign-preview__platform h3,.ec-campaign-preview__platform p{margin:.25rem 0}.ec-campaign-preview textarea,.ec-campaign-preview input[type=email]{width:100%;max-width:48rem}
.ec-campaign-report__publications{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.ec-campaign-report__publications article{padding:1rem 0;border-top:1px solid rgba(0,0,0,.12)}.ec-campaign-report__publications h3,.ec-campaign-report__publications p{margin:.35rem 0}

/* Trip warnings and owner print/PDF renderer. */
.ec-trip-detail__header{display:grid;gap:var(--ec-space-1)}
.ec-trip-detail__header h2,.ec-trip-detail__header p{margin:0}
.ec-trip-item__content{display:grid;gap:.25rem;min-width:0}
.ec-trip-item__destination{margin:0;font-size:.9rem}
.ec-trip-warnings{margin:.35rem 0 0;padding-inline-start:1.2rem;font-size:.9rem}
.ec-trip-warnings li+li{margin-top:.2rem}
.ec-shared-trip{display:grid;gap:var(--ec-space-3);padding-bottom:var(--ec-space-5)}
.ec-shared-trip__item{grid-template-columns:1fr}
.ec-shared-trip__item p{margin:.25rem 0 0}
.ec-trip-print{display:grid;gap:var(--ec-space-4);padding-block:var(--ec-space-4)}
.ec-trip-print__toolbar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--ec-space-1)}
.ec-trip-print__header{display:grid;gap:var(--ec-space-1);padding-bottom:var(--ec-space-3);border-bottom:1px solid rgba(0,0,0,.18)}
.ec-trip-print__header h1,.ec-trip-print__header p{margin:0}
.ec-trip-print__dates{font-weight:700}
.ec-trip-print__notes{padding:var(--ec-space-2);border:1px solid rgba(0,0,0,.18)}
.ec-trip-print__notes h2,.ec-trip-print__notes p{margin:0}
.ec-trip-print__notes p{margin-top:.5rem;white-space:normal}
.ec-trip-print__days{display:grid;gap:var(--ec-space-4)}
.ec-trip-print-day{break-inside:avoid-page}
.ec-trip-print-day h2{margin:0 0 var(--ec-space-2);padding-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,.18)}
.ec-trip-print-day ol{display:grid;gap:var(--ec-space-2);margin:0;padding-inline-start:1.5rem}
.ec-trip-print-day__empty{margin:0}
.ec-trip-print-item{padding-inline-start:.25rem;break-inside:avoid-page}
.ec-trip-print-item h3{margin:.25rem 0;font-size:1.1rem}
.ec-trip-print-item__meta,.ec-trip-print-item__facts{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:0;font-size:.9rem}
.ec-trip-print-item__meta{font-weight:700}
.ec-trip-print-item__note{margin-top:.6rem;padding:.6rem .75rem;border-inline-start:3px solid currentColor}
.ec-trip-print-item__note p{margin:.25rem 0 0}
.ec-trip-print__footer-note{margin:0;padding-top:var(--ec-space-2);border-top:1px solid rgba(0,0,0,.18);font-size:.9rem}

@media print{
  @page{margin:14mm}
  html{scroll-behavior:auto}
  body.ec-trip-print-surface{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:10.5pt;line-height:1.4}
  body.ec-trip-print-surface .ec-site-header,
  body.ec-trip-print-surface .ec-site-footer,
  body.ec-trip-print-surface .ec-skip-link,
  body.ec-trip-print-surface .ec-trip-print__toolbar,
  body.ec-trip-print-surface .ec-sr-status{display:none!important}
  body.ec-trip-print-surface .ec-main{min-height:0}
  body.ec-trip-print-surface .ec-trip-print{width:100%;margin:0;padding:0;gap:8mm}
  body.ec-trip-print-surface .ec-trip-print__header{padding-bottom:6mm}
  body.ec-trip-print-surface .ec-trip-print__days{gap:8mm}
  body.ec-trip-print-surface .ec-trip-print-day{break-inside:auto}
  body.ec-trip-print-surface .ec-trip-print-item{break-inside:avoid}
  body.ec-trip-print-surface a{min-height:0;text-decoration:none;color:inherit}
  body.ec-trip-print-surface .ec-trip-print__notes{break-inside:avoid}
}

/* CHANGE 01 — My Croatia: one personal layer over Saved + Trips. */
.ec-my-croatia{display:grid;gap:var(--ec-space-5);padding-bottom:var(--ec-space-5)}
.ec-my-croatia__hero{padding-bottom:var(--ec-space-3)}
.ec-my-croatia__intro-card{display:grid;gap:1rem;max-width:58rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(0,0,0,.16)}
.ec-my-croatia__intro-card h2,.ec-my-croatia__intro-card p{margin:0}
.ec-my-croatia__actions,.ec-from-croatia__actions{display:flex;flex-wrap:wrap;gap:.7rem}
.ec-my-croatia__summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:34rem}
.ec-my-croatia__summary a{display:grid;gap:.1rem;padding:1rem;border:1px solid rgba(0,0,0,.16);text-decoration:none;color:inherit}
.ec-my-croatia__summary strong{font-size:clamp(1.8rem,4vw,2.7rem);line-height:1}
.ec-my-croatia__section{display:grid;gap:var(--ec-space-3)}
.ec-section-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--ec-space-3);flex-wrap:wrap}
.ec-section-heading>div{display:grid;gap:.25rem}.ec-section-heading h2,.ec-section-heading p{margin:0}.ec-section-heading>p{max-width:52ch}
.ec-card__reason{margin:.7rem 0 0;padding-top:.65rem;border-top:1px solid rgba(0,0,0,.12);font-size:.9rem}
.ec-my-croatia__trips{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.ec-my-croatia__trips article{display:grid;gap:.45rem;padding:1rem;border:1px solid rgba(0,0,0,.16)}
.ec-my-croatia__trips h3,.ec-my-croatia__trips p{margin:0}

/* CHANGE 01 — curated @Croatia source bridge; never an arbitrary Reel analyzer. */
.ec-from-croatia__hero{display:grid;gap:1rem;padding-bottom:var(--ec-space-4)}
.ec-from-croatia{display:grid;gap:var(--ec-space-3);padding-bottom:var(--ec-space-5)}
.ec-from-croatia--missing{max-width:60rem}
@media(max-width:40rem){.ec-my-croatia__summary{grid-template-columns:1fr}.ec-my-croatia__actions .ec-button,.ec-from-croatia__actions .ec-button{width:100%}}

/* Traveler sign-in — deliberately small, branded and separate from partner/admin auth. */
.ec-auth-shell{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(19rem,.9fr);gap:clamp(2rem,7vw,6rem);align-items:start;padding-block:clamp(3rem,8vw,7rem)}
.ec-auth-intro{display:grid;gap:1rem;max-width:46rem}.ec-auth-intro h1,.ec-auth-intro p{margin:0}.ec-auth-intro h1{font-size:clamp(2.8rem,7vw,6.8rem);line-height:.94;letter-spacing:-.045em}
.ec-auth-card{display:grid;gap:1.25rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(0,0,0,.16);background:var(--ec-surface,#fff)}.ec-auth-card h2,.ec-auth-card p{margin:0}
.ec-auth-social,.ec-auth-form{display:grid;gap:.75rem}.ec-auth-form label{font-weight:700}.ec-auth-form input{width:100%;min-height:3rem;padding:.65rem .75rem;border:1px solid rgba(0,0,0,.3);background:transparent;color:inherit}.ec-auth-form input:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.ec-button--auth{width:100%;justify-content:center}.ec-auth-divider{display:flex;align-items:center;gap:.75rem;font-size:.85rem;opacity:.7}.ec-auth-divider::before,.ec-auth-divider::after{content:"";height:1px;flex:1;background:currentColor;opacity:.25}
.ec-auth-fineprint{font-size:.88rem;opacity:.72}.ec-auth-notice{padding:.75rem;border-inline-start:3px solid currentColor}.ec-auth-notice[hidden]{display:none}
@media(max-width:48rem){.ec-auth-shell{grid-template-columns:1fr}.ec-auth-intro h1{font-size:clamp(2.6rem,14vw,4.8rem)}}

/* CONTENTOPS19 — public Partner acquisition and value foundation. */
.ec-business-hero{padding-block:clamp(3.5rem,9vw,7.5rem);border-bottom:1px solid rgba(0,0,0,.14)}
.ec-business-hero__inner{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(18rem,.7fr);gap:clamp(2rem,7vw,6rem);align-items:end}
.ec-business-hero__copy{display:grid;gap:1.15rem;max-width:62rem}.ec-business-hero__copy h1,.ec-business-hero__copy p{margin:0}.ec-business-hero__copy h1{font-size:clamp(3rem,8vw,7rem);line-height:.94;letter-spacing:-.045em;max-width:13ch}
.ec-business-hero__actions,.ec-business-closing__actions{display:flex;flex-wrap:wrap;gap:.7rem}
.ec-business-formula{display:grid;gap:1rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(0,0,0,.18)}.ec-business-formula p{display:grid;gap:.2rem;margin:0}.ec-business-formula strong{font-size:1.35rem}.ec-business-formula span{font-size:.92rem}
.ec-business-value{display:grid;gap:var(--ec-space-2)}.ec-business-value__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--ec-space-3)}
.ec-business-value-card{display:grid;align-content:start;gap:1rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(0,0,0,.16)}.ec-business-value-card h3,.ec-business-value-card p,.ec-business-value-card ul{margin:0}.ec-business-value-card ul{display:grid;gap:.65rem;padding-inline-start:1.25rem}.ec-business-value-card--partner{border-width:2px}.ec-business-value-card__label{font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.ec-business-trust{padding-block:var(--ec-space-5);border-block:1px solid rgba(0,0,0,.16)}.ec-business-trust__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr);gap:clamp(2rem,7vw,6rem);align-items:start}.ec-business-trust__inner h2,.ec-business-trust__inner p{margin-top:0}.ec-business-trust__list{display:grid;gap:.9rem;margin:0;padding:0;list-style:none}.ec-business-trust__list li{padding-top:.9rem;border-top:1px solid rgba(0,0,0,.16)}
.ec-business-fit{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(18rem,.75fr);gap:clamp(2rem,7vw,6rem);align-items:start}.ec-business-fit__copy h2,.ec-business-fit__copy p{margin-top:0}.ec-business-fit__list{display:grid;gap:.85rem;margin:0;padding-inline-start:1.25rem}
.ec-business-path__intro{display:grid;gap:.8rem;max-width:56rem}.ec-business-path__intro h2,.ec-business-path__intro p{margin:0}.ec-business-path__steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ec-space-2);margin:var(--ec-space-4) 0 0;padding:0;list-style:none;counter-reset:none}.ec-business-path__steps li{display:grid;gap:1rem;align-content:start;padding-top:1rem;border-top:1px solid rgba(0,0,0,.18)}.ec-business-path__steps li>span{font-size:.82rem;font-weight:700}.ec-business-path__steps h3,.ec-business-path__steps p{margin:0}.ec-business-path__steps div{display:grid;gap:.55rem}
.ec-business-founding{max-width:62rem;margin-inline:auto}.ec-business-founding h2,.ec-business-founding p{margin-top:0}
.ec-business-closing{padding-block:var(--ec-space-5);border-top:1px solid rgba(0,0,0,.16)}.ec-business-closing__inner{display:grid;grid-template-columns:minmax(0,1.25fr) auto;gap:var(--ec-space-4);align-items:end}.ec-business-closing__inner h2,.ec-business-closing__inner p{margin-top:0}.ec-business-closing__note{max-width:62ch;font-size:.92rem}.ec-business-closing__actions{justify-content:flex-end}
.ec-site-footer{padding-block:var(--ec-space-4);border-top:1px solid rgba(0,0,0,.16)}.ec-site-footer__inner{display:grid;grid-template-columns:minmax(16rem,1.3fr) minmax(10rem,.7fr) minmax(15rem,1fr);gap:var(--ec-space-4);align-items:start}.ec-site-footer__brand{display:grid;gap:.65rem;max-width:32rem}.ec-site-footer__brand p{margin:0}.ec-site-footer__nav{display:grid;gap:.75rem}.ec-site-footer__nav h2,.ec-site-footer__nav p{margin:0}.ec-site-footer__nav h2{font-size:1rem}.ec-site-footer__nav ul{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.ec-site-footer__nav a{display:inline-flex;align-items:center;text-decoration:none}.ec-site-footer__nav--business p{font-size:.9rem;max-width:32ch}
@media(max-width:56rem){.ec-business-hero__inner,.ec-business-trust__inner,.ec-business-fit,.ec-business-closing__inner{grid-template-columns:1fr}.ec-business-value__grid{grid-template-columns:1fr}.ec-business-path__steps{grid-template-columns:1fr 1fr}.ec-business-closing__actions{justify-content:flex-start}.ec-site-footer__inner{grid-template-columns:1fr 1fr}.ec-site-footer__brand{grid-column:1/-1}}
@media(max-width:40rem){.ec-business-hero__actions .ec-button,.ec-business-closing__actions .ec-button{width:100%}.ec-business-path__steps{grid-template-columns:1fr}.ec-site-footer__inner{grid-template-columns:1fr}.ec-site-footer__brand{grid-column:auto}}

/* CONTENTOPS20 — Contributors and structured media-attribution foundation. */
.ec-contributors-hero{padding-block:clamp(3.5rem,9vw,7.5rem);border-bottom:1px solid rgba(0,0,0,.14)}
.ec-contributors-hero__inner{display:grid;gap:1rem;max-width:68rem}.ec-contributors-hero h1,.ec-contributors-hero p{margin:0}.ec-contributors-hero h1{max-width:15ch;font-size:clamp(3rem,8vw,7rem);line-height:.94;letter-spacing:-.045em}
.ec-contributors-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ec-space-3)}.ec-contributors-principles article{display:grid;align-content:start;gap:.75rem;padding-top:1rem;border-top:1px solid rgba(0,0,0,.18)}.ec-contributors-principles h2,.ec-contributors-principles p{margin:0}.ec-contributors-principles h2{font-size:1.15rem}
.ec-contributors-list{display:grid;gap:var(--ec-space-3)}.ec-contributors-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ec-space-3)}
.ec-contributor-card{min-width:0;border-top:1px solid rgba(0,0,0,.18);padding-top:var(--ec-space-2)}.ec-contributor-card__media{margin:0 0 var(--ec-space-2);aspect-ratio:4/5;overflow:hidden}.ec-contributor-card__media img{width:100%;height:100%;object-fit:cover}.ec-contributor-card__body{display:grid;gap:.55rem}.ec-contributor-card__body h3,.ec-contributor-card__body p{margin:0}.ec-contributor-card__body h3{font-size:1.4rem}.ec-contributor-card__association{font-weight:600}.ec-contributor-card__profile{width:max-content;text-underline-offset:.2em}.ec-contributor-card__handle{font-weight:600}
.ec-contributors-empty{display:grid;gap:.65rem;max-width:52rem;padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(0,0,0,.16)}.ec-contributors-empty h3,.ec-contributors-empty p{margin:0}
.ec-media-credit{padding:.45rem var(--ec-gutter) 0;font-size:.78rem;line-height:1.4;opacity:.78}.ec-media-credit span{font-weight:600}.ec-media-credit a{text-underline-offset:.15em}.ec-contributor-card__media .ec-media-credit{padding-inline:0}
.ec-site-footer__inner{grid-template-columns:minmax(16rem,1.35fr) minmax(8rem,.55fr) minmax(8rem,.55fr) minmax(15rem,1fr)}
@media(max-width:56rem){.ec-contributors-principles,.ec-contributors-grid{grid-template-columns:1fr 1fr}.ec-site-footer__inner{grid-template-columns:1fr 1fr}.ec-site-footer__brand{grid-column:1/-1}}
@media(max-width:40rem){.ec-contributors-principles,.ec-contributors-grid{grid-template-columns:1fr}.ec-site-footer__inner{grid-template-columns:1fr}.ec-site-footer__brand{grid-column:auto}}
@media(max-width:20rem){.ec-contributor-card__profile{white-space:nowrap}}


/* BROWSERUI1-NAV offline proposal: public navigation only; not the visual fidelity pass.
   A flow disclosure prevents overlaying/cropping the home Search control.
   75rem is a space-driven header breakpoint, not a global product breakpoint. */
.ec-site-header:not(.ec-site-header--private) .ec-site-header__inner {
  display: flex; flex-wrap: wrap; gap: 0 .5rem; min-height: 4rem; align-items: center;
}
.ec-site-header:not(.ec-site-header--private) .ec-brand { flex: 0 1 auto; }
.ec-mobile-header-actions { display: flex; gap: .25rem; align-items: center; margin-inline-start: auto; }
.ec-header-action, .ec-site-header .ec-menu-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-width: 44px; min-height: 44px; padding: .5rem;
  border: 1px solid transparent; border-radius: 8px; color: inherit;
  background: transparent; text-decoration: none; line-height: 1.5;
}
.ec-header-action svg { flex: none; }
.ec-header-action__label {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.ec-site-header .ec-menu-toggle { display: none; border-color: currentColor; }
.ec-site-header[data-ec-menu-ready="true"] .ec-menu-toggle { display: inline-flex; }
.ec-site-header:not(.ec-site-header--private) .ec-primary-nav {
  display: block; position: static; flex: 1 0 100%; width: 100%; padding: 1rem 0;
  background: transparent; border-top: 1px solid #DEDAD2;
}
.ec-site-header[data-ec-menu-ready="true"] .ec-primary-nav:not([data-open="true"]) { display: none; }
.ec-site-header .ec-primary-nav ul { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.ec-site-header .ec-primary-nav a { display: flex; align-items: center; min-height: 44px; min-width: 44px; padding: .5rem; }
.ec-mobile-menu-utilities { margin-top: .5rem; padding-top: .5rem; border-top: 1px solid #DEDAD2; }
.ec-mobile-languages { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .5rem; }
.ec-mobile-languages__label { flex: 1 0 100%; padding-inline: .5rem; }
.ec-mobile-languages .ec-language { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .5rem; }
.ec-mobile-languages [aria-current="page"] { font-weight: 600; border-bottom: 2px solid currentColor; }
.ec-site-header .ec-utility-nav { display: none; }
.ec-site-header:not(.ec-site-header--private) a:focus-visible,
.ec-site-header:not(.ec-site-header--private) button:focus-visible {
  outline: 2px solid #0F5F6D; outline-offset: 3px;
}
@media (min-width: 40rem) {
  .ec-header-action__label { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip-path: none; white-space: normal; }
}
@media (min-width: 75rem) {
  .ec-site-header:not(.ec-site-header--private) .ec-site-header__inner { flex-wrap: nowrap; gap: 1rem; min-height: 4.5rem; }
  .ec-site-header .ec-mobile-header-actions,
  .ec-site-header[data-ec-menu-ready="true"] .ec-menu-toggle,
  .ec-site-header .ec-mobile-menu-utilities { display: none; }
  .ec-site-header:not(.ec-site-header--private) .ec-primary-nav,
  .ec-site-header[data-ec-menu-ready="true"] .ec-primary-nav:not([data-open="true"]) {
    display: block; flex: 1 1 auto; width: auto; padding: 0; border: 0;
  }
  .ec-site-header .ec-primary-nav ul,
  .ec-site-header .ec-utility-nav ul { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0 .5rem; }
  .ec-site-header .ec-primary-nav a { padding: .25rem; }
  .ec-site-header .ec-utility-nav { display: block; flex: 0 1 auto; }
  .ec-site-header .ec-utility-nav li { display: block; }
  .ec-site-header .ec-utility-nav a { min-width: 44px; min-height: 44px; padding: .25rem; }
  .ec-site-header .ec-language-switcher { display: flex; align-items: center; gap: .25rem; }
  .ec-site-header .ec-language-switcher .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
}

/* BQA-006/007: bounded existing-layout corrections verified against baseline overflow. */
.ec-mobile-header-actions { min-height: 4rem; }
.ec-site-footer__inner { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.ec-site-footer__inner > * { min-width: 0; overflow-wrap: anywhere; }
.ec-hero__content { grid-template-columns: minmax(0, 1fr); }
.ec-hero__content > *, .ec-search-form, .ec-search-form input { min-width: 0; }
.ec-hero__content h1, .ec-search-form label { overflow-wrap: anywhere; }
.ec-search-form__row { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 40rem) {
  .ec-search-form__row { grid-template-columns: minmax(0, 1fr); }
}

/* BROWSERUI1-SAVED: bounded keyboard/focus/reflow repair, not a visual redesign. */
.ec-saved-page, .ec-saved-page > *, .ec-saved-page [role="tabpanel"],
.ec-saved-page .ec-card, .ec-saved-page .ec-card__body { min-width: 0; }
.ec-saved-page [role="tabpanel"][hidden] { display: none; }
.ec-saved-page [role="tab"] { min-width: 44px; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.ec-saved-page [role="tab"][aria-selected="true"] { text-decoration: underline; text-underline-offset: .25em; }
.ec-saved-page :is(button, a, [role="tabpanel"]):focus-visible { outline: 2px solid #0F5F6D; outline-offset: 3px; }
/* Global linked cards use min-height:100%; Saved has sibling action controls instead. */
.ec-saved-page .ec-card { display: flex; flex-direction: column; }
.ec-saved-page .ec-card__link { min-height: 0; flex: 1 1 auto; }
.ec-saved-page .ec-card__body, .ec-saved-page .ec-card__actions { overflow-wrap: anywhere; }
.ec-saved-page .ec-card__actions button { min-width: 44px; max-width: 100%; white-space: normal; }
.ec-saved-page [data-ec-save][aria-disabled="true"] { cursor: wait; opacity: .65; }
@media (forced-colors: active) {
  .ec-saved-page :is(button, a, [role="tabpanel"]):focus-visible { outline-color: Highlight; }
}

/* PORTAL20: shared hidden labels remain readable by assistive technology.
   Save icons and carousel status messages must not depend on WordPress editor CSS. */
.ec-public .screen-reader-text:not(:focus) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* PORTAL20: the supplied vector mark anchors every public footer. */
.ec-site-footer .ec-brand--footer-logo {
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  flex: 0 0 auto;
  width: clamp(9rem, 16vw, 10.75rem);
  max-width: 100%;
  min-height: 44px;
  text-decoration: none;
}
.ec-site-footer .ec-footer-logo {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* PORTAL20 logo completion: every route loads this shell, including fallbacks,
   partner views and the private traveler print preview. Never depend on home CSS. */
.ec-site-header .ec-brand.ec-brand--logo {
  flex: 0 0 auto;
  min-width: 0;
  max-width: 100%;
  align-self: center;
  align-items: center;
  justify-content: center;
}
.ec-site-header .ec-brand__logo {
  display: block;
  width: 172px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  transform: translateY(-6px);
}
@media (max-width:639px) {
  .ec-site-header .ec-brand__logo {width:132px;transform:translateY(-4px);}
  .ec-site-header--private .ec-site-header__inner {flex-wrap:wrap;gap:.5rem;}
  .ec-site-header--private .ec-partner-header-actions {min-width:0;flex-wrap:wrap;}
}

/* 2026-09-29: fill the designed photograph frames on every overview surface.
   Original-aspect metadata describes the source, not a thumbnail layout rule.
   Scope this override to photo previews: original files, logos and the expanded
   gallery/lightbox image retain their existing proportions and containment. */
#main-content :is(
  .ec-destination29-card__image,
  .ec-bestof-card__image,
  .ec-discover-card__media,
  .ec-card__media,
  .ec-nearby-card__image,
  .ec-portal-card__image,
  .atlas-card-image,
  .atlas-region-image,
  .ec-collection-card__visual,
  .ec-event-card__visual,
  .ec-guide-collection__figure,
  .ec33-destination__photo,
  .ec33-park__photo,
  .ec33-card__visual,
  .ec33-story__photo,
  .ec33-curiosity__photo,
  .ec-home-stories24__image,
  .ec-mood-card25-image,
  .ec-michelin24__photo,
  .ec-parks24-card__visual,
  .ec-essentials24-card__photo,
  .ec-home-event__image,
  .ec-event-agenda__photo,
  .ec-home-showcase__destination,
  .ec-opening__visual,
  .ec-bestof-plan__photo,
  .ec-around-profile__photo,
  .ec-my-dashboard__card-photo,
  .ec-shared-saved__photo,
  .ec-shared-experience__photo,
  .ec-idea__image
) img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 0;
  max-width: none;
  object-fit: cover !important;
  object-position: center;
}

/* These original-aspect exceptions previously removed the component's frame.
   Restore its authored landscape ratio, without affecting text-only cards. */
#main-content .ec-nearby-card__image:has(img) {aspect-ratio:3/2;overflow:hidden;}
#main-content .ec-business-hub .atlas-card-image:has(img) {aspect-ratio:3/2!important;height:auto;}
#main-content .ec-business-rail--stay .atlas-card-image:has(img) {aspect-ratio:4/3!important;}
#main-content .ec-business-hub .atlas-card-image:has(img)>a {position:absolute;inset:0;height:100%!important;}
#main-content .ec-collection-card__visual:has(img) {aspect-ratio:4/3!important;overflow:hidden;}
#main-content .ec-collection-card__visual:has(img)>a {position:absolute;inset:0;display:block;height:100%!important;}
@media(max-width:479px) {
  #main-content .ec-collection--events .ec-collection-card__visual:has(img) {aspect-ratio:16/10!important;}
}

/* Guide collection previews keep the existing desktop and mobile geometry.
   The photo link owns the box so the title and photo credit remain separate. */
#main-content .ec-guide-collection__figure>a {position:relative;display:block;aspect-ratio:1.5;height:auto!important;overflow:hidden;}
#main-content .ec-guide-collection__figure>a>img {position:absolute;inset:0;}
@media(min-width:1024px) {
  #main-content .ec-guide-collection--portrait .ec-guide-collection__figure>a {height:clamp(320px,30vw,400px)!important;aspect-ratio:auto;}
}
@media(max-width:42rem) {
  #main-content .ec-guide-collection__figure>a {aspect-ratio:2.1;}
}

/* Search feature and fixed gallery tiles use their existing container sizes.
   Deliberately exclude .ec-gallery-dialog__image / .ec-place-lightbox__image. */
#main-content .ec-portal-search__destination-image img,
#main-content .ec-gallery__link img,
.ec-gallery-dialog .ec-gallery-dialog__thumb img {
  object-fit:cover!important;
  object-position:center;
}
