/* Production components added to the reviewed Afterglow direction. */
.afterglow { --good:#3c5830; --font-body:'Source Sans 3',sans-serif; }
html:has(.afterglow),body.afterglow { overflow-x:clip; }
.afterglow .cinema h1 { color:#fff2e8; }
.afterglow .site-header .brand-name small { color:#e8d1d3; opacity:1; }
.afterglow img { object-fit:cover; }
.afterglow .cinema-photo { height:100%; }
.afterglow .ag-alert-link { font-size:13px; white-space:nowrap; text-decoration:underline; text-underline-offset:4px; }
.afterglow .ag-header-shell { z-index:900; }
.afterglow .ag-context { z-index:800; }
.afterglow .ag-mobile-nav { z-index:950; }
.afterglow .ag-toast { z-index:1000; }
.afterglow .skip:focus { z-index:1100; }
.afterglow .ag-source-note { font-size:12px; color:var(--muted); line-height:1.7; margin-top:18px; max-width:100%; }
.ag-source-note button { text-decoration:underline; text-underline-offset:4px; min-height:44px; padding:8px 12px; font-weight:600; color:var(--accent); }
button:disabled { cursor:wait; opacity:.65; }
.afterglow .ag-forecast-detail .hours { height:132px; gap:8px; }
.ag-forecast-detail .hour { min-width:0; position:relative; }
.ag-forecast-detail .hour small { color:var(--muted); font-size:11px; }
.ag-forecast-detail .hour span { font-size:10px; }
.afterglow .ag-space-details .kp-section { display:grid; grid-template-columns:1fr 1.2fr; gap:24px; margin:0 0 25px; }
.afterglow .kp-card,.afterglow .forecast-card { background:#fffaf3; border:1px solid var(--line); box-shadow:none; padding:24px; min-width:0; }
.afterglow .kp-badge { background:#442a30; color:#fff4e9; }
.afterglow .kp-meter-track { background:linear-gradient(90deg,#c4c3a9,#d9af88,#8b3542); }
.afterglow .kp-meter-marker { background:#442a30; }
.ag-activity-note { font-size:13px; line-height:1.7; margin-top:20px; color:var(--muted); }
.afterglow .forecast-chart { gap:10px; }
.afterglow .forecast-bar-fill { background:#8b3542; }
.afterglow .forecast-bar-value { color:#442a30; }
.afterglow .forecast-bar-label { font-size:11px; }
.afterglow .forecast-chart > p { font-size:14px; line-height:1.7; }
.afterglow .ag-live-map { min-height:540px; padding:0; background:#e9d9cf; }
.afterglow .ag-live-map #map { width:100%; height:400px; border-radius:0; background:#e9d9cf; z-index:0; }
.afterglow .ag-live-map .ag-map-selection { position:relative; left:auto; bottom:auto; margin:12px 16px 46px; max-width:none; padding:12px 18px; display:grid; grid-template-columns:1fr auto; column-gap:20px; }
.ag-live-map .ag-map-selection .eyebrow,.ag-live-map .ag-map-selection strong,.ag-live-map .ag-map-selection p { grid-column:1; }
.ag-live-map .ag-map-selection a { grid-column:2; grid-row:1/4; align-self:center; }
.ag-map-loading { padding:30px; }
.ag-map-error { padding:12px 20px; background:#fff8ef; font-size:14px; line-height:1.6; position:relative; }
.ag-map-error a,.ag-map-error button { text-decoration:underline; min-height:44px; }
.ag-live-marker span { display:flex; align-items:center; justify-content:center; width:40px; height:40px; background:#fff8ef; color:#442a30; border:2px solid #8b3542; border-radius:50%; font:600 12px 'Source Sans 3',sans-serif; box-shadow:0 2px 10px #442a3044; }
.ag-live-marker .selected { background:#8b3542; color:#fff4e9; border-color:#fff4e9; }
.afterglow .ag-place-list { max-height:600px; }
.afterglow .leaflet-control-attribution { font:10px/1.5 'Source Sans 3',sans-serif; color:#442a30; background:#fff8ef; }
.afterglow .leaflet-control-attribution a { color:#442a30; }
.afterglow .leaflet-control-zoom a { color:#442a30; background:#fff8ef; }
.afterglow .ag-plan-section { padding-block:60px; }
.afterglow .c-planner { background:transparent; border:0; border-radius:0; padding:0; margin:0 auto; }
.afterglow .c-planner .c-section-head { max-width:750px; }
.afterglow .c-planner h2 { margin:12px 0 20px; font-size:46px; }
.afterglow .c-lede { font-size:16px; line-height:1.8; color:var(--muted); }
.afterglow .c-planner-form { margin-top:28px; }
.afterglow .c-planner input,.afterglow .c-planner select { background:#fffaf3; color:#442a30; border-color:#a47b83; min-height:48px; }
.afterglow .c-planner-results { background:#fffaf3; border-color:#c9a6ac; }
.afterglow .c-btn { font-family:var(--body); }
.afterglow .c-btn--primary { background:#8b3542; color:#fff4e9; border-color:#8b3542; border-radius:30px; }
.afterglow .c-planner-stat-value { color:#442a30; }
.afterglow .articles-section,.afterglow .c-tours { padding-block:64px; margin:0 auto; }
.afterglow .articles-section h2,.afterglow .c-tours h2 { margin:12px 0 22px; font-size:46px; }
.afterglow .article-card { background:#fffaf3; border:1px solid var(--line); box-shadow:none; border-radius:8px; }
.afterglow .article-card h3 { font-size:27px; letter-spacing:0; }
.afterglow .article-card:hover { transform:none; border-color:#8b3542; }
.afterglow .article-card-image { background:#f0ded9; }
.afterglow .article-hub-link { min-height:44px; display:inline-flex; align-items:center; color:#442a30; border-color:var(--line); }
.afterglow .c-tour-card { background:#fffaf3; border-color:var(--line); border-radius:8px; }
.afterglow .c-tour-card-media { background-size:cover; }
/* Our photographs stay on our own cards. These two were handed out by grid
   position, and the build splices sponsored cards into the top of this grid:
   an advertiser whose photograph had not arrived silently wore coast.jpg, so a
   paid card looked like our editorial recommendation and used our picture -
   the exact blurring of paid and editorial that /editorial-policy.html promises
   readers we do not do. The injected card also shifted the alternation one step,
   so booking or dropping a single placement rewrote the photograph on all four
   editorial cards. Both are keyed to what a card is now, never to where it sits,
   so they survive advertisers arriving and leaving in any number and any order. */
.afterglow .c-tour-card:not(.c-tour-card--partner) .c-tour-card-media { background-image:url('./coast.jpg'); }
.afterglow .c-tour-card:nth-child(2n of .c-tour-card:not(.c-tour-card--partner)) .c-tour-card-media { background-image:url('./ridge.jpg'); }
/* A sponsored card whose photograph has not cleared permission yet gets the same
   cream panel an empty paid banner gets below, so an advertiser without a picture
   reads as an advertiser without a picture. */
.afterglow .c-tour-card--partner .c-tour-card-media:not(.c-tour-card-media--photo) { background-color:#f0ded9; }
.afterglow .c-tour-card-meta,.afterglow .c-tour-card-desc,.afterglow .c-tour-card-footer { color:var(--muted); }
.afterglow .c-tour-card h3 { color:#442a30; }
.afterglow .c-cta-email { background:#442a30; color:#fff4e9; border:0; border-radius:12px; padding:52px 30px; margin:24px auto; }
.afterglow .c-cta-email h2 { color:#fff4e9; font-size:46px; }
.afterglow .c-cta-email p,.afterglow .c-cta-email .c-eyebrow { color:#eed6d0; }
.afterglow .c-email-form input { color:#442a30; background:#fff8ef; border-color:#e8ccc1; }
.afterglow .c-email-form .c-btn { background:#f4c7aa; color:#442a30; }
.afterglow .c-consent { z-index:980; bottom:24px; }
.afterglow .c-consent h2 { font-size:24px; }
.afterglow .site-footer { padding-block:40px; border-top:1px solid var(--line); }
.afterglow .footer { padding:48px max(20px,calc((100% - 1280px)/2)); }
.afterglow .footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.afterglow .footer .footer-col h2 { font-size:16px; }
.afterglow .c-partner h2 { font-size:44px; }
.afterglow .site-header a:focus-visible,.afterglow .site-header button:focus-visible { outline-color:#f4c7aa; }
@media(max-width:1100px) { .afterglow .ag-alert-link { display:none; } }
@media(max-width:850px) {
  .afterglow .ag-space-details .kp-section { grid-template-columns:1fr; }
  .afterglow .ag-live-map .ag-map-selection { display:block; }
  .afterglow .ag-live-map #map { height:410px; }
  .afterglow .c-planner-form { grid-template-columns:1fr 1fr; }
}
@media(max-width:600px) {
  .afterglow .c-planner h2,.afterglow .articles-section h2,.afterglow .c-tours h2,.afterglow .c-cta-email h2 { font-size:38px; }
  .afterglow .ag-plan-section { padding-block:42px; }
  .afterglow .ag-place-list { max-height:350px; }
  .afterglow .ag-live-map { min-height:0; }
  .afterglow .ag-live-map #map { height:370px; }
  .afterglow .c-planner-form { grid-template-columns:1fr; }
  .afterglow .c-consent { bottom:84px; max-height:calc(100dvh - 175px); overflow-y:auto; }
  .afterglow .articles-section,.afterglow .c-tours { padding-block:42px; }
  .afterglow .c-cta-email { padding:35px 22px; }
  .afterglow .forecast-chart { gap:5px; }
  .afterglow .forecast-bar-label { font-size:9px; }
  .afterglow .kp-card,.afterglow .forecast-card { padding:18px; }
  .afterglow .ag-place-row [data-row-status] { max-width:115px; }
}

.ag-faq { padding-block:64px; }
.ag-faq > p { max-width:70ch; margin:18px 0 28px; }
.ag-faq .ag-forecast-details p { padding:0 20px 20px; max-width:78ch; line-height:1.65; }
/* Rotating partner placements in the Afterglow palette. The base component is
   in styles.css; these are the cream-and-plum overrides the homepage needs. */
.afterglow .c-ad { background:#fffaf3; border:1px solid var(--line); border-radius:8px; }
.afterglow .c-ad-media { background-color:#f0ded9; }
.afterglow .c-ad-eyebrow { color:#8b3542; }
.afterglow .c-ad-headline { color:#442a30; font-size:clamp(1.15rem,2.2vw,1.6rem); }
.afterglow .c-ad-text, .afterglow .c-ad-note { color:var(--muted); }
.afterglow .c-ad-link { background:#8b3542; color:#fff4e9; }
.afterglow .c-ad-secondary { color:#442a30; border-color:#a47b83; }
.afterglow .c-ad-secondary:hover { border-color:#8b3542; }
.afterglow .c-ad-slot { max-width:1280px; padding-inline:max(20px,calc((100% - 1280px)/2)); }
