/* TTP Suite Editorial System v1.8.7 */
:root{
  --ttp-editorial-ink:#172033;
  --ttp-editorial-muted:#536174;
  --ttp-editorial-night:#111827;
  --ttp-editorial-blue:#2563eb;
  --ttp-editorial-sky:#0ea5e9;
  --ttp-editorial-teal:#0f766e;
  --ttp-editorial-amber:#f59e0b;
  --ttp-editorial-rose:#e11d48;
  --ttp-editorial-paper:#fffaf3;
  --ttp-editorial-line:rgba(23,32,51,.12);
  --ttp-editorial-shadow:0 26px 62px rgba(15,23,42,.14);
  --ttp-editorial-soft-shadow:0 16px 36px rgba(15,23,42,.09);
  --ttp-editorial-radius:26px;
}

:where(
  .ttp-address-widget,
  .ttp-image,
  .ttp-styled-image,
  .ttp-styled-gallery,
  .ttp-image-compare,
  .ttp-content-block,
  .ttp-place-tools,
  .ttp-post-template,
  .ttp-ob-banner-block
){
  color:var(--ttp-editorial-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  letter-spacing:0;
}

:where(
  .ttp-address-widget,
  .ttp-image,
  .ttp-styled-image.is-frame-card,
  .ttp-styled-gallery.is-frame-card,
  .ttp-image-compare.is-frame-card,
  .ttp-content-block.is-frame-card,
  .ttp-place-tools:not(.is-frame-bare),
  .ttp-post-template
){
  border:1px solid var(--ttp-editorial-line);
  border-radius:var(--ttp-editorial-radius);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,252,255,.92)),
    var(--ttp-editorial-paper);
  box-shadow:
    0 1px 0 rgba(255,255,255,.86) inset,
    var(--ttp-editorial-soft-shadow);
}

:where(
  .ttp-image,
  .ttp-styled-image.is-frame-card,
  .ttp-styled-gallery.is-frame-card,
  .ttp-image-compare.is-frame-card,
  .ttp-content-block.is-frame-card,
  .ttp-post-template
){
  padding:clamp(16px, 3vw, 24px);
}

:where(
  .ttp-address-widget,
  .ttp-image,
  .ttp-styled-image.is-frame-card,
  .ttp-styled-gallery.is-frame-card,
  .ttp-image-compare.is-frame-card,
  .ttp-content-block.is-frame-card,
  .ttp-place-tools:not(.is-frame-bare),
  .ttp-post-template
):hover{
  border-color:rgba(37,99,235,.22);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    var(--ttp-editorial-shadow);
}

:where(
  .ttp-styled-image-eyebrow,
  .ttp-styled-gallery-eyebrow,
  .ttp-content-eyebrow,
  .ttp-place-eyebrow,
  .ttp-address-category-tag,
  .ttp-address-preview-category
){
  display:inline-flex;
  width:fit-content;
  align-items:center;
  gap:7px;
  min-height:32px;
  padding:8px 12px;
  border:1px solid rgba(37,99,235,.16);
  border-radius:999px;
  background:rgba(37,99,235,.09);
  color:var(--ttp-editorial-blue);
  font-size:12px;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
  box-shadow:0 10px 22px rgba(37,99,235,.07);
}

:where(
  .ttp-styled-image-eyebrow,
  .ttp-styled-gallery-eyebrow,
  .ttp-content-eyebrow,
  .ttp-place-eyebrow
)::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--ttp-editorial-blue), var(--ttp-editorial-teal));
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}

:where(
  .ttp-content-title,
  .ttp-place-title,
  .ttp-post-template h2,
  .ttp-post-template h3,
  .ttp-address-location strong
){
  color:var(--ttp-editorial-ink);
  font-weight:950;
  letter-spacing:0;
}

:where(
  .ttp-styled-image-media,
  .ttp-styled-gallery-item,
  .ttp-image-compare-media,
  .ttp-image-compare-panel,
  .ttpi-canvas,
  .ttp-document-frame,
  .ttp-place-map-card,
  .ttp-places-map,
  .ttp-post-feature-image
){
  overflow:hidden;
  border:1px solid rgba(23,32,51,.12);
  border-radius:20px;
  background:
    linear-gradient(135deg, rgba(37,99,235,.10), rgba(245,158,11,.10)),
    #fff;
  box-shadow:
    0 1px 0 rgba(255,255,255,.82) inset,
    0 18px 42px rgba(15,23,42,.10);
}

