/* ============================================================
   Preserve A Spot — Contact page ([aspot_contact], inc/contact.php)
   Enqueued on demand by the shortcode. GF field skin lives in aspot-gforms.css.
   ============================================================ */
.aspot-contact{--ink:#151210;--ink-2:#1b1712;--gold:#c9a159;--gold-lt:#e2c483;--paper:#f3ecdd;--bone:#cbc0aa;--mut:#8c8474;--line:rgba(201,161,89,.18);
  --disp:"Playfair Display",Georgia,serif;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Montserrat",system-ui,sans-serif;--mono:"JetBrains Mono",monospace;
  background:var(--ink);color:var(--bone)}
.aspot-contact *{box-sizing:border-box}
/* 0.50.1 — Divi wrapper locks. The gap above the hero is Divi's own chrome
   (#main-content .container padding, the Text module's bottom margin, default
   section/row padding), which page settings can't fully reach. Scoped by :has()
   so only the contact page's wrappers are touched. */
#main-content .container:has(.aspot-contact),
#content-area:has(.aspot-contact),#left-area:has(.aspot-contact){padding:0!important;margin:0!important;width:100%!important;max-width:none!important;float:none!important}
.et_pb_section:has(.aspot-contact),.et_pb_row:has(.aspot-contact){padding:0!important;margin:0!important;width:100%!important;max-width:none!important}
.et_pb_module:has(> .aspot-contact),.et_pb_text:has(.aspot-contact){margin:0!important;padding:0!important}
.et_pb_text:has(.aspot-contact) .et_pb_text_inner>p{margin:0}
#main-content:has(.aspot-contact){padding-top:0!important}
/* 0.50.2 — the remaining Divi shells (builder pages wrap sections in
   .entry-content / .et_builder_inner_content, not #main-content .container) */
.entry-content:has(.aspot-contact),article:has(.aspot-contact),
.et_builder_inner_content:has(.aspot-contact),.et-l--body:has(.aspot-contact),
.et-l:has(.aspot-contact){padding:0!important;margin:0!important}
body:has(.aspot-contact) #main-content article{padding-top:0!important;margin-top:0!important}
/* an empty leftover section above the shortcode still paints its default padding —
   flatten any section on this page that does not contain the contact block */
body:has(.aspot-contact) .et-l--body .et_pb_section:not(:has(.aspot-contact)):empty,
body:has(.aspot-contact) #main-content .et_pb_section:not(:has(.aspot-contact)) .et_pb_row:empty{display:none!important}
body:has(.aspot-contact) #main-content .et_pb_section{padding-top:0!important;padding-bottom:0!important}
/* hero */
.aspot-ct-hero{position:relative;isolation:isolate;min-height:clamp(320px,42vw,480px);display:flex;align-items:flex-end}
.aspot-ct-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.aspot-ct-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(13,10,7,.42) 0%,rgba(13,10,7,.18) 40%,rgba(13,10,7,.86) 100%)}
.aspot-ct-hero-in{width:min(1280px,92vw);margin:0 auto;padding:clamp(60px,8vw,110px) 0 clamp(30px,4vw,52px)}
.aspot-ct-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-lt);margin:0 0 10px}
.aspot-ct-title{font-family:var(--disp);font-weight:500;font-size:clamp(34px,5vw,58px);line-height:1.06;color:#fbf6ec;margin:0}
.aspot-ct-title em{font-style:italic;color:var(--gold-lt)}
.aspot-ct-sub{font-family:var(--serif);font-size:clamp(17px,1.6vw,20px);color:var(--paper);opacity:.9;margin:12px 0 0;max-width:52ch}
/* main: form + info */
.aspot-ct-main{width:min(1280px,92vw);margin:0 auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(28px,4vw,64px);padding:clamp(36px,5vw,70px) 0}
.aspot-ct-h{font-family:var(--disp);font-weight:500;font-size:clamp(22px,2.4vw,30px);color:#fbf6ec;margin:0 0 18px}
.aspot-ct-info{border:1px solid var(--line);background:var(--ink-2);padding:clamp(22px,2.6vw,34px);align-self:start}
.aspot-ct-dl{margin:0;display:grid;gap:4px}
.aspot-ct-dl dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:14px 0 4px}
.aspot-ct-dl dt:first-child{margin-top:0}
.aspot-ct-dl dd{margin:0;font-family:var(--serif);font-size:17px;line-height:1.5;color:var(--paper)}
.aspot-ct-dl dd a{color:var(--paper);text-decoration:none;border-bottom:1px solid rgba(201,161,89,.4);transition:color .18s,border-color .18s}
.aspot-ct-dl dd a:hover,.aspot-ct-dl dd a:focus{color:var(--gold-lt);border-color:var(--gold-lt)}
.aspot-ct-btn{display:inline-flex;align-items:center;gap:12px;margin-top:24px;font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  padding:15px 26px;border:1px solid var(--gold);background:var(--gold);color:#1c150a!important;text-decoration:none;transition:.2s}
.aspot-ct-btn:hover,.aspot-ct-btn:focus{background:transparent;color:var(--gold)!important}
.aspot-ct-btn .ar{transition:transform .2s}
.aspot-ct-btn:hover .ar{transform:translateX(4px)}
/* map — graded out of Google green, same treatment as the single-event map (0.42.1) */
.aspot-ct-map{width:min(1280px,92vw);margin:0 auto clamp(44px,6vw,80px);border:1px solid var(--line);position:relative}
.aspot-ct-map iframe{display:block;width:100%;height:clamp(320px,38vw,460px);border:0;
  filter:grayscale(1) sepia(.32) saturate(.9) brightness(.92) contrast(.95)}
.aspot-ct-map::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(201,161,89,.14);
  background:linear-gradient(180deg,rgba(21,18,16,.16),rgba(21,18,16,0) 30%,rgba(21,18,16,0) 70%,rgba(21,18,16,.2))}
@media(max-width:980px){.aspot-ct-main{grid-template-columns:1fr}.aspot-ct-info{order:-1}}
/* light mode */
html.lodge-light .aspot-contact{background:#faf6ed;color:#4a4438}
html.lodge-light .aspot-ct-title{color:#faf6ed}
html.lodge-light .aspot-ct-h{color:#1c1a17}
html.lodge-light .aspot-ct-info{background:#fff;border-color:rgba(28,26,23,.12)}
html.lodge-light .aspot-ct-dl dt{color:#8f2418}
html.lodge-light .aspot-ct-dl dd{color:#1c1a17}
html.lodge-light .aspot-ct-dl dd a{color:#1c1a17;border-color:rgba(143,36,24,.4)}
html.lodge-light .aspot-ct-dl dd a:hover,html.lodge-light .aspot-ct-dl dd a:focus{color:#8f2418;border-color:#8f2418}
html.lodge-light .aspot-ct-btn{border-color:#8f2418;background:#8f2418;color:#faf6ed!important}
html.lodge-light .aspot-ct-btn:hover,html.lodge-light .aspot-ct-btn:focus{background:transparent;color:#8f2418!important}
html.lodge-light .aspot-ct-map{border-color:rgba(28,26,23,.14)}
html.lodge-light .aspot-ct-map iframe{filter:grayscale(1) sepia(.3) saturate(.92) brightness(1.04) contrast(.94)}
