/* Algarve–Andalusia guide: shared typography, locally composed geography and stories. */
.cruising-algarve-gibraltar-andalucia .cg-hero h1 { font-size: clamp(2.4rem, 5.4vw, 4.3rem); }
.cruising-algarve-gibraltar-andalucia .cg-hero { align-items: center; }
.cruising-algarve-gibraltar-andalucia .cg-hero .cg-photo img { aspect-ratio: 3 / 2; object-fit: cover; }
.cruising-algarve-gibraltar-andalucia .aga-chapter { border-top: 1px solid var(--line); }
.cruising-algarve-gibraltar-andalucia .aga-chapter h2,
.cruising-algarve-gibraltar-andalucia .aga-geography h2 { max-width: 24ch; font-size: clamp(2.1rem, 4.5vw, 3.7rem); line-height: 1.12; margin-bottom: 1.6rem; text-wrap: balance; }
.cruising-algarve-gibraltar-andalucia .aga-chapter h3 { font-size: 1.4rem; line-height: 1.3; margin: 1.7rem 0 .8rem; }
.cruising-algarve-gibraltar-andalucia .aga-chapter p,
.cruising-algarve-gibraltar-andalucia .aga-geography > p,
.cruising-algarve-gibraltar-andalucia .aga-closing p { max-width: 72ch; font-size: 1.075rem; line-height: 1.75; }
.cruising-algarve-gibraltar-andalucia .aga-columns,
.cruising-algarve-gibraltar-andalucia .aga-story { display: grid; gap: 1.4rem; align-items: start; margin-block: 1.5rem 2rem; }
.cruising-algarve-gibraltar-andalucia .aga-story > *,
.cruising-algarve-gibraltar-andalucia .aga-columns > * { min-width: 0; }
.cruising-algarve-gibraltar-andalucia .aga-story .cg-photo { margin: 0; align-self: center; }
.cruising-algarve-gibraltar-andalucia .cg-photo img { display: block; width: 100%; height: auto; }
.cruising-algarve-gibraltar-andalucia .aga-portrait .cg-photo { max-width: 420px; margin-inline: auto; }
.cruising-algarve-gibraltar-andalucia .aga-practical { background: #e8eeE7; border-left: 3px solid #54786d; padding: 1.15rem 1.25rem; margin-block: 1.5rem; border-radius: 0 10px 10px 0; }
.cruising-algarve-gibraltar-andalucia .aga-practical h3 { margin-top: 0; font-size: 1.2rem; }
.cruising-algarve-gibraltar-andalucia .aga-practical p,
.cruising-algarve-gibraltar-andalucia p.aga-practical { font-size: 1rem; line-height: 1.7; }
.cruising-algarve-gibraltar-andalucia .aga-practical > :last-child { margin-bottom: 0; }
.cruising-algarve-gibraltar-andalucia .aga-local-note { border-left: 3px solid #b88a57; padding-left: 1.15rem; }
.cruising-algarve-gibraltar-andalucia .aga-map { margin: 0; min-width: 0; background: #dceae7; border: 1px solid #bccdc4; border-radius: 8px; overflow: hidden; }
.cruising-algarve-gibraltar-andalucia .aga-map svg { display: block; width: 100%; height: auto; }
.cruising-algarve-gibraltar-andalucia .aga-map figcaption { padding: .8rem 1rem; color: #244c49; font-size: 1rem; font-weight: 600; border-top: 1px solid #bccdc4; }
.cruising-algarve-gibraltar-andalucia .aga-map a:hover text { text-decoration: underline; }
.cruising-algarve-gibraltar-andalucia .aga-map a:focus { outline: 2px solid #a4492e; outline-offset: 2px; }
.cruising-algarve-gibraltar-andalucia .aga-map-overview { display: none; margin-block: 2rem 1.5rem; }
.cruising-algarve-gibraltar-andalucia .aga-maps { display: grid; gap: 1.5rem; margin-block: 1.5rem; }
.cruising-algarve-gibraltar-andalucia .aga-maps .aga-map { max-width: 500px; width: 100%; margin-inline: auto; }
.cruising-algarve-gibraltar-andalucia .aga-map-credit { font-size: .85rem !important; }
.cruising-algarve-gibraltar-andalucia .aga-choices { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: .5rem 2rem; }
.cruising-algarve-gibraltar-andalucia .aga-choices li { border-top: 1px solid var(--line); margin: 0; }
.cruising-algarve-gibraltar-andalucia .aga-choices a { display: block; min-height: 44px; padding: 1rem 0; text-decoration: none; }
.cruising-algarve-gibraltar-andalucia .aga-choices strong { display: block; color: var(--teal); margin-bottom: .3rem; }
.cruising-algarve-gibraltar-andalucia .aga-choices span { display: block; color: var(--muted); font-size: 1rem; line-height: 1.55; }
.cruising-algarve-gibraltar-andalucia .aga-choices a:hover strong { text-decoration: underline; }
.cruising-algarve-gibraltar-andalucia .aga-place-links { display: flex; flex-wrap: wrap; gap: 0 1rem; padding-bottom: 1rem; }
.cruising-algarve-gibraltar-andalucia .aga-place-links a { display: flex; align-items: center; max-width: 100%; min-height: 44px; padding: .3rem 0; font-size: 1rem; text-decoration: underline; overflow-wrap: anywhere; }
.cruising-algarve-gibraltar-andalucia section[id],
.cruising-algarve-gibraltar-andalucia h3[id] { scroll-margin-top: 1.5rem; }
.cruising-algarve-gibraltar-andalucia .cg-sources { margin-block: 2rem 4rem; }
.cruising-algarve-gibraltar-andalucia .cg-sources summary { min-height: 44px; padding-block: .8rem; cursor: pointer; }
.cruising-algarve-gibraltar-andalucia p a { overflow-wrap: anywhere; }
@media (min-width: 700px) {
  .cruising-algarve-gibraltar-andalucia .aga-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cruising-algarve-gibraltar-andalucia .aga-map-overview { display: block; }
}
@media (min-width: 1000px) {
  .cruising-algarve-gibraltar-andalucia .aga-columns,
  .cruising-algarve-gibraltar-andalucia .aga-story { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; }
  .cruising-algarve-gibraltar-andalucia .aga-maps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; align-items: start; }
  .cruising-algarve-gibraltar-andalucia .aga-choices { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cruising-algarve-gibraltar-andalucia .aga-columns .aga-practical { margin-top: 0; }
  .cruising-algarve-gibraltar-andalucia .aga-story > div > h3:first-child { margin-top: 0; }
}

/* Long translated headings reflow at enlarged text sizes. */
.cruising-algarve-gibraltar-andalucia .cg-hero-copy { min-width: 0; }
.cruising-algarve-gibraltar-andalucia h1,
.cruising-algarve-gibraltar-andalucia h2,
.cruising-algarve-gibraltar-andalucia h3 { overflow-wrap: anywhere; hyphens: auto; }
.cruising-algarve-gibraltar-andalucia p,
.cruising-algarve-gibraltar-andalucia figcaption { overflow-wrap: anywhere; hyphens: auto; }