:where(
  .ttp-styled-image-img,
  .ttp-styled-gallery-img,
  .ttp-image-compare-img,
  .ttpi-image
){
  transition:filter .28s ease, transform .32s ease;
}

:where(
  .ttp-styled-image-media,
  .ttp-styled-gallery-item,
  .ttp-image-compare-media,
  .ttpi-canvas
):hover :where(
  .ttp-styled-image-img,
  .ttp-styled-gallery-img,
  .ttp-image-compare-img,
  .ttpi-image
){
  filter:saturate(1.04) contrast(1.02);
  transform:scale(1.015);
}

:where(
  .ttp-content-button,
  .ttp-address-accordion-button,
  .ttp-address-nav-link,
  .ttp-place-button,
  .ttp-post-template .wp-block-button__link
){
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:linear-gradient(135deg, var(--ttp-editorial-amber), var(--ttp-editorial-rose) 42%, var(--ttp-editorial-blue));
  color:#fff;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 16px 32px rgba(37,99,235,.20);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease, background .2s ease;
}

:where(
  .ttp-content-button,
  .ttp-address-accordion-button,
  .ttp-address-nav-link,
  .ttp-place-button,
  .ttp-post-template .wp-block-button__link
):hover,
:where(
  .ttp-content-button,
  .ttp-address-accordion-button,
  .ttp-address-nav-link,
  .ttp-place-button,
  .ttp-post-template .wp-block-button__link
):focus{
  color:#fff;
  filter:saturate(1.08);
  transform:translateY(-2px);
  box-shadow:0 20px 40px rgba(37,99,235,.25);
}

.ttp-address-widget{
  max-width:900px;
  margin:28px auto;
  padding:clamp(22px, 3.4vw, 34px);
  position:relative;
  overflow:visible;
  background:
    linear-gradient(135deg, rgba(255,255,255,.99), rgba(248,251,255,.94)),
    var(--ttp-editorial-paper);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 30px 72px rgba(15,23,42,.13);
}

.ttp-address-widget::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0 0 auto;
  height:6px;
  border-radius:var(--ttp-editorial-radius) var(--ttp-editorial-radius) 0 0;
  background:linear-gradient(90deg, var(--ttp-editorial-amber), var(--ttp-editorial-rose), var(--ttp-editorial-blue), var(--ttp-editorial-teal));
}

.ttp-address-widget::after{
  content:"";
  position:absolute;
  inset:6px;
  z-index:0;
  border-radius:calc(var(--ttp-editorial-radius) - 6px);
  pointer-events:none;
  background-image:
    linear-gradient(rgba(15,23,42,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,23,42,.028) 1px, transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:linear-gradient(135deg, rgba(0,0,0,.45), transparent 78%);
  mask-image:linear-gradient(135deg, rgba(0,0,0,.45), transparent 78%);
}

.ttp-address-widget > *{
  position:relative;
  z-index:1;
}

.ttp-address-location{
  align-items:center;
  gap:12px;
  margin:12px 0 11px;
}

.ttp-address-location > span:not(.ttp-address-icon){
  line-height:1.15;
}

.ttp-address-icon{
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  flex:0 0 38px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:15px;
  background:linear-gradient(135deg, rgba(37,99,235,.10), rgba(15,118,110,.08));
  box-shadow:0 12px 24px rgba(37,99,235,.10);
  font-size:0;
}

.ttp-address-pin-shape{
  position:relative;
  display:block;
  width:15px;
  height:15px;
  border-radius:50% 50% 50% 3px;
  background:linear-gradient(135deg, var(--ttp-editorial-blue), var(--ttp-editorial-teal));
  box-shadow:0 8px 16px rgba(37,99,235,.22);
  transform:rotate(-45deg);
}

.ttp-address-pin-shape::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  background:#fff;
}

.ttp-address-coordinates{
  gap:8px;
  margin-bottom:10px;
}

.ttp-address-lat,
.ttp-address-lng,
.ttp-address-privacy,
.ttp-address-ease{
  border:1px solid rgba(23,32,51,.10);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 22px rgba(15,23,42,.06);
}

.ttp-address-lat,
.ttp-address-lng{
  padding:6px 10px;
  font-size:12px;
  line-height:1.1;
}

.ttp-address-status-line{
  margin-bottom:14px;
}

