/* PLAN YOUR STAY — page-specific only. Header, nav, footer, buttons and the
   base rules come from site.css + exact-home.css. <body class="psd-page">.
   Cards carry an optional image slot; where no licensed photo exists yet the
   slot shows the distance instead, so the grid never looks half-finished. */

.plan-hero { position:relative; height:min(30vw,560px); min-height:360px; overflow:hidden; background:#222; }
.plan-hero img { width:100%; height:100%; object-fit:cover; object-position:center 54%; }
.plan-hero__veil { position:absolute; inset:0; background:
  radial-gradient(ellipse 62% 52% at 50% 56%,rgba(10,16,25,.62) 0%,rgba(10,16,25,.34) 60%,rgba(10,16,25,.08) 100%),
  linear-gradient(180deg,rgba(9,13,19,.72) 0%,rgba(9,13,19,0) 32%); }
.plan-hero__content { position:absolute; z-index:1; top:56%; left:50%; width:min(1170px,calc(100% - 48px)); transform:translate(-50%,-50%); text-align:center; color:#fff; }
.plan-hero h1 { margin:0; font-family:var(--psd-serif); font-size:clamp(38px,3.6vw,69px); font-style:italic; line-height:1.02; }
.plan-hero p { margin:14px 0 0; font-size:13px; letter-spacing:.14em; text-transform:uppercase; }

.plan-section { width:var(--psd-shell); margin-inline:auto; }

.plan-intro { padding:84px 0 60px; }
.plan-intro h2 { margin:0 0 18px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:clamp(28px,2.4vw,40px); font-style:italic; font-weight:400; line-height:1.14; }
.plan-lede { max-width:60ch; margin:0 0 26px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:22px; font-style:italic; line-height:1.45; }
.plan-intro__cols { columns:2; column-gap:64px; }
.plan-intro__cols p { margin:0 0 18px; color:var(--psd-muted); font-size:16px; line-height:1.62; break-inside:avoid-column; }

.plan-grid-wrap { padding:8px 0 20px; }
.plan-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:34px; }
.plan-card { display:flex; flex-direction:column; border:1px solid rgba(36,36,36,.14); background:#fff; }
.plan-card__media { position:relative; aspect-ratio:16/9; overflow:hidden; background:#3a3f45; border-bottom:1px solid rgba(36,36,36,.10); }
.plan-card__media img { display:block; width:100%; height:100%; object-fit:cover; }
.plan-card__veil { position:absolute; inset:0; background:
  radial-gradient(ellipse 82% 72% at 50% 50%,rgba(8,13,20,.70) 0%,rgba(8,13,20,.54) 62%,rgba(8,13,20,.40) 100%),
  linear-gradient(180deg,rgba(8,13,20,.34) 0%,rgba(8,13,20,.28) 40%,rgba(8,13,20,.52) 100%); }
.plan-card__media img { display:block; width:100%; height:100%; object-fit:cover; }
.plan-card__stat { position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center; }
.plan-card__stat b { color:#fff; text-shadow:0 2px 18px rgba(0,0,0,.55); font-family:var(--psd-serif); font-size:clamp(34px,3.4vw,52px); font-style:italic; font-weight:400; line-height:1; }
.plan-card__stat span { color:#fff; text-shadow:0 1px 10px rgba(0,0,0,.6); font-family:var(--psd-sans); font-size:12px; letter-spacing:.11em; text-transform:uppercase; }
.plan-card__body { flex:1; padding:26px 28px 30px; }
.plan-card h3 { margin:0 0 10px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:25px; font-style:italic; font-weight:400; line-height:1.2; }
.plan-card p { margin:0 0 14px; color:var(--psd-muted); font-size:16px; line-height:1.62; }
.plan-card p:last-child { margin-bottom:0; }
.plan-card ul { margin:0; padding:0; list-style:none; }
.plan-card li { padding:9px 0; border-top:1px solid rgba(36,36,36,.12); font-size:15px; }
.plan-card li a { color:var(--psd-ink); text-decoration:underline; text-underline-offset:2px; }
.plan-card li a:hover { color:var(--psd-gold-text); }
.plan-card li em { display:block; margin-top:2px; color:var(--psd-muted); font-size:13px; font-style:normal; }
.plan-card p a { color:var(--psd-ink); text-decoration:underline; text-underline-offset:2px; }
.plan-card p a:hover { color:var(--psd-gold-text); }
.plan-card__link { display:inline-block; color:var(--psd-gold-text); font-size:15px; text-decoration:underline; text-underline-offset:3px; }
.plan-card__link:hover { color:var(--psd-ink); }
.plan-cert { display:flex; align-items:center; gap:16px; margin-top:6px; padding:14px 18px; background:var(--psd-ink); text-decoration:none; }
.plan-cert img { display:block; width:148px; height:auto; }
.plan-cert span { color:#fff; font-family:var(--psd-sans); font-size:11px; font-weight:600; letter-spacing:.1em; line-height:1.45; text-transform:uppercase; }
.plan-cert:hover span { color:var(--psd-gold); }

.plan-eddk { margin-top:56px; padding:46px 0 50px; background:#faf9f6; --psd-muted:#6b6b6b; }
.plan-eddk__inner { width:var(--psd-shell); margin-inline:auto; display:grid; grid-template-columns:auto 1fr; gap:34px; align-items:center; }
.plan-eddk img { display:block; width:114px; height:auto; }
.plan-eddk h2 { margin:0 0 10px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:27px; font-style:italic; font-weight:400; line-height:1.2; }
.plan-eddk p { max-width:70ch; margin:0 0 14px; color:var(--psd-muted); font-size:16px; line-height:1.62; }
.plan-eddk a.psd-outline-button { color:var(--psd-ink)!important; }

.plan-book { padding:74px 0 86px; text-align:center; }
.plan-book h2 { margin:0 0 12px; color:var(--psd-ink); font-family:var(--psd-serif); font-size:clamp(27px,2.3vw,38px); font-style:italic; font-weight:400; }
.plan-book p { max-width:56ch; margin:0 auto 24px; color:var(--psd-muted); font-size:16px; line-height:1.62; }
.plan-book__cta { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }

@media (max-width:860px) {
  .plan-grid { grid-template-columns:1fr; gap:26px; }
  .plan-intro__cols { columns:1; }
}
@media (max-width:760px) {
  .plan-hero { height:auto; min-height:300px; }
  .plan-intro { padding:56px 0 40px; }
  .plan-lede { font-size:19px; }
  .plan-eddk__inner { grid-template-columns:1fr; gap:20px; text-align:left; }
  .plan-book { padding:54px 0 62px; }
}
