/* ==========================================================================
   PassTheDay — homepage spacing and alignment (client mockup)
   Loaded on the front page, and on pages that reuse the homepage footer.
   Selectors start with body.home (or .ptd-home-footer) so they win over the
   Elementor settings and the CSS kept in the page's HTML widgets.
   Element IDs are Elementor's; if a section is rebuilt its rule needs updating.
   Every section lines up on Elementor's 1180px content width.
   ========================================================================== */

body.home {
  --ptd-home-edge: max(40px, calc((100vw - 1180px) / 2));
}

/* ---------- Hero ---------- */
body.home .elementor-element-0463f48 {
  padding-left: var(--ptd-home-edge) !important;
  padding-right: var(--ptd-home-edge) !important;
  gap: 0 !important;
}
body.home .elementor-element-e7f70ff .elementor-heading-title,
body.home .elementor-element-d493ec6 .elementor-heading-title {
  font-size: 66px !important;
  line-height: 1.04 !important;
  font-weight: 600 !important;
  letter-spacing: -.015em;
}
body.home .elementor-element-0463f48 .elementor-widget-divider {
  margin: 26px 0 24px !important;
}
/* Hero intro: wide enough for the first sentence on one line, with the bold
 * "No overnight stay required." line below it (client request 2026-10-28;
 * was 300px, which squeezed it into a narrow paragraph). */
body.home .elementor-element-d15885f,
body.home .elementor-element-d15885f p {
  max-width: min(760px, 100%);
  font-family: var(--ptd-font-body);
  font-size: 17px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: #374151 !important;
}