.ttp-address-ease{
  gap:7px;
  padding:7px 11px;
}

.ttp-address-ease-label{
  color:#64748b;
  font-size:10px;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
}

.ttp-address-ease-value{
  color:#075985;
  font-weight:850;
  text-transform:capitalize;
}

.ttp-address-accordion-button{
  min-height:58px;
  justify-content:space-between;
  padding:15px 18px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.92));
  color:var(--ttp-editorial-ink);
  box-shadow:0 14px 30px rgba(15,23,42,.08);
}

.ttp-address-accordion-button:hover,
.ttp-address-accordion-button:focus{
  color:var(--ttp-editorial-blue);
  background:#fff;
}

.ttp-address-nav-links{
  gap:clamp(8px, 1.6vw, 14px);
}

.ttp-address-navigation{
  margin-top:14px;
  padding:16px;
  border:1px solid rgba(23,32,51,.08);
  border-radius:24px;
  background:linear-gradient(180deg, rgba(248,250,252,.78), rgba(255,255,255,.58));
  box-shadow:0 18px 44px rgba(15,23,42,.06);
}

.ttp-address-navigation p{
  margin-bottom:12px;
  font-size:17px;
  line-height:1.2;
}

.ttp-address-nav-link{
  min-width:112px;
  min-height:88px;
  flex-direction:column;
  justify-content:center;
  padding:11px 10px;
  border-color:rgba(23,32,51,.10);
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.92)),
    #fff;
  color:var(--ttp-editorial-blue);
}

.ttp-address-nav-link.waze{ color:#0ea5e9; }
.ttp-address-nav-link.apple-maps{ color:#38bdf8; }

.ttp-address-nav-link img{
  width:30px;
  height:30px;
  margin-bottom:6px;
  object-fit:contain;
}

.ttp-address-nav-link.waze img,
.ttp-address-nav-link.apple-maps img{
  width:26px;
  height:26px;
}

.ttp-address-nav-link span{
  font-size:15px;
  font-weight:850;
}

.ttp-address-nearby{
  margin-top:14px;
}

.ttp-address-nearby-trigger{
  display:inline-flex;
  width:100%;
  min-height:48px;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 13px;
  border:1px solid rgba(37,99,235,.16);
  border-radius:16px;
  background:
    linear-gradient(135deg, rgba(37,99,235,.08), rgba(15,118,110,.06)),
    rgba(255,255,255,.88);
  color:var(--ttp-editorial-ink);
  cursor:pointer;
  font:inherit;
  text-align:left;
  box-shadow:0 12px 26px rgba(15,23,42,.06);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.ttp-address-nearby-trigger:hover,
.ttp-address-nearby-trigger:focus{
  border-color:rgba(37,99,235,.28);
  box-shadow:0 16px 32px rgba(37,99,235,.12);
  transform:translateY(-1px);
}

.ttp-address-nearby-trigger span{
  font-size:15px;
  font-weight:900;
}

.ttp-address-nearby-trigger strong{
  flex:0 0 auto;
  padding:5px 9px;
  border-radius:999px;
  background:#22c55e;
  color:#fff;
  font-size:12px;
  font-weight:950;
  line-height:1;
}

.ttp-address-nearby-modal[hidden]{
  display:none !important;
}

.ttp-address-nearby-open{
  overflow:hidden;
}

.ttp-address-nearby-modal{
  position:fixed;
  inset:0;
  z-index:2147483000 !important;
  display:grid;
  place-items:center;
  padding:18px;
  isolation:isolate;
}

.ttp-address-nearby-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.58);
  backdrop-filter:blur(10px);
}

.ttp-address-nearby-dialog{
  position:relative;
  width:min(960px, 100%);
  max-height:min(760px, calc(100vh - 36px));
  max-height:min(760px, calc(100dvh - 36px));
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding:clamp(18px, 3vw, 26px);
  border:1px solid rgba(255,255,255,.76);
  border-radius:26px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,250,255,.94)),
    #fff;
  box-shadow:0 34px 88px rgba(15,23,42,.34);
}

.ttp-address-nearby-dialog::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:6px;
  border-radius:26px 26px 0 0;
  background:linear-gradient(90deg, var(--ttp-editorial-amber), var(--ttp-editorial-rose), var(--ttp-editorial-blue), var(--ttp-editorial-teal));
}

