/* PORTAL29. A consistent destination grid and compact native place/guide results.
   Keep full approved photographs visible; no crop, replacement or media-policy changes. */
.ec-dest-explorer .ec-destination29-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 2rem;align-items:stretch}
.ec-dest-explorer .ec-destination29-grid--directory{grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem 1.4rem}
.ec-dest-explorer .ec-destination29-card{min-width:0;margin:0;padding:0 0 .35rem;border:0;border-bottom:1px solid var(--dx-line);border-radius:0;background:transparent;display:flex;flex-direction:column;box-shadow:none}
.ec-destination29-card__link{display:block;color:inherit;min-width:0}
.ec-destination29-card__image{aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:#e9eeeb;margin:0 0 1rem;display:grid;place-items:center}
.ec-destination29-card__image img{width:100%;height:100%;min-height:0;display:block;object-fit:contain;transform:none}
.ec-destination29-card__copy{min-width:0}
.ec-dest-explorer .ec-destination29-card h3{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:0 0 .5rem;font:650 clamp(1.15rem,1.65vw,1.5rem)/1.25 Manrope,system-ui,sans-serif;letter-spacing:-.035em;overflow-wrap:anywhere;color:var(--dx-ink)}
.ec-destination29-card h3>span{font:400 1.05rem/1 system-ui;flex-shrink:0;color:var(--dx-blue);transition:transform .18s}
.ec-destination29-card__link:hover h3{color:var(--dx-blue)}
.ec-destination29-card__link:hover h3>span{transform:translate(2px,-2px)}
.ec-destination29-card__label,.ec-destination29-card__selection{margin:0 0 .45rem;font:600 .67rem/1.5 Manrope,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--dx-muted)}
.ec-destination29-card__selection{color:var(--dx-blue);letter-spacing:.02em;text-transform:none}
.ec-destination29-card__summary{margin:0;color:var(--dx-muted);font-size:.81rem;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ec-destination29-card>.ec-media-credit{font-size:.65rem;line-height:1.5;color:var(--dx-muted);margin:.5rem 0 0;overflow-wrap:anywhere}
.ec-destination29-card>.ec-media-credit a{color:inherit;text-decoration:underline}
.ec-destination29-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem 1.25rem;margin-top:auto;padding-top:.55rem}
.ec-dest-explorer .ec-destination29-card__actions button{border:0;background:transparent;color:var(--dx-ink);padding:.55rem .15rem;min-height:44px;max-width:100%;font:600 .72rem/1.4 Manrope,system-ui,sans-serif;white-space:normal;text-align:left;border-radius:3px;box-shadow:none;cursor:pointer}
.ec-dest-explorer .ec-destination29-card__actions button:hover,.ec-dest-explorer .ec-destination29-card__actions button[aria-pressed=true]{color:var(--dx-blue);text-decoration:underline;text-underline-offset:4px}
.ec-dest-explorer .ec-destination29-card__actions button:disabled{opacity:.6;cursor:wait}
.ec-destination29-grid:not(.ec-destination29-grid--directory) .ec-destination29-card{padding:1.1rem 0 .25rem}
.ec-destination29-grid:not(.ec-destination29-grid--directory) .ec-destination29-card--photo .ec-destination29-card__link{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1.1rem;align-items:start}
.ec-destination29-grid:not(.ec-destination29-grid--directory) .ec-destination29-card__image{margin:0}
.ec-destination29-grid:not(.ec-destination29-grid--directory) .ec-destination29-card h3{font-size:1.2rem}
.ec-destination29-grid:not(.ec-destination29-grid--directory) .ec-destination29-card__summary{-webkit-line-clamp:2}
.ec-dest-explorer .ec-dest-explorer__header h1{font:650 clamp(2.5rem,5.8vw,4.8rem)/1.05 Manrope,system-ui,sans-serif;letter-spacing:-.055em;max-width:16ch}
.ec-dest-explorer .ec-dest-explorer__header h2,.ec-dest-explorer .ec-dest-explorer__guides-header h2,.ec-dest-explorer .ec-dest-explorer__planner h2{font-family:Manrope,system-ui,sans-serif;font-weight:650;font-size:clamp(1.65rem,3vw,2.6rem);letter-spacing:-.045em;line-height:1.15}
.ec-dest-explorer .ec-dest-explorer__results-heading{margin-bottom:.5rem}
.ec-dest-explorer--directory .ec-dest-explorer__results-heading{margin-bottom:1.25rem}
.ec-public-visual .ec-destination29 .ec-destination-intro{margin-top:1.5rem;margin-bottom:1.6rem;gap:clamp(1.5rem,3.5vw,3.2rem)}
.ec-public-visual .ec-destination29 .ec-bestof-heading h1{font-size:clamp(2.6rem,5.5vw,4.7rem);letter-spacing:-.055em;line-height:1.03}
.ec-public-visual .ec-destination29 .ec-destination-intro .ec-bestof-summary{font-size:1rem;line-height:1.75;max-width:44ch}
.ec-public-visual .ec-destination29 .ec-destination-intro .ec-gallery--2 .ec-gallery__mosaic{height:auto;max-height:none;aspect-ratio:2.8;grid-template-rows:1fr;grid-template-columns:1fr 1fr}
.ec-destination29-quick{display:flex;flex-wrap:wrap;align-items:stretch;gap:.7rem;margin:0 0 1.25rem;padding:0}
.ec-destination29-quick a{display:inline-flex;align-items:center;gap:.8rem;min-height:52px;padding:.7rem 1.15rem;border:1px solid #cedbd7;border-radius:8px;background:#f0f4ef;color:#153b39;font:600 .84rem/1.45 Manrope,system-ui,sans-serif;text-decoration:none;box-sizing:border-box;max-width:100%}
.ec-destination29-quick a>span:last-child{margin-left:auto}
.ec-destination29-quick__count{font-size:.72rem;min-width:1.7rem;text-align:center;padding:.1rem .3rem;border-radius:99px;background:#fff;color:#385a55;font-variant-numeric:tabular-nums}
.ec-public-visual .ec-main .ec-destination29 .ec-destination29-quick a.ec-destination29-quick__plan{background:#153b39;border-color:#153b39;color:#fff!important}
.ec-destination29-quick a:hover{border-color:#1749ef;color:#1749ef}
.ec-destination29-quick a.ec-destination29-quick__plan:hover{background:#1749ef;color:#fff}
.ec-destination29-quick a:focus-visible{outline:3px solid #1749ef;outline-offset:4px}
.ec-destination29 #ec-destination-guides,.ec-destination29 #ec-destination-explorer{scroll-margin-top:2rem}
@media(max-width:72rem){.ec-dest-explorer .ec-destination29-grid--directory{grid-template-columns:repeat(3,minmax(0,1fr))}.ec-destination29-grid:not(.ec-destination29-grid--directory) .ec-destination29-card--photo .ec-destination29-card__link{grid-template-columns:7rem minmax(0,1fr);gap:.85rem}}
@media(max-width:56rem){.ec-dest-explorer .ec-destination29-grid--directory{grid-template-columns:repeat(2,minmax(0,1fr))}.ec-dest-explorer .ec-destination29-grid{gap:1.25rem}.ec-public-visual .ec-destination29 .ec-destination-intro>.ec-gallery{max-width:100%}.ec-dest-explorer .ec-destination29-card h3{font-size:1.25rem}}
@media(max-width:42rem){.ec-dest-explorer .ec-destination29-grid:not(.ec-destination29-grid--directory){grid-template-columns:minmax(0,1fr);gap:.5rem}.ec-destination29-quick{gap:.5rem}.ec-destination29-quick a{flex:1 1 calc(50% - .5rem);padding:.65rem .8rem;font-size:.77rem;gap:.5rem}.ec-destination29-quick a.ec-destination29-quick__plan{flex-basis:100%}.ec-public-visual .ec-destination29 .ec-destination-intro .ec-bestof-summary{font-size:.94rem}.ec-destination29-card__summary{font-size:.8rem}.ec-destination29-grid--directory .ec-destination29-card__summary{-webkit-line-clamp:2}.ec-dest-explorer .ec-destination29-card__actions button{font-size:.75rem}.ec-destination29-grid:not(.ec-destination29-grid--directory) .ec-destination29-card--photo .ec-destination29-card__link{grid-template-columns:6.5rem minmax(0,1fr)}}
@media(max-width:30rem){.ec-dest-explorer .ec-destination29-grid--directory{grid-template-columns:minmax(0,1fr);gap:1.6rem}.ec-destination29-grid--directory .ec-destination29-card__image{aspect-ratio:1.5}.ec-dest-explorer .ec-destination29-grid--directory .ec-destination29-card h3{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){.ec-destination29-card h3>span{transition:none;transform:none!important}}
@media(forced-colors:active){.ec-destination29-quick a,.ec-destination29-quick__count{border:1px solid ButtonText}.ec-dest-explorer .ec-destination29-card__actions button[aria-pressed=true]{outline:2px solid Highlight}}


/* PORTAL4: Better mobile framing for two-photo destination galleries. */
@media (max-width: 760px) {
  html body.ec-public #main-content .ec-destination-intro .ec-gallery--2 .ec-gallery__mosaic {
    display: flex; gap: .55rem; width: 100%; overflow-x: auto; overflow-y: hidden;
    padding: 0 0 .35rem; aspect-ratio: auto; scroll-snap-type: inline mandatory;
    overscroll-behavior-inline: contain; scrollbar-width: thin;
  }
  html body.ec-public #main-content .ec-destination-intro .ec-gallery--2 .ec-gallery__tile {
    flex: 0 0 min(16rem, calc(100vw - 4rem)); width: auto; min-width: 0; aspect-ratio: 3 / 2; scroll-snap-align: start;
  }
  html body.ec-public #main-content .ec-destination-intro .ec-gallery--2 :is(.ec-gallery__link, .ec-gallery__link img) { width: 100%; height: 100%; }
  html body.ec-public #main-content .ec-destination-intro .ec-gallery--2 .ec-gallery__link img {
    max-width: none; max-height: none; object-fit: cover !important; object-position: center;
  }
}
@media (forced-colors: active) {
  html body.ec-public #main-content .ec-destination-intro .ec-gallery--2 .ec-gallery__tile { outline: 1px solid CanvasText; }
}
