body{
  min-height:100vh;
  display:grid;
  justify-items:center;
  align-items:start;
  max-width:100%;
  overflow-x:hidden;
  padding:24px;
  text-align:center;
}

.page-shell{
  width:min(760px, 100%);
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--s2);
}

.information-card{
  width:100%;
  min-width:0;
  max-width:100%;
  padding:24px;
  overflow:hidden;
  background:var(--card);
  border:1px solid var(--border);
  box-shadow:0 10px 30px rgba(0,0,0,.05);
}

.banner{
  display:block;
  width:min(34rem, 100%);
  margin:0 auto;
}

.page-header{
  max-width:39rem;
  margin:0 auto;
  text-align:center;
}

.page-header h1{
  margin:24px 0 10px;
  color:var(--accent);
  font-variant:small-caps;
  font-size:clamp(2rem, 6vw, 2.7rem);
  font-weight:500;
  line-height:1.08;
}

.page-header p{
  max-width:36rem;
  margin:0 auto 22px;
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.5;
}

h2,
h3,
p{ margin-top:0; }

.information-sections{
  min-width:0;
  display:grid;
  gap:9px;
  text-align:left;
}

.information-section{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  border:1px solid var(--border);
  background:#fff;
}

.information-section summary{
  position:relative;
  display:flex;
  min-height:50px;
  align-items:center;
  padding:13px 44px 13px 15px;
  color:var(--accent);
  cursor:pointer;
  list-style:none;
  font-size:1.12rem;
  font-weight:600;
  line-height:1.25;
}

.information-section summary::-webkit-details-marker{ display:none; }

.information-section summary::after{
  content:"+";
  position:absolute;
  right:16px;
  top:50%;
  font-size:1.35rem;
  font-weight:400;
  transform:translateY(-53%);
}

.information-section[open] summary::after{ content:"−"; }

.information-body{
  min-width:0;
  padding:0 15px 16px;
}

.information-body > p{
  margin:0 0 9px;
  font-size:1.05rem;
  line-height:1.5;
}

.information-body > a{
  color:var(--crest-red);
  text-decoration:none;
  border-bottom:1px solid color-mix(in srgb,var(--crest-red) 42%,transparent);
}

.information-body > a:hover{ opacity:.78; }

.parking-heading{
  margin:24px 0 12px;
  text-align:center;
}

.eyebrow{
  margin:0 0 5px;
  color:var(--crest-red);
  font-size:.84rem;
  font-variant:small-caps;
  font-weight:600;
  letter-spacing:.06em;
}

.parking-heading h2{
  margin:0;
  color:var(--accent);
  font-size:1.55rem;
  font-weight:500;
  line-height:1.15;
}

.parking-cards{
  min-width:0;
  display:grid;
  gap:10px;
}

.parking-card{
  min-width:0;
  max-width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) 112px;
  overflow:hidden;
  border:1px solid var(--border);
  background:#fcfaf7;
}

.parking-card-content{
  min-width:0;
  padding:14px;
}

.parking-card h3{
  margin:0 0 3px;
  color:var(--accent);
  font-size:1.2rem;
  font-weight:600;
  line-height:1.2;
}

.parking-address{
  margin:0 0 10px;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.3;
}

.parking-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 14px;
  margin:0;
}

.parking-fact{ min-width:0; }

.parking-fact dt{
  color:var(--muted);
  font-size:.82rem;
  font-variant:small-caps;
}

.parking-fact dd{
  margin:1px 0 0;
  font-size:.96rem;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.parking-image{
  display:block;
  width:112px;
  height:100%;
  min-height:180px;
  object-fit:cover;
  filter:saturate(.72) sepia(.07) brightness(1.03);
}

.parking-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px 13px;
  margin-top:12px;
}

.parking-actions a{
  color:var(--crest-red);
  font-size:.92rem;
  text-decoration:none;
  border-bottom:1px solid color-mix(in srgb,var(--crest-red) 40%,transparent);
}

.parking-actions a:first-child{
  padding:4px 9px;
  border:0;
  border-radius:999px;
  background:var(--crest-red);
  color:#fff;
}

.parking-actions a:hover{ opacity:.78; }

.parking-card.targeted{
  border-color:var(--crest-red);
  box-shadow:0 0 0 2px rgba(143,38,56,.08);
}

.parking-note{
  margin:12px 0 0 !important;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.4;
}

.parking-card.no-image{ grid-template-columns:1fr; }

@media(max-width:700px){
  body{ padding:10px; }

  .information-card{ padding:14px; }

  .banner{ max-height:82px; }

  .page-header h1{ margin-top:14px; }

  .page-header p,
  .information-body > p{ font-size:1rem; }
}

@media(max-width:480px){
  body{ padding:8px; }

  .information-card{ padding:12px; }

  .page-header h1{
    margin-bottom:8px;
    font-size:1.85rem;
  }

  .page-header p{ margin-bottom:18px; }

  .information-section summary{
    min-height:48px;
    padding:11px 40px 11px 13px;
    font-size:1.06rem;
  }

  .information-section summary::after{ right:14px; }

  .information-body{ padding:0 13px 14px; }

  .parking-heading{ margin-top:20px; }

  .parking-card{ grid-template-columns:minmax(0,1fr) 86px; }

  .parking-card-content{ padding:12px; }

  .parking-image{
    width:86px;
    min-height:210px;
  }

  .parking-facts{ grid-template-columns:1fr; }
}