/* ---------- Search card: full content width ---------- */
body.home .elementor-element-0138923 {
  width: calc(100% - 2 * var(--ptd-home-edge)) !important;
  max-width: 1180px !important;
  padding: 22px 40px 24px !important;
  border-radius: 14px;
}
body.home .elementor-element-91f0a1a {
  width: 100% !important;
  align-self: stretch;
}
body.home .ptd-search .ptd-tabs .ptd-tab { font-size: 15px; }
body.home .ptd-fields .ptd-field label { font-size: 15px; margin-bottom: 4px; }
body.home .ptd-field input,
body.home .ptd-field select { font-size: 14px !important; color: #6B7280 !important; }
body.home .ptd-fields .ptd-search-btn {
  height: 56px !important;
  border-radius: var(--ptd-radius-btn);
  font-size: 15px;
}

/* ---------- Trust strip ---------- */
/* The container's own background is set in Elementor, but this Elementor
   version emits it only as a motion-effects-layer selector, so it never
   paints and the strip fell back to the white page. Set it here instead. */
body.home .elementor-element.elementor-element-c22ab5c {
  background-color: var(--ptd-cream);
}
/* Centre the content in the band.
   The search card above deliberately overlaps this strip by 60px, so the band's
   own top padding is spent clearing it. Before this, the content had 126px of
   space above it and 34px below, so it sat low and looked off-centre. The top
   padding now clears exactly the card's overlap, and the inner padding is equal
   top and bottom, which leaves the same 50px above the icons as below the text.
   Elementor's own padding is overridden in an HTML widget on the page
   (padding-top:50px !important), so this needs !important too. */
body.home .elementor-element.elementor-element-c22ab5c {
  padding-top: 60px !important;
  padding-bottom: 0 !important;
}
body.home .elementor-element-c22ab5c > .e-con-inner {
  padding-top: 50px !important;
  padding-bottom: 50px !important;
}

/* "Best day rates": the tag pointed down-right with its hole at the top-left.
   Mirrored so it points down-left, as in the client's design. The stroke is
   even and the shape has no text, so a flip is all it needs.
   Remove this rule to put the tag back the other way round. */
body.home .elementor-element-114f247 .icon-box-2 svg {
  transform: scaleX(-1);
}
/* Listeo fills SVG shapes with its red; keep these icons as navy outlines */
body.home .elementor-widget-listeo-iconbox .icon-box-2 svg :is(path, rect, line, polygon, polyline, circle, ellipse) {
  fill: none !important;
  stroke: currentColor !important;
}
body.home .elementor-widget-listeo-iconbox .icon-box-2 svg [fill="currentColor"] {
  fill: currentColor !important;
  stroke: none !important;
}
body.home .elementor-widget-listeo-iconbox .icon-box-2 svg [stroke="#D69A45"] {
  stroke: var(--ptd-gold) !important;
}
body.home .elementor-widget-listeo-iconbox .icon-box-2 i.listeo-svg-icon-box {
  height: 40px !important;
  margin-bottom: 20px !important;
}
body.home .elementor-widget-listeo-iconbox .icon-box-2 svg {
  width: 40px !important;
  height: 40px !important;
}
body.home .elementor-widget-listeo-iconbox .icon-box-2 h3 {
  font-size: 16px !important;
  margin-bottom: 8px !important;
}
body.home .elementor-widget-listeo-iconbox .icon-box-2 p {
  font-size: 14px !important;
  line-height: 1.55 !important;
}

/* ---------- Day Passes / Day Rooms ---------- */
body.home .elementor-element-f94d82f > .e-con-inner {
  padding: 40px 0 16px !important;
}
body.home .elementor-element-c22b77b > .e-con-inner {
  padding: 36px 0 24px !important;
}
/* Header row: title + subtitle left, "View all" right, centred */
body.home .elementor-element-1cac706,
body.home .elementor-element-441a908 {
  align-items: center !important;
  padding: 0 !important;
  margin-bottom: 6px !important;
}
body.home .elementor-element-7f434a7,
body.home .elementor-element-5823e97 {
  gap: 6px !important;
}
body.home .elementor-element-1401a30 :is(h1, h2, h3, h4, .headline),
body.home .elementor-element-f895d7e :is(h1, h2, h3, h4, .headline) {
  font-family: var(--ptd-font-display) !important;
  font-size: 38px !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: -.015em !important;
  color: var(--ptd-navy) !important;
}
body.home .elementor-element-a775653,
body.home .elementor-element-a775653 p,
body.home .elementor-element-462c434,
body.home .elementor-element-462c434 p {
  margin-top: 0 !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  color: var(--ptd-text-muted) !important;
}
body.home .elementor-element-c28fc6c .elementor-button,
body.home .elementor-element-639f440 .elementor-button {
  font-family: var(--ptd-font-body);
  font-size: 14.5px !important;
  font-weight: 600 !important;
}

/* Cards */
body.home .ptd-grid {
  padding: 4px 0 14px !important;
}
body.home .ptd-card {
  border-radius: 12px;
  box-shadow: 0 4px 18px rgba(20, 30, 50, .08);
}
body.home .ptd-badge {
  top: auto;
  bottom: 10px;
  left: 10px;
  padding: 4px 9px;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 600;
}
/* The icon was the same size as the label (11.5px) and almost disappeared;
   set larger than the text so it reads as an icon, not a bullet. */
body.home .ptd-badge i {
  color: var(--ptd-gold);
  font-size: 14px;
  line-height: 1;
}
/* The picture on a slider card opens the listing (functions.php). */
.ptd-img__link {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  text-decoration: none;
}

body.home .ptd-heart {
  top: 10px;
  right: 10px;
  width: auto;
  height: auto;
  background: transparent;
  color: #fff;
  font-size: 22px;
  line-height: 1;
  text-shadow: 0 1px 5px rgba(0, 0, 0, .4);
}
body.home .ptd-body { padding: 14px 16px 16px; }
body.home .ptd-title {
  margin: 0 0 2px;
  font-size: 15.5px;
  line-height: 1.3;
}
body.home .ptd-meta {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.4;
  color: #6B7280;
}
body.home .ptd-amenities {
  min-height: 0;
  margin: 0 0 4px;
  font-size: 13px;
  line-height: 1.4;
  color: #374151;
}
body.home .ptd-price {
  margin: 0 0 12px;
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.4;
  color: #374151;
}
body.home .ptd-price strong {
  font-size: 15px;
  font-weight: 700;
  color: var(--ptd-navy);
}
body.home .ptd-btn {
  padding: 9px 12px;
  line-height: 1.4;
  border-radius: var(--ptd-radius-btn);
  font-size: 13.5px;
  font-weight: 600;
}
/* Arrows centred on the photos instead of over the card titles.
   Bigger and firmer than the hairline circle they were: the chevron was
   16px on a 38px button and read as a faint smudge next to the cards. */
body.home .ptd-arrow {
  top: 79px !important;
  width: 46px;
  height: 46px;
  border: 1px solid #E7E2D9;
  box-shadow: 0 6px 18px rgba(20, 30, 50, .16);
  color: var(--ptd-navy);
  font-size: 26px;
  line-height: 1;
  padding-bottom: 3px; /* the ‹ › glyphs sit low in their line box */
  transition: background-color .18s ease, color .18s ease,
              box-shadow .18s ease, transform .18s ease;
}
body.home .ptd-arrow:hover,
body.home .ptd-arrow:focus-visible {
  background: var(--ptd-navy);
  border-color: var(--ptd-navy);
  color: #fff;
  box-shadow: 0 8px 22px rgba(20, 30, 50, .26);
}
body.home .ptd-arrow:active {
  transform: translateY(-50%) scale(.94);
}
body.home .ptd-arrow.prev { left: -22px; }
body.home .ptd-arrow.next { right: -22px; }

/* "View all …" links above each slider.
   The arrow used to be part of the button's own text, so it could not move on
   its own; it is now drawn here and slides on hover. If this stylesheet is
   ever removed, the label still reads correctly, just without the arrow. */
body.home .elementor-element-c28fc6c .elementor-button,
body.home .elementor-element-639f440 .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 2px;
  font-size: 14.5px;
  letter-spacing: .005em;
  transition: color .18s ease;
}
body.home .elementor-element-c28fc6c .elementor-button-text::after,
body.home .elementor-element-639f440 .elementor-button-text::after {
  content: "→";
  display: inline-block;
  margin-left: 8px;
  /* Follows the label: navy normally, gold on hover (Elementor sets the
     hover colour on the button itself), so the two never drift apart. */
  color: inherit;
  font-size: 1.05em;
  transition: transform .18s ease;
}
body.home .elementor-element-c28fc6c .elementor-button:hover .elementor-button-text::after,
body.home .elementor-element-639f440 .elementor-button:hover .elementor-button-text::after {
  transform: translateX(4px);
}