.ttp-address-nearby-close{
  position:absolute;
  top:14px;
  right:14px;
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border:1px solid rgba(23,32,51,.10);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--ttp-editorial-ink);
  cursor:pointer;
  font-size:24px;
  font-weight:800;
  line-height:1;
}

.ttp-address-nearby-header{
  padding-right:48px;
  margin-bottom:16px;
}

.ttp-address-nearby-header span{
  display:inline-flex;
  min-height:28px;
  align-items:center;
  padding:6px 10px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:999px;
  background:rgba(37,99,235,.08);
  color:var(--ttp-editorial-blue);
  font-size:12px;
  font-weight:950;
  line-height:1;
  text-transform:uppercase;
}

.ttp-address-nearby-header h3{
  margin:10px 0 0;
  color:var(--ttp-editorial-ink);
  font-size:clamp(26px, 4vw, 40px);
  font-weight:950;
  line-height:1.04;
}

.ttp-address-nearby-header p{
  max-width:620px;
  margin:8px 0 0;
  color:#475569;
  font-size:15px;
  font-weight:750;
  line-height:1.35;
}

.ttp-address-nearby-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.ttp-address-nearby-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:138px minmax(0, 1fr);
  min-height:152px;
  border:1px solid rgba(37,99,235,.12);
  border-radius:18px;
  background:
    linear-gradient(135deg, rgba(37,99,235,.08), rgba(15,118,110,.05) 44%, rgba(255,255,255,0) 72%),
    #fff;
  color:var(--ttp-editorial-ink);
  text-decoration:none !important;
  box-shadow:0 14px 32px rgba(15,23,42,.08);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.ttp-address-nearby-card:hover,
.ttp-address-nearby-card:focus{
  border-color:rgba(37,99,235,.28);
  box-shadow:0 22px 46px rgba(15,23,42,.14);
  transform:translateY(-2px);
}

.ttp-address-nearby-card-media{
  display:block;
  min-height:100%;
  background:
    linear-gradient(135deg, rgba(37,99,235,.14), rgba(15,118,110,.10)),
    #f8fafc;
}

.ttp-address-nearby-card-media img{
  display:block;
  width:100%;
  height:100%;
  min-height:152px;
  object-fit:cover;
}

.ttp-address-nearby-card-media > span{
  display:grid;
  height:100%;
  min-height:152px;
  place-items:center;
  color:var(--ttp-editorial-blue);
  font-weight:950;
}

.ttp-address-nearby-card-body{
  display:grid;
  align-content:start;
  gap:8px;
  padding:14px;
}

.ttp-address-nearby-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.ttp-address-nearby-card-meta em,
.ttp-address-nearby-card-meta b{
  display:inline-flex;
  min-height:25px;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  font-size:11px;
  font-style:normal;
  font-weight:950;
  line-height:1;
}

.ttp-address-nearby-card-meta em{
  border:1px solid rgba(37,99,235,.18);
  background:rgba(37,99,235,.08);
  color:var(--ttp-editorial-blue);
}

.ttp-address-nearby-card-meta b{
  background:#22c55e;
  color:#fff;
}

.ttp-address-nearby-card-body strong{
  color:var(--ttp-editorial-ink);
  font-size:18px;
  font-weight:950;
  line-height:1.12;
}

.ttp-address-nearby-card-body > span:not(.ttp-address-nearby-card-meta){
  color:#475569;
  font-size:13px;
  line-height:1.42;
}

.ttp-address-nearby-editor-note{
  padding:12px;
  border:1px solid rgba(37,99,235,.16);
  border-radius:14px;
  background:rgba(37,99,235,.08);
  color:var(--ttp-editorial-blue);
  font-size:13px;
  font-weight:800;
}

.ttp-image{
  border-radius:26px;
}

.ttp-image::before,
.ttp-styled-image.is-frame-card::before,
.ttp-styled-gallery.is-frame-card::before,
.ttp-image-compare.is-frame-card::before{
  content:"";
  display:block;
  height:6px;
  margin:calc(clamp(16px, 3vw, 24px) * -1) calc(clamp(16px, 3vw, 24px) * -1) clamp(14px, 2vw, 18px);
  border-radius:26px 26px 0 0;
  background:linear-gradient(90deg, var(--ttp-editorial-amber), var(--ttp-editorial-rose), var(--ttp-editorial-blue), var(--ttp-editorial-teal));
}

