@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800;900&family=Lato:wght@700&display=swap');

/* ==============================
   TYPOGRAPHY
   ============================== */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', Georgia, serif;
}

body.single-post .elementor-widget-theme-post-title .elementor-heading-title,
body.single-post .elementor-widget-theme-post-title .elementor-heading-title a,
body.single-post h1.entry-title,
body.single-post h1.entry-title a {
  font-family: "Playfair Display", serif !important;
  font-size: 2.5rem !important;
  line-height: 1.2 !important;
}

/* Oversized H1 (applies on all screen sizes) */
.elementor-element-070e731 h1 {
  font-size: 1.8rem !important;
  line-height: 1.2 !important;
}

.elementor-element-e8d3930 .elementor-heading-title {
  font-size: 25px !important;
}

.elementor-post__title,
.elementor-post__title a {
  font-size: 18px !important;
}

/* ==============================
   GLOBAL IMAGE SAFETY (Android fix)
   ============================== */
img {
  max-width: 100% !important;
  height: auto !important;
}

/* Let Elementor columns/containers shrink on narrow screens */
.elementor-column,
.elementor-widget-wrap,
.e-con,
.e-con-inner,
.elementor-widget-container {
  min-width: 0;
}

/* Stop sideways scrolling / page shifting */
html,
body {
  max-width: 100%;
  overflow-x: hidden; /* fallback for older browsers */
  overflow-x: clip;   /* modern browsers; keeps sticky headers working */
}

/* ==============================
   POST GRID / STORY CARD THUMBS
   ============================== */
.elementor-posts .elementor-post__thumbnail,
.elementor-posts__thumbnail,
.e-loop-item .elementor-post__thumbnail {
  width: 100%;
  min-height: 200px;
  max-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: #f0f0f0;
}

.elementor-posts .elementor-post__thumbnail img,
.elementor-posts__thumbnail img,
.e-loop-item img {
  width: 100%;
  max-height: 70vh !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block;
}

/* ==============================
   INDIVIDUAL POST CONTENT IMAGES
   ============================== */
.single-post .elementor-widget-image img,
article .elementor-widget-image img {
  width: auto !important;
  object-fit: unset !important;
}

/* ==============================
   FOOTER
   ============================== */
footer img,
.site-footer img,
.elementor-location-footer img,
.footer-widget img {
  width: auto !important;
  object-fit: unset !important;
}

.elementor-location-footer .elementor-widget-theme-site-logo img {
  width: 150px !important;
  max-width: 150px !important;
}

/* ==============================
   CAROUSEL (all devices)
   ============================== */
.elementor-widget-carousel {
  overflow: hidden !important;
}

.elementor-widget-carousel .swiper-wrapper {
  overflow: visible !important;
  align-items: stretch !important;
}

.elementor-widget-carousel .swiper-slide {
  height: auto !important;
  overflow: visible !important;
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  box-sizing: border-box !important;
  min-height: 350px !important;
}

@media (max-width: 1024px) {
  .elementor-widget-carousel .swiper-slide { min-height: 300px !important; }
}

.elementor-carousel-image {
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
}

/* ==============================
   HIDDEN SPACERS
   ============================== */
.elementor-element-f264e8b,
.elementor-element-63ed378,
.elementor-element-4184371,
.elementor-element-d0af9d1,
.elementor-element-ec2093b {
  display: none !important;
}

/* ==============================
   LINKS
   ============================== */
/* Black by default, but not buttons */
a:where(:not(.elementor-button):not(.wp-block-button__link)) {
  color: #000 !important;
}

/* Button text stays white */
.elementor-button,
.elementor-button:hover,
.elementor-button:visited,
.elementor-button:active,
.elementor-button:focus {
  color: #fff !important;
}

/* Blue links in text/content areas */
.elementor-widget-text-editor a,
.elementor-widget-text-editor a:visited,
.entry-content a,
.entry-content a:visited,
.post-content a,
.post-content a:visited {
  color: #0066CC !important;
}