/* ---------- How PassTheDay works ---------- */
body.home .elementor-element-a3d84b7 {
  padding-top: 16px !important;
  padding-bottom: 0 !important;
}
body.home .elementor-element-a3d84b7 > .e-con-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.home .elementor-element-80886f8 {
  padding: 30px 40px 32px !important;
  border-radius: 14px;
}
body.home .elementor-element-80886f8 > .e-con-inner {
  padding: 0 !important;
  gap: 0 !important;
}
body.home .elementor-element-603ef9b > .e-con {
  padding: 0 10px !important;
  gap: 0 !important;
}
body.home .elementor-element-487efa9 .elementor-heading-title {
  font-family: var(--ptd-font-body) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .22em !important;
  line-height: 1.3 !important;
}
body.home .elementor-element-603ef9b {
  margin-top: 24px !important;
  padding: 0 !important;
}
body.home .elementor-element-603ef9b:before {
  top: 17px !important;
}
body.home .elementor-element-603ef9b .elementor-widget-icon {
  margin-bottom: 14px !important;
}
/* Outline step icons (SVGs in the Elementor icon widgets) */
body.home .elementor-element-603ef9b .elementor-icon svg {
  width: 30px !important;
  height: 30px !important;
  fill: none !important;
  stroke: var(--ptd-navy) !important;
}
body.home .elementor-element-603ef9b .elementor-icon svg * {
  fill: none !important;
}
body.home .elementor-element-603ef9b .elementor-heading-title {
  font-family: var(--ptd-font-body) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}
body.home .elementor-element-603ef9b .elementor-widget-heading {
  margin-bottom: 6px !important;
}
body.home .elementor-element-603ef9b .elementor-widget-text-editor,
body.home .elementor-element-603ef9b .elementor-widget-text-editor p {
  font-family: var(--ptd-font-body);
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--ptd-text-muted);
}

/* ---------- Newsletter strip ---------- */
body.home .elementor-element-4c4ff05 {
  padding-top: 20px !important;
  padding-bottom: 0 !important;
}
body.home .elementor-element-4c4ff05 > .e-con-inner {
  padding: 0 0 40px !important;
}
body.home .elementor-element-0f7746e {
  min-height: 0 !important;
  padding: 18px 34px !important;
  border-radius: 14px;
}
body.home .elementor-element-0f7746e > .e-con-inner {
  padding: 0 !important;
  min-height: 0 !important;
}
body.home .elementor-element-b327366 {
  gap: 18px !important;
  padding: 0 !important;
}
body.home .elementor-element-8656c35 {
  gap: 2px !important;
  padding: 0 !important;
}
body.home .elementor-element-8ea6380 .elementor-heading-title {
  font-family: var(--ptd-font-body) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
}
body.home .elementor-element-bf28a4b,
body.home .elementor-element-bf28a4b p {
  font-family: var(--ptd-font-body);
  font-size: 14px !important;
  line-height: 1.5 !important;
}
body.home .elementor-element-09a3cd0 input[type="email"] {
  height: 48px !important;
  line-height: 48px !important;
  border: 1px solid #DDE4EC !important;
  border-radius: var(--ptd-radius-btn) !important;
  font-size: 14px !important;
}
body.home .elementor-element-09a3cd0 input[type="submit"] {
  height: 48px !important;
  border-radius: var(--ptd-radius-btn) !important;
  font-size: 14px !important;
}