.ttp-content-block.is-frame-card{
  border-radius:26px;
  background:
    radial-gradient(circle at 100% 0%, rgba(var(--ttp-accent-rgb), .14), transparent 19rem),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,252,255,.92)),
    var(--ttp-editorial-paper);
}

.ttp-content-block.is-frame-card::before{
  height:6px;
  background:linear-gradient(90deg, var(--ttp-editorial-amber), var(--ttp-accent), var(--ttp-accent-2), var(--ttp-editorial-teal));
}

.ttp-timeline.is-timeline-horizontal .ttp-timeline-item,
.ttp-timeline.is-timeline-auto .ttp-timeline-item,
.ttp-route-stop,
.ttp-related-card,
.ttp-content-meta-grid dd,
.ttp-content-meta-grid dt{
  border-radius:16px;
}

.ttp-source-card,
.ttp-case-file,
.ttp-reader-note,
.ttp-fact-box{
  position:relative;
}

.ttp-youtube-frame{
  border-radius:24px;
  box-shadow:0 26px 58px rgba(15,23,42,.24);
}

.ttp-place-tools:not(.is-frame-bare)::before{
  height:6px;
  background:linear-gradient(90deg, var(--ttp-editorial-amber), var(--ttp-place-accent), var(--ttp-place-accent-2), var(--ttp-editorial-teal));
}

.ttp-visit-details,
.ttp-places-archive{
  border-radius:26px;
  background:
    radial-gradient(circle at 12% 6%, rgba(var(--ttp-place-accent-rgb),.18), transparent 21rem),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(250,252,255,.92));
}

.ttp-post-template{
  padding:clamp(22px, 4vw, 40px);
  border-radius:28px;
}

.ttp-post-feature-image{
  max-width:min(100%, 560px);
  border-radius:22px;
}

.ttp-post-feature-image img{
  border-radius:16px;
}

.ttp-post-snapshot,
.ttp-post-location-band,
.ttp-post-pull-note,
.ttp-post-closing-note{
  border-radius:20px;
  box-shadow:0 18px 42px rgba(15,23,42,.10);
}

.ttp-ob-banner-block{
  border:1px solid rgba(37,99,235,.14);
  box-shadow:
    0 1px 0 rgba(255,255,255,.86) inset,
    0 18px 42px rgba(15,23,42,.13);
}

.ttp-ob-banner__mark,
.ttp-ob-banner__date,
.ttp-ob-banner__prefix{
  border-radius:999px;
  font-weight:900;
}

@media (max-width: 720px){
  :where(
    .ttp-address-widget,
    .ttp-image,
    .ttp-styled-image.is-frame-card,
    .ttp-styled-gallery.is-frame-card,
    .ttp-image-compare.is-frame-card,
    .ttp-content-block.is-frame-card,
    .ttp-place-tools:not(.is-frame-bare),
    .ttp-post-template
  ){
    border-radius:22px;
  }

  .ttp-address-widget{
    padding:22px 16px;
  }

  .ttp-address-nav-link{
    min-width:0;
    width:100%;
    min-height:104px;
  }

  .ttp-address-nearby{
    margin-top:12px;
  }

  .ttp-address-nearby-trigger{
    flex-direction:column;
    align-items:flex-start;
    border-radius:14px;
  }

  .ttp-address-nearby-modal{
    align-items:start;
    justify-items:center;
    padding:max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom));
  }

  .ttp-address-nearby-dialog{
    width:100%;
    max-height:calc(100vh - 20px);
    max-height:calc(100dvh - 20px);
    border-radius:22px;
    padding:18px 14px;
  }

  .ttp-address-nearby-header{
    padding-right:42px;
    margin-bottom:12px;
  }

  .ttp-address-nearby-header h3{
    font-size:clamp(25px, 8vw, 34px);
    line-height:1.03;
  }

  .ttp-address-nearby-header p{
    font-size:14px;
  }

  .ttp-address-nearby-grid{
    grid-template-columns:1fr;
    gap:10px;
  }

  .ttp-address-nearby-card{
    grid-template-columns:96px minmax(0, 1fr);
    min-height:132px;
  }

  .ttp-address-nearby-card-media img,
  .ttp-address-nearby-card-media > span{
    min-height:132px;
  }

  .ttp-address-nearby-card-body{
    padding:12px;
  }

  .ttp-address-nearby-card-body strong{
    font-size:16px;
  }
}
