/* Port Napoléon: a working base, followed by separate family arrival choices. */
.cruising-port-napoleon-station .pn-opening { display: grid; gap: 2rem; padding-block: 2.4rem 2rem; }
.cruising-port-napoleon-station .pn-opening h1 { max-width: 10ch; margin-block: .8rem 1.3rem; }
.cruising-port-napoleon-station .pn-opening .lede { max-width: 30rem; font-size: 1.25rem; }
.cruising-port-napoleon-station .pn-opening-copy > p + p { margin-top: 1.1rem; }
.cruising-port-napoleon-station .pn-links { display: flex; flex-wrap: wrap; column-gap: 1.5rem; margin-top: .8rem; }
.cruising-port-napoleon-station .pn-map { width: 100%; max-width: 500px; margin: 0 auto; }
.cruising-port-napoleon-station .pn-map figcaption { padding-top: .7rem; }
.cruising-port-napoleon-station .cg-map-credit { display: flex; flex-wrap: wrap; column-gap: .8rem; }
.cruising-port-napoleon-station .pn-place-list { list-style: none; display: grid; gap: 1rem; margin: 0 0 1.8rem; padding: 0; }
.cruising-port-napoleon-station .pn-place-list li { margin: 0; padding-left: 1rem; border-left: 2px solid #a7b8ae; }
.cruising-port-napoleon-station .pn-place-list span { display: block; }
.cruising-port-napoleon-station .pn-delivery { margin-bottom: 2rem; padding: 1.2rem; background: var(--cg-soft); }
.cruising-port-napoleon-station .pn-delivery h3 { margin-bottom: .65rem; }
.cruising-port-napoleon-station .pn-delivery p { max-width: 70ch; }
.cruising-port-napoleon-station .pn-detail { border-top: 1px solid var(--line); margin-top: 1.25rem; }
.cruising-port-napoleon-station .pn-detail summary { min-height: 48px; padding-block: .8rem; cursor: pointer; font-weight: 550; }
.cruising-port-napoleon-station .pn-detail p { max-width: 65ch; margin-block: .6rem 1rem; }
.cruising-port-napoleon-station .pn-detail a { display: flex; align-items: center; min-height: 44px; width: fit-content; max-width: 100%; padding-block: .45rem; }
.cruising-port-napoleon-station .pn-storage { display: grid; gap: 1rem; }
.cruising-port-napoleon-station .pn-storage article { padding: 1.5rem; background: var(--cg-soft); border-top: 3px solid #93aaa0; }
.cruising-port-napoleon-station .pn-storage article:nth-child(2) { background: var(--cg-sand); border-color: #b49a6e; }
.cruising-port-napoleon-station .pn-storage h3 { margin-block: .7rem; }
.cruising-port-napoleon-station .pn-sequence { counter-reset: preparation; list-style: none; display: grid; gap: 1.5rem; padding: 0; margin: 0; }
.cruising-port-napoleon-station .pn-sequence li { counter-increment: preparation; position: relative; padding-left: 3.8rem; margin: 0; }
.cruising-port-napoleon-station .pn-sequence li::before { content: counter(preparation, decimal-leading-zero); position: absolute; left: 0; top: .1rem; font: 1.5rem var(--serif); color: var(--cg-sea); border-bottom: 2px solid #afbead; padding-bottom: .25rem; }
.cruising-port-napoleon-station .pn-sequence h3 { font-size: 1.5rem; margin-bottom: .5rem; }
.cruising-port-napoleon-station .pn-care { background: var(--cg-sand); padding: 1.5rem; margin-top: 2rem; }
.cruising-port-napoleon-station .pn-care h3 { margin-bottom: .7rem; }
.cruising-port-napoleon-station .pn-two { display: grid; gap: 1.25rem; align-items: start; }
.cruising-port-napoleon-station .cg-story { grid-template-columns: minmax(0, 1fr); align-items: start; }
.cruising-port-napoleon-station .cg-photo > a { display: block; }
.cruising-port-napoleon-station .pn-hyeres { display: grid; gap: 1rem; padding: 1.5rem; margin-top: 2.5rem; background: var(--cg-soft); }
.cruising-port-napoleon-station .pn-option { display: grid; gap: 2rem; }
.cruising-port-napoleon-station .pn-option h2 { margin-block: .6rem 1.1rem; }
.cruising-port-napoleon-station .pn-option p + p { margin-top: 1rem; }
.cruising-port-napoleon-station .pn-costs { display: grid; gap: 1.4rem; list-style: none; padding: 0; margin: 0 0 1.5rem; }
.cruising-port-napoleon-station .pn-costs li { border-left: 2px solid #adbfad; padding-left: 1rem; margin: 0; }
.cruising-port-napoleon-station .pn-costs strong { display: block; margin-bottom: .4rem; }
.cruising-port-napoleon-station .pn-documents { display: grid; gap: 1rem; margin-top: 1.5rem; }
.cruising-port-napoleon-station .pn-documents a { display: block; padding: 1.2rem; background: var(--cg-sand); text-decoration: none; }
.cruising-port-napoleon-station .pn-documents strong { display: block; text-decoration: underline; text-underline-offset: .2em; }
.cruising-port-napoleon-station .pn-documents span { display: block; margin-top: .6rem; }
.cruising-port-napoleon-station .cg-film { grid-template-columns: 30px minmax(0, 1fr) 14px; }
.cruising-port-napoleon-station .cg-source-grid { grid-template-columns: minmax(0, 1fr); }
.cruising-port-napoleon-station main a { overflow-wrap: anywhere; }
.cruising-port-napoleon-station .cg-jump a { min-width: 44px; }
@media (min-width: 700px) {
  .cruising-port-napoleon-station .pn-opening { padding-block: 3.5rem 2.5rem; }
  .cruising-port-napoleon-station .pn-opening-copy { max-width: 46rem; }
  .cruising-port-napoleon-station .pn-place-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cruising-port-napoleon-station .pn-two, .cruising-port-napoleon-station .pn-costs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .cruising-port-napoleon-station .pn-sequence { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .cruising-port-napoleon-station .pn-hyeres { grid-template-columns: 1fr 1.6fr; padding: 2rem; gap: 2rem; }
  .cruising-port-napoleon-station .pn-documents { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cruising-port-napoleon-station .pn-care { padding: 2rem; }
}
@media (min-width: 1000px) {
  .cruising-port-napoleon-station .pn-opening { grid-template-columns: 1.12fr 1fr; gap: 3rem 4rem; align-items: center; }
  .cruising-port-napoleon-station .pn-opening .lede { font-size: 1.4rem; }
  .cruising-port-napoleon-station .pn-location { grid-column: 1 / -1; }
  .cruising-port-napoleon-station .pn-place-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cruising-port-napoleon-station .pn-storage { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; }
  .cruising-port-napoleon-station .pn-sequence { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cruising-port-napoleon-station .cg-story { grid-template-columns: 1.2fr 1fr; gap: 4rem; }
  .cruising-port-napoleon-station .pn-option { grid-template-columns: 1.2fr 1fr; gap: 4rem; align-items: start; }
  .cruising-port-napoleon-station .cg-source-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
