.attraction-detail-page,.attraction-directory-page{background:#fff}.attraction-official-name{margin:1rem 0;color:#ccc;font-size:1.1rem}.attraction-note{font-size:.9rem;line-height:1.6;color:#565656}.attraction-faq{padding-block:5rem}.attraction-faq h2{font-size:clamp(2rem,4vw,3.5rem)}.attraction-faq details{border-top:1px solid #d7d4ce;padding:1.1rem 0}.attraction-faq summary{cursor:pointer;font-size:1.1rem;font-weight:650;line-height:1.5}.attraction-faq-answer p{max-width:72ch;line-height:1.75}.attraction-directory-intro{padding-block:4rem}.attraction-directory-intro h1{font-size:clamp(3rem,7vw,6rem);margin:0}.attraction-directory-intro .body-large{max-width:55ch}.attraction-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding-bottom:6rem}.attraction-directory-grid article{border-bottom:1px solid #ccc}.attraction-directory-grid article>div{padding:1.5rem 0 2rem}.attraction-directory-grid img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.attraction-directory-grid h2{font:2rem/1.15 var(--serif);margin:.75rem 0}.attraction-directory-grid h2 a{text-decoration:none}.attraction-directory-grid p{line-height:1.65}.attraction-native{color:#626262;font-size:.9rem}.attraction-detail-page .hotel-profile-media>img{width:100%;height:100%;object-fit:cover}.attraction-detail-page .hotel-profile-copy .display{overflow-wrap:anywhere}.attraction-detail-page .hotel-practical-content p{line-height:1.7}.attraction-detail-page .hotel-gallery{padding-bottom:3rem}.attraction-detail-page :target{scroll-margin-top:9rem}.attraction-detail-page .hotel-profile-actions{gap:1rem}@media(max-width:820px){.attraction-directory-grid{grid-template-columns:1fr 1fr}.attraction-detail-page .hotel-profile-copy{padding-block:2.5rem}.attraction-faq{padding-block:3rem}}@media(max-width:560px){.attraction-directory-grid{grid-template-columns:1fr}.attraction-directory-intro{padding-block:2.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Use the tighter gallery spacing throughout the attraction's editorial sections. */
.attraction-detail-page { --section-space:clamp(3.5rem,6vw,6rem); }
.attraction-detail-page .hotel-story-copy > p:first-child { margin-top:0; }
/* Match the Good to know text column in What to see and The story. */
@media (min-width:1021px) {
  .attraction-detail-page .hotel-story-grid {
    grid-template-columns:minmax(0,.85fr) minmax(24rem,1.15fr);
  }
}
.attraction-essentials { padding-block:var(--section-space); background:var(--paper); }
.attraction-essentials-header {
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  align-items:start;
  gap:clamp(2rem,6vw,6rem);
}
.attraction-essentials-header .eyebrow { margin-bottom:1.25rem; }
.attraction-essentials-header .display { font-size:clamp(3rem,5vw,5rem); line-height:1.05; }
.attraction-essentials-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.attraction-essentials-facts > div { min-width:0; padding-inline:clamp(1.25rem,2.5vw,2.5rem); border-left:1px solid var(--line); }
.attraction-essentials-facts > div:last-child { padding-right:0; }
.attraction-essentials-facts dt { margin:0 0 1rem; color:var(--muted); font:800 .7rem/1.4 var(--sans); letter-spacing:.2em; text-transform:uppercase; }
.attraction-essentials-facts dd { margin:0; font:700 clamp(1.3rem,2vw,1.8rem)/1.25 var(--serif); letter-spacing:-.02em; text-wrap:pretty; overflow-wrap:anywhere; }
.attraction-time { margin-top:clamp(2.5rem,4vw,3.5rem); padding-top:clamp(2rem,3vw,2.75rem); border-top:1px solid var(--line); }
@media(max-width:820px) {
  .attraction-essentials-header { grid-template-columns:minmax(0,1fr); gap:2rem; }
  .attraction-essentials-facts > div:first-child { padding-left:0; border-left:0; }
}
@media(max-width:420px) {
  .attraction-essentials-facts > div { padding-inline:1rem; }
  .attraction-essentials-facts > div:first-child { padding-left:0; }
  .attraction-essentials-facts > div:last-child { padding-right:0; }
  .attraction-essentials-facts dt { margin-bottom:.5rem; }
}

/* Wide editorial rows allow substantial highlights to grow without boxed columns. */
.attraction-highlights-layout {
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  align-items:start;
  gap:clamp(2.5rem,6vw,6rem);
}
.attraction-highlights-intro { min-width:0; }
.attraction-highlights-photo { position:relative; overflow:hidden; margin:clamp(2rem,4vw,3.5rem) 0 0; }
.attraction-highlights-photo img { display:block; width:100%; height:auto; }
.attraction-highlights { margin:0; padding:0; list-style:none; }
.attraction-highlights > li {
  display:grid;
  grid-template-columns:2rem minmax(0,1fr);
  align-items:start;
  gap:clamp(.85rem,1.5vw,1.5rem);
  padding-block:clamp(1.75rem,3vw,2.75rem);
  border-top:1px solid rgba(255,255,255,.24);
}
.attraction-highlight-number { padding-top:.25rem; color:var(--red-soft); font-size:1rem; line-height:1.5; font-variant-numeric:tabular-nums; }
.attraction-highlight-copy { min-width:0; overflow-wrap:anywhere; }
.attraction-detail-page .attraction-highlights h3 {
  margin: 0;
  color:var(--white);
  font:400 clamp(1.75rem,2.5vw,2.6rem)/1.2 var(--serif);
  letter-spacing:-.015em;
  text-wrap:pretty;
}
.attraction-detail-page .attraction-highlights p {
  max-width:65ch;
  margin: 1.25rem 0 0;
  color: rgba(255,255,255,.78);
  font-family: var(--sans);
  font-size: clamp(1.0625rem,1.35vw,1.25rem);
  line-height: 1.8;
}
@media(max-width:900px) {
  .attraction-highlights-layout { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
  .attraction-highlights-photo { max-width:38rem; }
}
@media(max-width:560px) {
  .attraction-highlights > li { grid-template-columns:1.5rem minmax(0,1fr); gap:.75rem; }
  .attraction-highlight-number { font-size:.875rem; }
}
.attraction-detail-page .attraction-practical { grid-template-columns: minmax(0,1fr); }
.attraction-detail-page .attraction-practical > div,
.attraction-detail-page .attraction-practical > div:nth-child(even) {
  padding: 1.5rem 0;
  border-left: 0;
}
.attraction-detail-page .attraction-practical dt {
  color: #fff;
  font-size: .78rem;
  letter-spacing: .08em;
  line-height: 1.5;
}
.attraction-detail-page .attraction-practical dd {
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.75;
  color: rgba(255,255,255,.78);
}
/* Visitor questions form a full-width dark section, consistent with the guide. */
.attraction-detail-page .attraction-faq { padding:0; color:#fff; background:var(--black); }
.attraction-detail-page .attraction-faq-inner { padding-block:var(--section-space); }
.attraction-detail-page .attraction-faq-heading { margin:0 0 clamp(2.25rem,4vw,3.5rem); }
.attraction-detail-page .attraction-faq-heading h2 {
  max-width:20ch;
  margin:0;
  color:#fff;
  font-size:clamp(2.6rem,4.5vw,4.25rem);
  line-height:1.04;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.attraction-detail-page .attraction-faq-panels { border-bottom:1px solid var(--line-dark); }
.attraction-detail-page .attraction-faq details { padding:0; border-top:1px solid var(--line-dark); }
.attraction-detail-page .attraction-faq summary {
  display:grid;
  grid-template-columns:minmax(0,1fr) 2.5rem;
  align-items:center;
  gap:clamp(1rem,2vw,2rem);
  min-height:5.75rem;
  padding:1.35rem 0;
  list-style:none;
}
.attraction-detail-page .attraction-faq summary::-webkit-details-marker { display:none; }
.attraction-detail-page .attraction-faq summary::marker { content:""; }
.attraction-detail-page .attraction-faq-question {
  color:#fff;
  font:600 clamp(1.25rem,1.7vw,1.55rem)/1.35 var(--serif);
  letter-spacing:-.015em;
  text-wrap:pretty;
}
.attraction-faq-toggle {
  position:relative;
  display:block;
  width:2.4rem;
  height:2.4rem;
  border:1px solid var(--line-dark);
  border-radius:50%;
  transition:background-color 160ms ease,border-color 160ms ease;
}
.attraction-faq-toggle::before,.attraction-faq-toggle::after {
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:.75rem;
  height:1px;
  background:#fff;
  transform:translate(-50%,-50%);
  transition:transform 160ms ease,background-color 160ms ease;
}
.attraction-faq-toggle::after { transform:translate(-50%,-50%) rotate(90deg); }
.attraction-detail-page .attraction-faq details[open] .attraction-faq-toggle { border-color:var(--red); background:var(--red); }
.attraction-detail-page .attraction-faq details[open] .attraction-faq-toggle::before { background:#fff; }
.attraction-detail-page .attraction-faq details[open] .attraction-faq-toggle::after { background:#fff; transform:translate(-50%,-50%) rotate(90deg) scaleX(0); }
.attraction-faq-answer { margin:-.2rem 4.5rem 0 0; padding:0 0 1.9rem; }
.attraction-detail-page .attraction-faq-answer p { max-width:60ch; margin:0; color:rgba(255,255,255,.72); line-height:1.75; }
.attraction-detail-page .attraction-faq summary:hover .attraction-faq-toggle { border-color:var(--red); }
.attraction-detail-page .attraction-faq summary:focus-visible { outline:2px solid var(--red-soft); outline-offset:5px; }
@media(max-width:560px) {
  .attraction-detail-page .attraction-faq-heading { margin-bottom:1.75rem; }
  .attraction-detail-page .attraction-faq summary { grid-template-columns:minmax(0,1fr) 2.25rem; min-height:5.25rem; gap:.85rem; padding:1.15rem 0; }
  .attraction-faq-toggle { width:2.15rem; height:2.15rem; }
  .attraction-faq-answer { margin:0 3rem 0 0; padding-bottom:1.5rem; }
}
@media(prefers-reduced-motion:reduce) {
  .attraction-faq-toggle,.attraction-faq-toggle::before,.attraction-faq-toggle::after { transition:none; }
}
.attraction-feedback { padding-block:var(--section-space); background:var(--paper); }
.attraction-feedback-heading { margin-bottom:clamp(1.75rem,3vw,2.5rem); }
.attraction-feedback-heading .display { margin:0; font-size:clamp(2.6rem,5.2vw,4.8rem); line-height:1.1; text-wrap:balance; }
.attraction-feedback-body { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem clamp(2rem,5vw,5rem); max-width:72rem; }
.attraction-feedback-body p { margin:0; color:var(--muted); font-size:1rem; line-height:1.8; }
.attraction-feedback-body > p:first-child { grid-column:1 / -1; max-width:68ch; color:var(--ink); font:400 clamp(1.35rem,1.8vw,1.65rem)/1.55 var(--serif); }
.attraction-feedback-detail h3 { margin:0 0 .75rem; color:var(--ink); font:800 clamp(.72rem,.95vw,.86rem)/1.4 var(--sans); letter-spacing:.23em; text-transform:uppercase; }
@supports (grid-template-rows:subgrid) {
  .attraction-feedback-detail { display:grid; grid-row:span 2; grid-template-rows:subgrid; row-gap:.75rem; }
  .attraction-feedback-detail h3 { margin-bottom:0; }
}
.attraction-feedback-context { max-width:72rem; margin:1.75rem 0 0; padding-top:1rem; border-top:1px solid #d7d4ce; color:var(--muted); font-size:.82rem; line-height:1.6; }
.attraction-feedback-reviewed { display:flex; align-items:baseline; gap:.65rem; max-width:72rem; margin:2rem 0 0; color:var(--muted); font-size:.875rem; line-height:1.6; }
.attraction-feedback-reviewed::before { content:""; flex:0 0 .45rem; width:.45rem; height:.45rem; border-radius:50%; background:var(--red); }
@media(max-width:680px) {
  .attraction-feedback-body { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
  .attraction-feedback-detail { display:block; grid-row:auto; }
  .attraction-feedback-detail h3 { margin-bottom:.75rem; }
}
/* Match the shared hero's stacking breakpoint and let width determine media height. */
@media (max-width:840px) {
  .attraction-detail-page .hotel-profile-media { width:100%; min-width:0; max-width:100%; height:auto; min-height:0; aspect-ratio:1.45; }
  .attraction-detail-page .hotel-profile-media>img { position:absolute; inset:0; }
}
.attraction-time .attraction-visits-heading {
  margin:0;
  font-size:clamp(2rem,3.2vw,3rem);
  line-height:1.12;
  letter-spacing:-.035em;
}
.attraction-visits {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:2rem clamp(2rem,5vw,5rem);
  margin-top:clamp(1.75rem,3vw,2.5rem);
}
.attraction-visits > article {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-content:start;
  gap:1.15rem;
  min-width:0;
  border-top:1px solid var(--line);
  padding-top:1.5rem;
}
.attraction-visits > article:only-child { grid-column:1 / -1; }
.attraction-visits h4 {
  margin:0;
  font:800 clamp(.75rem,1vw,.85rem)/1.5 var(--sans);
  letter-spacing:.16em;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
.attraction-visits .attraction-duration {
  margin:0;
  font:400 clamp(2.75rem,4.5vw,4rem)/1.1 var(--serif);
  letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
}
.attraction-duration-value { white-space:nowrap; }
.attraction-duration-unit { margin-left:.25rem; font:400 1rem/1.4 var(--sans); letter-spacing:0; color:var(--muted); }
.attraction-visit-copy { max-width:60ch; margin:0; color:var(--muted); font-size:clamp(1rem,1.3vw,1.125rem); line-height:1.75; }
.attraction-operations {
  align-self:start;
  margin:0;
  padding-top:.75rem;
  border-top:1px solid #d7d4ce;
  color:#565656;
  font-size:.875rem;
  line-height:1.6;
}
.attraction-operations > p { margin:0; }
.attraction-operations > p + p { margin-top:.35rem; }
.attraction-visits .attraction-status { margin:0; }
/* Shared tracks keep wrapped titles, times and copy aligned in each pair. */
@supports (grid-template-rows:subgrid) {
  @media (min-width:821px) {
    .attraction-visits { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:1.15rem; }
    .attraction-visits > article { grid-row:span 3; grid-template-rows:subgrid; }
    .attraction-visits h4 { grid-row:1; align-self:start; }
    .attraction-visits .attraction-duration { grid-row:2; align-self:start; }
    .attraction-visit-copy { grid-row:3; align-self:start; }
  }
}
@media(min-width:821px) {
  .attraction-visits > article:only-child {
    grid-row:auto;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    grid-template-rows:auto auto;
    column-gap:clamp(2rem,6vw,6rem);
  }
  .attraction-visits > article:only-child h4 { grid-column:1; grid-row:1; }
  .attraction-visits > article:only-child .attraction-duration { grid-column:1; grid-row:2; }
  .attraction-visits > article:only-child .attraction-visit-copy { grid-column:2; grid-row:1 / span 2; align-self:center; }
}
.attraction-status-closed,.attraction-status-temporarily_closed,.attraction-status-unconfirmed { padding:.75rem 1rem; border-left:3px solid #a80000; background:#fff0ee; color:#701b15; }
/* A quiet address panel and local cartography replace oversized neighbourhood headings. */
.attraction-location { padding-block:var(--section-space); background:var(--paper); color:var(--text); }
.attraction-location-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:clamp(2.5rem,6vw,6rem); }
.attraction-location-copy { min-width:0; }
.attraction-location-copy .eyebrow { margin-bottom:1.25rem; }
.attraction-location-copy .display { max-width:18ch; margin:0; font-size:clamp(2.5rem,4.2vw,4.25rem); line-height:1.08; text-wrap:balance; }
.attraction-location-area { max-width:48ch; margin:1.25rem 0 0; color:var(--muted); font-size:clamp(1rem,1.3vw,1.15rem); line-height:1.7; }
.attraction-location-guide { display:grid; grid-template-columns:minmax(0,1fr) 3rem; align-items:center; gap:1.25rem; margin-top:clamp(1.75rem,3vw,2.25rem); padding:clamp(1.2rem,2vw,1.55rem) 0; border-block:1px solid var(--line); color:var(--text); text-decoration:none; }
.attraction-location-guide-copy { display:grid; gap:.35rem; min-width:0; }
.attraction-location-guide-copy strong { font:700 clamp(1.45rem,2vw,1.8rem)/1.12 var(--serif); letter-spacing:-.025em; text-wrap:balance; transition:color 160ms ease; }
.attraction-location-guide-copy > span { color:var(--muted); font:400 .92rem/1.55 var(--sans); text-wrap:pretty; }
.attraction-location-guide-arrow { display:grid; width:3rem; height:3rem; place-items:center; border:1px solid var(--line); border-radius:50%; font:500 1.2rem/1 var(--sans); transition:color 160ms ease,background-color 160ms ease,border-color 160ms ease,transform 160ms ease; }
.attraction-location-guide:hover .attraction-location-guide-copy strong,.attraction-location-guide:focus-visible .attraction-location-guide-copy strong { color:var(--red); }
.attraction-location-guide:hover .attraction-location-guide-arrow,.attraction-location-guide:focus-visible .attraction-location-guide-arrow { border-color:var(--red); color:#fff; background:var(--red); transform:translateX(.15rem); }
.attraction-location-guide:focus-visible { outline:2px solid var(--red); outline-offset:5px; }
.attraction-location-guide + .attraction-location-address { margin-top:0; border-top:0; }
.attraction-location-address { margin-top:1.75rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.attraction-location-address h3 { margin:0 0 .75rem; font:800 .7rem/1.5 var(--sans); letter-spacing:.2em; text-transform:uppercase; }
.attraction-location-address address { font:400 1rem/1.75 var(--sans); }
.attraction-location-address address > span { display:block; }
.attraction-location-note { max-width:45ch; margin:1rem 0 0; color:var(--muted); font-size:.9rem; line-height:1.65; }
.attraction-location-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem; margin-top:1.75rem; }
.attraction-location-directions { display:inline-flex; align-items:center; justify-content:space-between; gap:1rem; min-height:3.25rem; padding:.85rem 1.25rem; border:1px solid var(--text); background:var(--text); color:#fff; font:700 .9rem/1.4 var(--sans); text-decoration:none; }
.attraction-location-directions svg { width:1.2rem; height:1.2rem; flex-shrink:0; }
.attraction-location-directions > span { margin-left:1rem; font-size:1.15rem; }
.attraction-location-directions:hover { border-color:var(--red); background:var(--red); }
.attraction-location-map-link { font-size:.9rem; font-weight:700; text-underline-offset:.3em; }
.attraction-location-map { min-width:0; margin:0; }
.attraction-location-map-image { display:block; position:relative; overflow:hidden; background:#eae7df; text-decoration:none; }
.attraction-location-map img { display:block; width:100%; height:auto; }
.attraction-location-map-open { display:inline-flex; align-items:center; gap:1.5rem; position:absolute; right:1.25rem; bottom:1.25rem; padding:.75rem 1rem; border:1px solid var(--line); background:#fff; color:var(--text); font:700 .8rem/1.4 var(--sans); box-shadow:0 2px 10px rgba(17,17,17,.06); }
.attraction-location-map-image:hover .attraction-location-map-open { color:var(--red); border-color:var(--red); }
.attraction-location-map figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.35rem 1rem; margin-top:.7rem; color:var(--muted); font:400 .7rem/1.5 var(--sans); }
.attraction-location-map figcaption a { text-decoration-thickness:1px; text-underline-offset:.2em; }
.attraction-location-without-map { grid-template-columns:minmax(0,1fr); }
.attraction-location-without-map .attraction-location-copy { max-width:48rem; }
@media (max-width:900px) {
  .attraction-location-layout { grid-template-columns:minmax(0,1fr); gap:2rem; }
  .attraction-location-copy .display { max-width:24ch; }
  .attraction-location-map-open { right:.85rem; bottom:.85rem; padding:.65rem .85rem; }
}
@media (max-width:560px) {
  .attraction-location-guide { grid-template-columns:minmax(0,1fr) 2.7rem; gap:.9rem; }
  .attraction-location-guide-arrow { width:2.7rem; height:2.7rem; }
}
@media (prefers-reduced-motion:reduce) {
  .attraction-location-guide-copy strong,.attraction-location-guide-arrow { transition:none; }
  .attraction-location-guide:hover .attraction-location-guide-arrow,.attraction-location-guide:focus-visible .attraction-location-guide-arrow { transform:none; }
}
/* Related guides use the same display type, photograph proportions and editorial rhythm. */
.attraction-related { padding-block:clamp(3rem,5vw,5rem) clamp(4rem,7vw,7rem); }
.attraction-related-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem 3rem; }
.attraction-related-heading .eyebrow { margin-bottom:1rem; }
.attraction-related-heading .display { font-size:clamp(2.6rem,5.2vw,4.8rem); line-height:1.1; }
.attraction-related-all { display:inline-flex; min-height:2.75rem; align-items:center; justify-content:space-between; gap:1.2rem; color:var(--text); font:700 .9rem/1.5 var(--sans); text-decoration:none; }
.attraction-related-all { flex-shrink:0; padding-bottom:.4rem; border-bottom:1px solid var(--text); }
.attraction-related-all span { font-size:1.2rem; }
.attraction-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.5rem clamp(1.25rem,2.5vw,2.5rem); margin:2.5rem 0 0; padding:0; list-style:none; }
.attraction-related-card { min-width:0; border-bottom:1px solid var(--line); }
.attraction-related-card > a { display:flex; height:100%; min-width:0; flex-direction:column; padding-bottom:1.25rem; color:var(--text); text-decoration:none; }
.attraction-related-image { display:block; overflow:hidden; aspect-ratio:4/3; margin-bottom:1.4rem; background:var(--paper); }
.attraction-related-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 220ms ease; }
.attraction-related-area { margin:0 0 .7rem; color:var(--muted); font:800 .7rem/1.5 var(--sans); letter-spacing:.19em; text-transform:uppercase; }
.attraction-related-card h3 { margin:0 0 .9rem; font:700 clamp(1.75rem,2.4vw,2.4rem)/1.1 var(--serif); letter-spacing:-.035em; text-wrap:balance; }
.attraction-related-description { margin:0 0 1.35rem; color:var(--muted); font:400 1rem/1.7 var(--sans); }
.attraction-related-action { display:flex; min-height:2.75rem; margin-top:auto; align-items:center; justify-content:space-between; gap:1rem; font:750 .85rem/1.5 var(--sans); }
.attraction-related-action > span { display:grid; width:2.4rem; height:2.4rem; flex-shrink:0; place-items:center; border:1px solid var(--line); border-radius:50%; font-size:1.2rem; transition:border-color 160ms ease,color 160ms ease; }
.attraction-related-card a:hover .attraction-related-action,.attraction-related-card a:focus-visible .attraction-related-action,.attraction-related-all:hover,.attraction-related-guides a:hover { color:var(--red); }
.attraction-related-card a:hover .attraction-related-action > span,.attraction-related-card a:focus-visible .attraction-related-action > span { border-color:var(--red); }
.attraction-related a:focus-visible { outline:2px solid var(--red); outline-offset:6px; }
.attraction-related-guides { margin-top:clamp(3rem,6vw,5rem); border-block:1px solid var(--line); }
.attraction-related-guides a { display:flex; width:100%; min-height:6.5rem; padding-block:clamp(1.35rem,2.5vw,2rem); align-items:center; justify-content:space-between; gap:2rem; color:var(--text); text-decoration:none; }
.attraction-related-guides a+a { border-top:1px solid var(--line); }
.attraction-related-guide-title { font:700 clamp(1.8rem,3vw,3rem)/1.08 var(--serif); letter-spacing:-.035em; text-wrap:balance; }
.attraction-related-guide-arrow { display:grid; width:3.25rem; height:3.25rem; flex:0 0 3.25rem; place-items:center; border:1px solid var(--line); border-radius:50%; font:500 1.35rem/1 var(--sans); transition:border-color 160ms ease,background-color 160ms ease,color 160ms ease,transform 160ms ease; }
.attraction-related-guides a:hover .attraction-related-guide-arrow,.attraction-related-guides a:focus-visible .attraction-related-guide-arrow { border-color:var(--red); color:#fff; background:var(--red); transform:translateX(.15rem); }
@supports (grid-template-rows:subgrid) {
  .attraction-related-card { display:grid; grid-row:span 5; grid-template-rows:subgrid; row-gap:0; }
  .attraction-related-card > a { display:grid; grid-row:span 5; grid-template-rows:subgrid; row-gap:0; }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .attraction-related-card a:hover img { transform:scale(1.025); }
}
@media (max-width:1000px) {
  .attraction-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .attraction-related-heading { align-items:flex-start; flex-direction:column; gap:1rem; }
  .attraction-related-grid { grid-template-columns:minmax(0,1fr); gap:2rem; margin-top:1.75rem; }
  .attraction-related-card,.attraction-related-card > a { grid-row:auto; }
  .attraction-related-card { display:block; }
  .attraction-related-card > a { display:flex; }
  .attraction-related-image { margin-bottom:1.15rem; }
  .attraction-related-guides { margin-top:2.75rem; }
  .attraction-related-guides a { min-height:5.75rem; gap:1rem; }
  .attraction-related-guide-arrow { width:2.8rem; height:2.8rem; flex-basis:2.8rem; }
}
@media (prefers-reduced-motion:reduce) {
  .attraction-related-image img,.attraction-related-action > span,.attraction-related-guide-arrow { transition:none; }
  .attraction-related-guides a:hover .attraction-related-guide-arrow,.attraction-related-guides a:focus-visible .attraction-related-guide-arrow { transform:none; }
}

/* One shared, progressively enhanced gallery for every attraction. */
.attraction-detail-page .attraction-photo-section {
  padding-block:var(--section-space);
}
.attraction-photo-section [hidden] { display:none; }
.attraction-gallery-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:clamp(1.75rem,3vw,3rem);
}
.attraction-gallery-heading > div { min-width:0; }
.attraction-gallery-heading .eyebrow { margin:0 0 1rem; color:var(--red-soft); }
.attraction-gallery-heading h2 {
  max-width:24ch;
  margin:0;
  font:500 clamp(2.25rem,4.5vw,4.25rem)/1.08 var(--serif);
  letter-spacing:-.025em;
  text-wrap:balance;
}
.attraction-gallery-launch,
.attraction-viewer-close,
.attraction-viewer-navigation button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  gap:.65rem;
  min-height:44px;
  border:1px solid rgba(255,255,255,.35);
  padding:.7rem 1rem;
  color:#fff;
  background:transparent;
  font-size:.875rem;
  line-height:1.4;
  cursor:pointer;
}
.attraction-photo-section button:focus-visible {
  outline:3px solid #fff;
  outline-offset:4px;
}
.attraction-photo-section button svg { width:21px; height:21px; flex-shrink:0; }
.attraction-gallery {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(.65rem,1.2vw,1.15rem);
}
.attraction-gallery-item {
  position:relative;
  min-width:0;
  min-height:0;
  margin:0;
  overflow:hidden;
  aspect-ratio:4 / 3;
  background:#252525;
}
.attraction-gallery-item img { display:block; width:100%; height:100%; object-fit:cover; }
.attraction-feedback-photo { grid-column:1 / -1; aspect-ratio:auto; }
.attraction-feedback-photo img { height:auto; }
.attraction-feedback-photo [hidden],.attraction-highlights-photo [hidden],.attraction-story-photo [hidden] { display:none; }
.attraction-feedback-photo .attraction-gallery-trigger:focus-visible,.attraction-highlights-photo .attraction-gallery-trigger:focus-visible,.attraction-story-photo .attraction-gallery-trigger:focus-visible { outline:3px solid #fff; outline-offset:-6px; }
.attraction-gallery-trigger svg { width:21px; height:21px; }
.attraction-gallery-four {
  height:clamp(28rem,48vw,42rem);
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
}
.attraction-gallery-four .attraction-gallery-item { aspect-ratio:auto; }
.attraction-gallery-four .attraction-gallery-item:first-child,
.attraction-gallery-four .attraction-gallery-item:last-child { grid-column:span 2; }
/* A fifth portrait balances four supporting landscape views without an orphaned tile. */
.attraction-gallery-five {
  height:clamp(28rem,48vw,42rem);
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
}
.attraction-gallery-five .attraction-gallery-item { aspect-ratio:auto; }
.attraction-gallery-five .attraction-gallery-portrait { grid-column:3; grid-row:1 / -1; }
.attraction-gallery-featured {
  height:clamp(24rem,42vw,38rem);
  grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  grid-template-rows:repeat(2,minmax(0,1fr));
}
.attraction-gallery-featured .attraction-gallery-item { aspect-ratio:auto; }
.attraction-gallery-featured .attraction-gallery-item:first-child { grid-row:1 / -1; }
.attraction-gallery-single .attraction-gallery-item { grid-column:1 / -1; aspect-ratio:16 / 9; }
@media (max-width:760px) {
  .attraction-gallery-five { height:auto; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; }
  .attraction-gallery-five .attraction-gallery-item { aspect-ratio:4 / 3; }
  .attraction-gallery-five .attraction-gallery-portrait { grid-column:auto; grid-row:auto; }
  .attraction-gallery-five .attraction-gallery-item:first-child { grid-column:1 / -1; aspect-ratio:16 / 9; }
  .attraction-gallery-four { height:auto; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; }
  .attraction-gallery-four .attraction-gallery-item { aspect-ratio:4 / 3; }
  .attraction-gallery-four .attraction-gallery-item:first-child,
  .attraction-gallery-four .attraction-gallery-item:last-child { grid-column:1 / -1; aspect-ratio:16 / 9; }
}
.attraction-gallery-trigger {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  border:0;
  padding:0;
  color:#fff;
  background:transparent;
  cursor:zoom-in;
}
.attraction-photo-section .attraction-gallery-trigger:focus-visible { outline-offset:-6px; }
.attraction-gallery-expand {
  position:absolute;
  right:1rem;
  bottom:1rem;
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:1px solid rgba(255,255,255,.5);
  border-radius:50%;
  background:rgba(17,17,17,.7);
}
html.attraction-gallery-open { overflow:hidden; }
.attraction-photo-viewer {
  width:min(94vw,1440px);
  height:min(92vh,1100px);
  height:min(92dvh,1100px);
  max-width:none;
  max-height:none;
  margin:auto;
  padding:clamp(1rem,2vw,2rem);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  background:#111;
}
.attraction-photo-viewer::backdrop { background:rgba(0,0,0,.9); }
.attraction-viewer-shell {
  display:grid;
  height:100%;
  min-height:0;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:1rem;
}
.attraction-viewer-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.attraction-viewer-header > div { min-width:0; }
.attraction-viewer-header p {
  margin:0 0 .35rem;
  color:var(--red-soft);
  font-size:.65rem;
  font-weight:650;
  line-height:1.4;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.attraction-viewer-header h2 { margin:0; font:400 clamp(1.25rem,2vw,1.75rem)/1.2 var(--serif); }
.attraction-viewer-close { width:44px; height:44px; padding:0; border-radius:50%; }
.attraction-viewer-figure {
  display:grid;
  min-width:0;
  min-height:0;
  margin:0;
  grid-template-rows:minmax(0,1fr) auto;
  gap:.9rem;
}
.attraction-viewer-canvas { position:relative; display:grid; min-width:0; min-height:0; place-items:center; touch-action:pan-y pinch-zoom; }
.attraction-viewer-canvas img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
.attraction-viewer-figure figcaption {
  max-width:75ch;
  margin-inline:auto;
  color:rgba(255,255,255,.75);
  font-size:.85rem;
  line-height:1.5;
  text-align:center;
  overflow-wrap:anywhere;
}
.attraction-viewer-status { margin:0; padding:1rem; color:#ccc; font-size:.9rem; text-align:center; }
.attraction-viewer-navigation { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; }
.attraction-viewer-navigation button:first-child { justify-self:start; }
.attraction-viewer-navigation button:last-child { justify-self:end; }
.attraction-viewer-navigation p { grid-column:2; margin:0; color:#ccc; font-size:.8rem; font-variant-numeric:tabular-nums; }
@media (hover:hover) {
  .attraction-gallery-launch:hover,
  .attraction-viewer-close:hover,
  .attraction-viewer-navigation button:hover { border-color:#fff; background:rgba(255,255,255,.08); }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .attraction-gallery-item img { transition:transform .45s ease; }
  .attraction-gallery-item:has(.attraction-gallery-trigger:not([hidden])):hover img { transform:scale(1.018); }
  .attraction-detail-page.attraction-typography-v2 .attraction-highlights-photo img,
  .attraction-detail-page.attraction-typography-v2 .attraction-story-photo img { transition:transform .45s ease; }
  .attraction-detail-page.attraction-typography-v2 .attraction-highlights-photo:has(.attraction-gallery-trigger:not([hidden])):hover img,
  .attraction-detail-page.attraction-typography-v2 .attraction-story-photo:has(.attraction-gallery-trigger:not([hidden])):hover img { transform:scale(1.018); }
}
@media (max-width:760px) {
  .attraction-gallery-heading { align-items:flex-start; flex-direction:column; gap:1.25rem; }
  .attraction-gallery-heading h2 { font-size:clamp(2.25rem,6vw,3.25rem); }
  .attraction-gallery-featured { height:auto; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; }
  .attraction-gallery-featured .attraction-gallery-item { aspect-ratio:4 / 3; }
  .attraction-gallery-featured .attraction-gallery-item:first-child { grid-column:1 / -1; grid-row:auto; }
  .attraction-gallery-expand { right:.65rem; bottom:.65rem; }
}
@media (max-width:640px) {
  .attraction-photo-viewer {
    width:100%;
    height:100vh;
    height:100dvh;
    border:0;
    padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));
  }
  .attraction-viewer-navigation { gap:.75rem; }
  .attraction-viewer-navigation button { padding:.6rem .75rem; }
}

/* Use the city page's quiet footer disclosures for sources and attribution. */
.hotel-detail-page .attraction-references {
  padding-block:1.7rem;
  border-top:1px solid var(--line-dark);
  color:#aaa;
  background:var(--black);
}
.attraction-references details { font-size:.74rem; line-height:1.7; }
.hotel-detail-page .attraction-references summary { color:#aaa; }
.attraction-references summary:focus-visible { outline:2px solid currentColor; outline-offset:6px; }
.attraction-references .attraction-reference-list { gap:1rem 2rem; }
.attraction-references .attraction-reference-list li { align-items:start; }
.hotel-detail-page .attraction-references li span { min-width:0; color:inherit; }
.attraction-reference-label,.attraction-reference-links { overflow-wrap:anywhere; }
.attraction-reference-links>span { display:inline-block; max-width:100%; }
.hotel-detail-page .attraction-references a { color:inherit; text-decoration-color:#5d5d5d; }
.hotel-detail-page .attraction-references a:hover,
.hotel-detail-page .attraction-references a:focus-visible { color:#fff; text-decoration-color:currentColor; }
.attraction-reference-note { max-width:62rem; margin:1.25rem 0 0; }
.attraction-reference-review { max-width:62rem; margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--line-dark); }
.attraction-reference-review p { max-width:85ch; margin:0 0 .65rem; }
.attraction-reference-review p:last-child { margin-bottom:0; }
@media (max-width:680px) {
  .attraction-references .attraction-reference-list { grid-template-columns:1fr; }
}

/* A photograph not used elsewhere on the page supports the history. */
.attraction-story-photo {
  position:relative;
  overflow:hidden;
  margin:clamp(2rem,4vw,3.5rem) 0 0;
}
.attraction-story-photo img { display:block; width:100%; height:auto; }

/* Keep ordinary reading copy at the same responsive size as the hero intro.
   Labels, controls, captions, dates and source notes retain their smaller
   functional hierarchy. The rollout class reaches only regenerated pages. */
.attraction-detail-page.attraction-typography-v2 {
  --attraction-reading-size:clamp(1.08rem,1.45vw,1.32rem);
}
.attraction-detail-page.attraction-typography-v2 .hotel-profile-dek,
.attraction-detail-page.attraction-typography-v2 .hotel-story-copy > p,
.attraction-detail-page.attraction-typography-v2 .attraction-highlights p,
.attraction-detail-page.attraction-typography-v2 .attraction-practical dd,
.attraction-detail-page.attraction-typography-v2 .hotel-practical-copy > p,
.attraction-detail-page.attraction-typography-v2 .attraction-feedback-detail p,
.attraction-detail-page.attraction-typography-v2 .attraction-visit-copy,
.attraction-detail-page.attraction-typography-v2 .attraction-location-area,
.attraction-detail-page.attraction-typography-v2 .attraction-location-address address,
.attraction-detail-page.attraction-typography-v2 .attraction-related-description,
.attraction-detail-page.attraction-typography-v2 .attraction-faq-answer p {
  font-size:var(--attraction-reading-size);
}
.attraction-detail-page.attraction-typography-v2 .attraction-practical dt {
  font-size:clamp(.9rem,1vw,1rem);
}
@media (max-width:680px) {
  .attraction-detail-page.attraction-typography-v2 {
    --attraction-reading-size:1.03rem;
  }
}

/* English attraction directory: an editorial route into Lisbon, not a filter UI. */
.attraction-directory-v2 {
  --directory-section-space:clamp(4.75rem,8vw,8rem);
  background:#fff;
}
.attraction-directory-v2-hero {
  overflow:hidden;
  color:#fff;
  background:var(--black);
}
.attraction-directory-v2-hero-grid {
  display:grid;
  width:min(100%,calc(var(--frame) + (var(--gutter)*2)));
  min-height:clamp(42rem,67vw,56rem);
  margin-inline:auto;
  grid-template-columns:minmax(0,.96fr) minmax(28rem,1.04fr);
}
.attraction-directory-v2-hero-copy {
  display:flex;
  min-width:0;
  padding:clamp(4.5rem,7vw,7rem) clamp(3rem,6vw,6.5rem) clamp(4rem,6vw,6rem) var(--gutter);
  justify-content:center;
  flex-direction:column;
}
.attraction-directory-v2-hero-copy .eyebrow { margin-bottom:clamp(1.6rem,2.8vw,2.5rem); }
.attraction-directory-v2-hero-copy .display {
  max-width:8.5ch;
  color:#fff;
  font-size:clamp(4.25rem,7.2vw,8rem);
  line-height:.89;
}
.attraction-directory-v2-lead {
  max-width:35rem;
  margin:clamp(2rem,3.6vw,3rem) 0 0;
  color:rgba(255,255,255,.76);
  font-size:clamp(1.08rem,1.45vw,1.3rem);
  line-height:1.72;
}
.attraction-directory-v2-principles {
  padding:0;
  margin:clamp(2.75rem,4.5vw,4rem) 0 0;
  border-bottom:1px solid var(--line-dark);
  list-style:none;
}
.attraction-directory-v2-principles li {
  display:grid;
  padding:1.05rem 0;
  align-items:start;
  grid-template-columns:minmax(9.5rem,.72fr) minmax(0,1.28fr);
  gap:clamp(1rem,2.5vw,2.5rem);
  border-top:1px solid var(--line-dark);
}
.attraction-directory-v2-principles strong {
  color:#fff;
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.065em;
  line-height:1.45;
  text-transform:uppercase;
}
.attraction-directory-v2-principles span {
  color:rgba(255,255,255,.58);
  font-size:.88rem;
  line-height:1.55;
}
.attraction-directory-v2-hero-media {
  position:relative;
  min-width:0;
  min-height:100%;
  overflow:hidden;
  margin:0;
  background:#272522;
}
.attraction-directory-v2-hero-media::after {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(17,17,17,.18),transparent 32%);
  content:"";
  pointer-events:none;
}
.attraction-directory-v2-hero-media picture,
.attraction-directory-v2-hero-media img {
  display:block;
  width:100%;
  height:100%;
}
.attraction-directory-v2-hero-media img { object-fit:cover; }
.attraction-directory-v2-hero-media figcaption {
  position:absolute;
  right:1.25rem;
  bottom:1.25rem;
  z-index:1;
  max-width:calc(100% - 2.5rem);
  padding:.5rem .7rem;
  color:rgba(255,255,255,.86);
  background:rgba(17,17,17,.78);
  font-size:.66rem;
  font-weight:750;
  letter-spacing:.055em;
  line-height:1.45;
  text-transform:uppercase;
}
.attraction-directory-v2-collection {
  padding-block:var(--directory-section-space);
  background:#fff;
}
.attraction-directory-v2-collection--paper { background:var(--paper); }
.attraction-directory-v2-heading {
  display:grid;
  padding-bottom:clamp(2.75rem,5vw,4.5rem);
  align-items:end;
  grid-template-columns:minmax(0,1.22fr) minmax(22rem,.78fr);
  gap:clamp(3rem,8vw,8rem);
  border-bottom:1px solid rgba(17,17,17,.22);
}
.attraction-directory-v2-heading .eyebrow { margin-bottom:clamp(1.25rem,2.2vw,1.9rem); }
.attraction-directory-v2-heading .display {
  max-width:13ch;
  font-size:clamp(3.45rem,6.6vw,7rem);
  line-height:.93;
}
.attraction-directory-v2-heading-copy { padding-bottom:.35rem; }
.attraction-directory-v2-heading-copy .body-large { max-width:34rem; }
.attraction-directory-v2-count {
  padding-top:1.2rem;
  margin:clamp(1.5rem,2.5vw,2rem) 0 0;
  border-top:1px solid rgba(17,17,17,.18);
  color:var(--red);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.16em;
  line-height:1.4;
  text-transform:uppercase;
}
.attraction-directory-v2-grid {
  display:grid;
  padding-top:clamp(2.5rem,5vw,4.5rem);
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(2.5rem,5vw,5rem) clamp(1.5rem,3vw,3rem);
}
.attraction-directory-v2-card {
  display:flex;
  min-width:0;
  flex-direction:column;
  border-bottom:1px solid rgba(17,17,17,.25);
  background:transparent;
}
.attraction-directory-v2-card-link {
  display:flex;
  min-width:0;
  height:100%;
  flex:1;
  flex-direction:column;
  color:inherit;
  text-decoration:none;
}
.attraction-directory-v2-media {
  position:relative;
  overflow:hidden;
  aspect-ratio:4 / 3;
  background:#e7e3dc;
}
.attraction-directory-v2-media picture,
.attraction-directory-v2-media img {
  display:block;
  width:100%;
  height:100%;
}
.attraction-directory-v2-media img {
  object-fit:cover;
  transition:transform .55s cubic-bezier(.2,.6,.2,1);
}
.attraction-directory-v2-media > span {
  position:absolute;
  right:0;
  bottom:0;
  padding:.62rem .8rem;
  color:#fff;
  background:rgba(17,17,17,.88);
  font-size:.65rem;
  font-weight:850;
  letter-spacing:.11em;
  line-height:1.25;
  text-transform:uppercase;
}
.attraction-directory-v2-card-copy {
  display:flex;
  min-height:21rem;
  padding:clamp(1.5rem,2.5vw,2.25rem) 0 clamp(1.75rem,2.8vw,2.4rem);
  flex:1;
  flex-direction:column;
}
.attraction-directory-v2-category {
  margin:0 0 1.1rem;
  color:var(--red);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.17em;
  line-height:1.4;
  text-transform:uppercase;
}
.attraction-directory-v2-card h3 {
  max-width:18ch;
  margin:0;
  font:700 clamp(2.15rem,3.3vw,3.65rem)/.98 var(--serif);
  letter-spacing:-.045em;
  text-wrap:balance;
}
.attraction-directory-v2-card h3 { transition:color 180ms ease; }
.attraction-directory-v2-native {
  margin:.85rem 0 0;
  color:#74706a;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1.45;
}
.attraction-directory-v2-summary {
  max-width:43rem;
  margin:1.35rem 0 0;
  color:#5e5a55;
  font-size:clamp(.98rem,1.2vw,1.08rem);
  line-height:1.72;
}
.attraction-directory-v2-action {
  display:flex;
  width:100%;
  min-height:3rem;
  padding-top:1.1rem;
  margin-top:auto;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  color:var(--black);
  font-size:.74rem;
  font-weight:850;
  letter-spacing:.11em;
  line-height:1.35;
  text-transform:uppercase;
}
.attraction-directory-v2-action span:last-child {
  display:grid;
  width:2.4rem;
  height:2.4rem;
  flex-shrink:0;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--black);
  font-size:1.2rem;
  line-height:1;
  transition:border-color 160ms ease,color 160ms ease;
}
.attraction-directory-v2-card-link:focus-visible {
  outline:2px solid var(--red);
  outline-offset:6px;
}
.attraction-directory-v2-card-link:focus-visible h3,
.attraction-directory-v2-card-link:focus-visible .attraction-directory-v2-action,
.attraction-directory-v2-card-link:hover h3,
.attraction-directory-v2-card-link:hover .attraction-directory-v2-action { color:var(--red); }
.attraction-directory-v2-card-link:focus-visible .attraction-directory-v2-action span:last-child,
.attraction-directory-v2-card-link:hover .attraction-directory-v2-action span:last-child { border-color:var(--red); color:var(--red); }
.attraction-directory-v2-next {
  padding-block:clamp(4.75rem,8vw,8rem);
  color:#fff;
  background:var(--black);
}
.attraction-directory-v2-next-grid {
  display:grid;
  align-items:start;
  grid-template-columns:minmax(0,1.15fr) minmax(22rem,.85fr);
  gap:clamp(3rem,8vw,8rem);
}
.attraction-directory-v2-next .display {
  max-width:11ch;
  color:#fff;
  font-size:clamp(3.5rem,6.5vw,6.75rem);
  line-height:.94;
}
.attraction-directory-v2-next-grid > div:last-child > p {
  max-width:36rem;
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:clamp(1.05rem,1.45vw,1.25rem);
  line-height:1.72;
}
.attraction-directory-v2-next-links {
  margin-top:clamp(2rem,3.5vw,3rem);
  border-bottom:1px solid var(--line-dark);
}
.attraction-directory-v2-next-links a {
  display:flex;
  min-height:4.25rem;
  padding:1rem 0;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-top:1px solid var(--line-dark);
  color:#fff;
  font-weight:800;
  line-height:1.4;
  text-decoration:none;
}
.attraction-directory-v2-next-links a span { color:var(--red-soft); font-size:1.25rem; }
.attraction-directory-v2-next-links a:focus-visible,
.attraction-directory-v2-next-links a:hover { color:var(--red-soft); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .attraction-directory-v2-card-link:hover .attraction-directory-v2-media img { transform:scale(1.025); }
}
@media (min-width:1381px) {
  .attraction-directory-v2-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .attraction-directory-v2-card-copy { min-height:22rem; }
  .attraction-directory-v2-card h3 { font-size:clamp(2rem,2.6vw,3.1rem); }
}
@media (max-width:980px) {
  .attraction-directory-v2-hero-grid { grid-template-columns:minmax(0,1fr) minmax(22rem,.78fr); }
  .attraction-directory-v2-hero-copy { padding-right:clamp(2rem,4vw,3.5rem); }
  .attraction-directory-v2-principles li { grid-template-columns:minmax(0,1fr); gap:.4rem; }
  .attraction-directory-v2-heading,
  .attraction-directory-v2-next-grid { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
  .attraction-directory-v2-heading-copy { max-width:42rem; padding-bottom:0; }
}
@media (max-width:760px) {
  .attraction-directory-v2 { --directory-section-space:clamp(3.75rem,13vw,5.25rem); }
  .attraction-directory-v2-hero-grid { min-height:0; grid-template-columns:minmax(0,1fr); }
  .attraction-directory-v2-hero-copy { padding:clamp(3.5rem,12vw,5rem) var(--gutter); }
  .attraction-directory-v2-hero-copy .display { max-width:9ch; font-size:clamp(3.65rem,17vw,5.4rem); }
  .attraction-directory-v2-lead { margin-top:1.75rem; }
  .attraction-directory-v2-principles { margin-top:2.5rem; }
  .attraction-directory-v2-principles li { padding:.95rem 0; }
  .attraction-directory-v2-hero-media { min-height:0; aspect-ratio:4 / 3; }
  .attraction-directory-v2-hero-media::after { background:linear-gradient(180deg,rgba(17,17,17,.1),transparent 35%); }
  .attraction-directory-v2-heading { padding-bottom:2.5rem; gap:1.75rem; }
  .attraction-directory-v2-heading .display { font-size:clamp(3.1rem,14vw,4.75rem); }
  .attraction-directory-v2-heading-copy .body-large { font-size:1.02rem; }
  .attraction-directory-v2-grid { padding-top:2.5rem; grid-template-columns:minmax(0,1fr); gap:3.5rem; }
  .attraction-directory-v2-card-copy { min-height:0; }
  .attraction-directory-v2-card h3 { font-size:clamp(2.35rem,11vw,3.35rem); }
  .attraction-directory-v2-action { margin-top:1.75rem; }
  .attraction-directory-v2-next-grid { gap:2rem; }
  .attraction-directory-v2-next .display { font-size:clamp(3.2rem,14vw,4.75rem); }
}
@media (prefers-reduced-motion:reduce) {
  .attraction-directory-v2-media img,
  .attraction-directory-v2-action span:last-child { transition:none; }
}