.elementor-widget-text-editor a:hover,
.entry-content a:hover,
.post-content a:hover {
  color: #0044AA !important;
}

/* Post body links on the single-post template (this is what posts show today) */
body:not(.wp-admin) .elementor-widget-theme-post-content a {
  color: #0000FF !important;
}

/* Newspack carousel */
.wp-block-newspack-blocks-carousel a,
.wp-block-newspack-blocks-carousel .entry-title a,
.wpnbpc a {
  color: #000 !important;
}

body:not(.wp-admin) .wp-block-newspack-blocks-carousel .entry-wrapper a {
  color: #fff !important;
  font-size: 0.9em !important;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.8) !important;
}

/* Admin toolbar stays readable */
#wpadminbar a,
#wpadminbar a:link,
#wpadminbar a:visited {
  color: #fff !important;
}

#wpadminbar a:hover {
  color: #00b9eb !important;
}

/* ==============================
   CATEGORY LABELS - VOGUE STYLE
   ============================== */
.elementor-post__badge,
.elementor-post-info__item--type-categories a,
.elementor-post-info .elementor-icon-list-item a,
.post-categories a,
.cat-links a,
a[rel="category tag"] {
  font-family: 'Lato', sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: #000 !important;
  text-decoration: none !important;
  border-bottom: 1px solid #000;
  padding-bottom: 1px;
  transition: opacity 0.2s ease;
}

.elementor-post__badge:hover,
.elementor-post-info__item--type-categories a:hover,
.post-categories a:hover,
.cat-links a:hover,
a[rel="category tag"]:hover {
  opacity: 0.5 !important;
  color: #000 !important;
}

/* ==============================
   FORMS
   ============================== */
.elementor-form .e-form__buttons .elementor-button,
.elementor-form button[type="submit"] {
  background-color: #000 !important;
  color: #fff !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: inline-flex !important;
}

/* ==============================
   ONETAP ACCESSIBILITY TOOLBAR
   ============================== */
[class*="onetap"],
[id*="onetap"] {
  max-width: 100vw !important;
  box-sizing: border-box !important;
}

/* ==============================
   PHONES (767px and below)
   ============================== */
@media (max-width: 767px) {

  /* Story card thumbs */
  .elementor-posts .elementor-post__thumbnail,
  .elementor-posts__thumbnail,
  .e-loop-item .elementor-post__thumbnail {
    min-height: 150px;
    max-height: 50vh;
    background-color: transparent !important;
  }

  .elementor-posts .elementor-post__thumbnail img,
  .elementor-posts__thumbnail img,
  .e-loop-item img {
    max-height: 50vh !important;
    width: 100% !important;
    object-fit: cover !important;
  }

  /* Photos fill the screen width */
  .elementor-widget-image img,
  .wp-block-image img,
  figure img {
    width: 100% !important;
    object-fit: contain;
  }

  /* ...but NOT the logo/header images at the top of the page */
  .elementor-location-header img,
  .elementor-widget-theme-site-logo img {
    width: auto !important;
  }

  /* Captioned images can't be wider than the screen */
  figure,
  .wp-block-image,
  .wp-caption {
    width: auto !important;
    max-width: 100% !important;
  }

  /* Loop item spacing */
  .elementor-element-e62e8c7 {
    padding: 0 !important;
  }
  .elementor-element-e62e8c7 .e-con-inner {
    gap: 10px !important;
  }

  .elementor-widget-carousel .swiper-slide { min-height: 250px !important; }
}
/* Top banner ad: always centered */
.top-banner,
.top-banner .elementor-widget-container {
  text-align: center !important;
}
.top-banner img {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.kern-ad img,
.kern-ad iframe {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
}
/* Top banner ad: always centered */
.top-banner,
.top-banner .elementor-widget-container {
  text-align: center !important;
}
.top-banner img {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
}