/* ---------- Footer (homepage and pages that reuse it) ---------- */
:is(body.home, .ptd-home-footer) .elementor-element-13c8b3d {
  padding: 48px max(24px, calc((100vw - 1180px) / 2)) 30px !important;
  gap: 0 !important;
}
:is(body.home, .ptd-home-footer) .elementor-element-a87fd90 {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto !important;
  padding: 0 !important;
}
:is(body.home, .ptd-home-footer) .elementor-element-a87fd90 > .e-con-inner > .e-con {
  padding: 0 !important;
  gap: 10px !important;
}
:is(body.home, .ptd-home-footer) .elementor-element-a87fd90 .elementor-widget-heading {
  margin-bottom: 8px !important;
}
:is(body.home, .ptd-home-footer) .elementor-element-a87fd90 .elementor-heading-title {
  font-family: var(--ptd-font-body) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
}
:is(body.home, .ptd-home-footer) .elementor-element-a87fd90 .elementor-icon-list-item {
  margin-bottom: 8px !important;
}
:is(body.home, .ptd-home-footer) .elementor-element-a87fd90 .elementor-icon-list-text,
:is(body.home, .ptd-home-footer) .elementor-element-a87fd90 p {
  font-family: var(--ptd-font-body);
  font-size: 14px !important;
  line-height: 1.55 !important;
}
:is(body.home, .ptd-home-footer) .elementor-element-a87fd90 .elementor-icon-list-item a:hover .elementor-icon-list-text {
  color: var(--ptd-gold) !important;
}
/* Footer logo: same image as the header.
   No bottom margin — the paragraph wrapping the image used to add 16px on top
   of the column's own 10px gap, which pushed the tagline away from the logo. */
:is(body.home, .ptd-home-footer) .elementor-element-f9a705e p {
  margin: 0 !important;
  line-height: 0 !important;
}
:is(body.home, .ptd-home-footer) .elementor-element-f9a705e img {
  display: block;
  width: 160px;
  height: auto;
}

/* ---------- Tablet / phone ---------- */
@media (max-width: 1024px) {
  body.home .elementor-element-e7f70ff .elementor-heading-title,
  body.home .elementor-element-d493ec6 .elementor-heading-title {
    font-size: 52px !important;
  }
  body.home .elementor-element-0138923 {
    padding: 20px 24px !important;
  }
}
@media (max-width: 900px) {
  /* Search fields stack; the page's per-field flex sizes were beating its own mobile rule */
  body.home .ptd-fields .ptd-field:nth-of-type(n) {
    flex: 1 1 100% !important;
  }
}
@media (max-width: 767px) {
  body.home {
    --ptd-home-edge: 20px;
  }
  /* Trust strip: two columns, no dividers */
  body.home .elementor-element-c22ab5c > .e-con-inner {
    flex-wrap: wrap !important;
    row-gap: 28px !important;
    column-gap: 0 !important;
  }
  body.home .elementor-element-c22ab5c > .e-con-inner > .e-con {
    width: 50% !important;
    flex: 0 0 50% !important;
    padding: 0 6px !important;
    border: 0 !important;
  }
  /* Newsletter: form under the text */
  body.home .elementor-element-0f7746e,
  body.home .elementor-element-0f7746e > .e-con-inner {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 16px !important;
  }
  body.home .elementor-element-b327366,
  body.home .elementor-element-e59373f {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
  }
  /* Footer: Explore + Company side by side */
  :is(body.home, .ptd-home-footer) .elementor-element-a87fd90 > .e-con-inner {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    column-gap: 20px !important;
    row-gap: 30px !important;
  }
  :is(body.home, .ptd-home-footer) .elementor-element-a87fd90 > .e-con-inner > .e-con {
    width: 100% !important;
  }
  :is(body.home, .ptd-home-footer) .elementor-element-a87fd90 > .e-con-inner > .e-con:nth-child(2),
  :is(body.home, .ptd-home-footer) .elementor-element-a87fd90 > .e-con-inner > .e-con:nth-child(3) {
    width: calc(50% - 10px) !important;
  }
  body.home .elementor-element-e7f70ff .elementor-heading-title,
  body.home .elementor-element-d493ec6 .elementor-heading-title {
    font-size: 40px !important;
  }
  body.home .elementor-element-1401a30 :is(h1, h2, h3, h4, .headline),
  body.home .elementor-element-f895d7e :is(h1, h2, h3, h4, .headline) {
    font-size: 30px !important;
  }
  body.home .elementor-element-0f7746e {
    padding: 20px !important;
  }
  :is(body.home, .ptd-home-footer) .elementor-element-13c8b3d {
    padding: 36px 20px 20px !important;
  }
}
