/*
Theme Name: Taos Goji
Theme URI: https://taosgoji.com
Author: Taos Goji
Description: Custom theme that recreates the taosgoji.com Squarespace design: wide-tracked uppercase navigation, inset hero, maroon accent, floating Book Now button. No page builder needed; works with the block editor.
Version: 1.0.3
Requires at least: 6.3
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: taosgoji
*/

:root{
  --maroon:#a3322b;
  --maroon-dark:#862620;
  --ink:#2b2b2b;
  --muted:#6e6e6e;
  --line:#e8e4df;
  --gutter:3vw;
  --sans:'Jost','Helvetica Neue',Arial,sans-serif;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-weight:400;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--maroon);text-decoration:none;transition:color .2s}
a:hover{color:var(--maroon-dark);text-decoration:underline}
.screen-reader-text{position:absolute;left:-9999px}

/* ---------- Header ---------- */
.site-header{display:flex;align-items:center;justify-content:space-between;padding:56px var(--gutter) 70px;gap:32px}
.site-branding img,.site-branding .custom-logo{height:72px;width:auto;max-width:none}
.site-branding .site-title{font-family:var(--sans);letter-spacing:.3em;text-transform:uppercase;font-size:22px;color:var(--ink)}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2.6vw;align-items:center}
.main-nav a{font-family:var(--sans);font-size:15.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);padding:6px 0;display:block}
.main-nav a:hover{color:var(--maroon);text-decoration:none}
.main-nav .current-menu-item>a,.main-nav .current_page_item>a,.main-nav .current-menu-ancestor>a{color:var(--maroon)}
.main-nav li{position:relative}
.main-nav ul ul{position:absolute;top:100%;left:-18px;background:#fff;padding:14px 18px;display:none;flex-direction:column;gap:6px;box-shadow:0 8px 24px rgba(0,0,0,.08);min-width:220px;z-index:50}
.main-nav li:hover>ul{display:flex}
.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--ink);margin:6px 0}

/* ---------- Content ---------- */
.site-main{padding:0 var(--gutter) 90px}
.entry-content>*{max-width:780px;margin-left:auto;margin-right:auto}
.entry-content>.alignwide,.entry-content>.wp-block-cover,.entry-content>.wp-block-columns,.entry-content>.wp-block-gallery,.entry-content>.cabin-grid,.entry-content>.wp-block-group.alignwide{max-width:none}
.entry-content>.wp-block-image{max-width:1100px}
.entry-content h1,.entry-content h2,.entry-content h3{font-family:var(--sans);font-weight:400;text-transform:uppercase;letter-spacing:.16em;line-height:1.3;color:var(--ink)}
.entry-content h1{font-size:clamp(28px,3.6vw,46px);margin:.4em auto .6em;text-align:center}
.entry-content h2{font-size:clamp(22px,2.2vw,30px);margin:1.6em auto .6em}
.entry-content h3{font-size:19px}
.entry-content p{margin:0 auto 1.3em}
.entry-content ul{margin:0 auto 1.4em;padding-left:1.3em}
.entry-content li{margin-bottom:.5em}
.entry-content figure{margin-top:2em;margin-bottom:2em}
.entry-content blockquote{border-left:2px solid var(--maroon);margin:2em auto;padding:.2em 0 .2em 1.4em;font-family:var(--serif);font-style:italic;font-size:1.25em;line-height:1.6}
.entry-content blockquote p{margin-bottom:.4em}
.entry-content blockquote cite{font-family:var(--sans);font-style:normal;font-size:.7em;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* ---------- Buttons ---------- */
.wp-block-button__link,.btn,.entry-content .wp-block-button__link{background:var(--maroon);color:#fff;border-radius:999px;font-family:var(--serif);font-weight:600;font-size:15px;letter-spacing:.16em;text-transform:uppercase;padding:17px 38px;display:inline-block;line-height:1.2;transition:background .2s}
.wp-block-button__link:hover,.btn:hover{background:var(--maroon-dark);color:#fff;text-decoration:none}
.wp-block-buttons{margin:2em auto}
.wp-block-buttons.is-content-justification-center{justify-content:center}
.btn.book-now{position:fixed;top:auto;left:auto;right:28px;bottom:28px;width:auto;height:auto;min-height:0;z-index:90;white-space:nowrap;box-shadow:0 6px 20px rgba(0,0,0,.28);padding:16px 28px}
.btn.book-now:hover{text-decoration:none}

/* ---------- Hero (cover block) ---------- */
.entry-content>.wp-block-cover{min-height:82vh;border-radius:0;padding:40px 24px 90px;margin-top:0;margin-bottom:70px}
.wp-block-cover .wp-block-cover__background{opacity:.22!important}
.wp-block-cover .wp-block-cover__inner-container{max-width:1000px;color:#fff}
.wp-block-cover h1{color:#fff;font-size:clamp(30px,4.4vw,62px);letter-spacing:.14em;margin:0 0 .5em}
.wp-block-cover p{font-family:var(--serif);color:#fff;text-transform:uppercase;letter-spacing:.2em;font-size:clamp(13px,1.1vw,17px);margin:0 0 1.6em}
.wp-block-cover .wp-block-buttons{margin:0}

/* ---------- Columns / galleries ---------- */
.wp-block-columns{gap:3.5vw;margin-bottom:3.5em}
.wp-block-column h2{margin-top:.8em;font-size:clamp(20px,1.8vw,26px)}
.wp-block-column>.wp-block-image{margin:0 0 1em}
.wp-block-column>.wp-block-image img{width:100%;aspect-ratio:4/3;object-fit:cover}
.wp-block-gallery{margin-bottom:3em}
.wp-block-gallery img{cursor:zoom-in}
.wp-block-image img{cursor:zoom-in}
.cabin-layout{align-items:flex-start}
.cabin-layout .wp-block-gallery{margin:0}
.cabin-layout>.wp-block-column:last-child{position:sticky;top:30px}
.cabin-layout h1{text-align:left;font-size:clamp(26px,2.8vw,38px);margin-top:0}
.cabin-layout h2{font-size:18px;margin-top:2em}
.back-link{font-size:13px;letter-spacing:.22em;text-transform:uppercase}
.back-link a{color:var(--muted)}

/* Rentals card grid */
.cabin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:36px 30px;margin:0 auto 3em}
.cabin-card{display:block;color:var(--ink)}
.cabin-card:hover{text-decoration:none}
.cabin-card img{width:100%;aspect-ratio:4/3;object-fit:cover;cursor:pointer;transition:opacity .25s}
.cabin-card:hover img{opacity:.88}
.cabin-card h3{margin:.9em 0 0;font-family:var(--sans);font-weight:400;font-size:16px;letter-spacing:.2em;text-transform:uppercase;text-align:center}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:70px var(--gutter) 40px;background:#fff}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px;max-width:1200px;margin:0 auto 50px}
.footer-cols h4{font-family:var(--sans);font-weight:400;text-transform:uppercase;letter-spacing:.24em;font-size:14px;margin:0 0 1em;color:var(--ink)}
.footer-cols p,.footer-cols li{font-size:15.5px;line-height:1.8;margin:0}
.footer-cols ul{list-style:none;margin:0;padding:0}
.footer-cols a{color:var(--muted)}
.footer-cols a:hover{color:var(--maroon)}
.copyright{text-align:center;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* ---------- Lightbox ---------- */
.tg-lightbox{position:fixed;inset:0;background:rgba(15,12,10,.94);z-index:1000;display:none;align-items:center;justify-content:center}
.tg-lightbox.open{display:flex}
.tg-lightbox img{max-width:92vw;max-height:90vh;object-fit:contain;cursor:default}
.tg-lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:42px;cursor:pointer;padding:16px;line-height:1}
.tg-lightbox .x{top:8px;right:14px}.tg-lightbox .prev{left:8px;top:50%}.tg-lightbox .next{right:8px;top:50%}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .site-header{padding:28px var(--gutter) 34px}
  .site-branding img,.site-branding .custom-logo{height:52px}
  .nav-toggle{display:block}
  .main-nav{position:absolute;left:0;right:0;top:100%;background:#fff;display:none;padding:10px var(--gutter) 24px;border-bottom:1px solid var(--line);z-index:60}
  .main-nav.open{display:block}
  .main-nav ul{flex-direction:column;align-items:flex-start;gap:6px}
  .site-header{position:relative}
  .main-nav ul ul{position:static;display:flex;box-shadow:none;padding:0 0 0 16px}
  .cabin-layout>.wp-block-column:last-child{position:static}
  .entry-content>.wp-block-cover{min-height:68vh;padding-bottom:60px}
  .btn.book-now{right:16px;bottom:16px;padding:14px 22px}
}

/* ==========================================================================
   Taos Goji – match taosgoji.com (added Oct 2026)
   Paste at the very END of style.css
   ========================================================================== */

/* ---------- Page titles (Farm Life, Events, Taos, Shop, etc.) ----------
   Only the title at the top of a page is affected. The home page's cover
   heading and the cabin detail page headings are left alone. */
.entry-content > h1 {
  font-family: 'proxima-nova', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #6b6b6b;
  text-align: left !important;
  margin: 0.4em auto 28px;
}

/* ---------- Rentals page grid ---------- */
/* The theme limits page content to 780px; the rentals layout needs 1000px. */
.entry-content > .pr-wrap { max-width: 1000px; }

  .pr-wrap {
    --pr-ink: #333333;
    --pr-bg: #FFFFFF;
    --pr-rust: #9A2B22;
    --pr-grey: #7A7879;
    --pr-stone: #8E8C8C;
    --pr-text: #5c5856;
    --pr-line: #E5E5E5;
    --pr-font: 'Jost', 'Josefin Sans', 'Century Gothic', 'Helvetica Neue', Arial, sans-serif;

    background: var(--pr-bg);
    box-sizing: border-box;
    max-width: 1000px;
    margin: 0 auto;
    padding: 48px 24px 72px;
    font-family: var(--pr-font) !important;
    color: var(--pr-ink);
  }
  .pr-wrap *, .pr-wrap *::before, .pr-wrap *::after { box-sizing: border-box; }
  .pr-wrap h2, .pr-wrap h3, .pr-wrap p, .pr-wrap a, .pr-wrap span, .pr-wrap div {
    font-family: var(--pr-font) !important;
    font-style: normal !important;
  }
  /* Neutralise common WordPress theme styles inside this block */
  .pr-wrap a { text-decoration: none !important; box-shadow: none !important; border: 0 !important; }
  .pr-wrap img { max-width: 100%; height: auto; margin: 0 !important; border-radius: 0 !important; }
  .pr-wrap hr { height: 0; background: none; }

  /* ---------- top of page ---------- */
  .pr-section-head { margin: 0 0 40px; text-align: left; }
  .pr-wrap h1.pr-page-title {
    font-family: 'proxima-nova', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: #6b6b6b !important;
    text-align: left !important;
    margin: 0 !important;
  }
  .pr-wrap .pr-section-head p {
    font-size: 17px !important;
    font-weight: 300 !important;
    line-height: 1.65 !important;
    letter-spacing: 0.02em !important;
    color: var(--pr-text) !important;
    text-align: left !important;
    margin: 14px 0 0 !important;
    max-width: 40em;
  }

  .pr-layout {
    display: grid;
    grid-template-columns: 3fr 1fr;
    gap: 36px;
    align-items: start;
  }
  @media (max-width: 860px) { .pr-layout { grid-template-columns: 1fr; } }

  /* ---------- sidebar upsell ---------- */
  .pr-upsell-side {
    position: sticky;
    top: 24px;
    border: 1px solid var(--pr-line);
    border-radius: 2px;
    overflow: hidden;
    background: #fff;
  }
  @media (max-width: 860px) { .pr-upsell-side { display: none; } }
  .pr-upsell-side img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; height: auto; }
  .pr-upsell-side__body { padding: 20px; }
  .pr-upsell-side__eyebrow {
    color: var(--pr-rust);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0 0 8px;
    display: block;
  }
  .pr-wrap h2.pr-upsell-side__title {
    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    color: var(--pr-ink) !important;
    margin: 0 0 10px !important;
  }
  .pr-wrap p.pr-upsell-side__text {
    font-size: 14.5px !important;
    font-weight: 300 !important;
    line-height: 1.6 !important;
    color: var(--pr-text) !important;
    margin: 0 0 16px !important;
  }
  .pr-wrap .pr-upsell-side__btn {
    display: inline-block;
    color: var(--pr-rust) !important;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }
  .pr-upsell-side__btn::after { content: "→"; margin-left: 5px; transition: margin-left 0.2s ease; }
  .pr-wrap .pr-upsell-side__btn:hover { color: #741D16 !important; }
  .pr-upsell-side__btn:hover::after { margin-left: 9px; }

  /* mobile version of the upsell (shown after first card) */
  .pr-upsell-mobile { display: none; }
  @media (max-width: 860px) {
    .pr-upsell-mobile {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 16px;
      padding: 16px 0 4px;
      border-top: 1px solid var(--pr-line);
      margin-top: 8px;
    }
    .pr-upsell-mobile__label {
      font-size: 12px; color: var(--pr-grey); font-weight: 500;
      letter-spacing: 0.14em; text-transform: uppercase;
    }
    .pr-upsell-mobile__sub { font-size: 11px; font-weight: 400; text-transform: none; letter-spacing: 0.02em; }
    .pr-wrap .pr-upsell-mobile__link {
      font-size: 13px; font-weight: 500; color: var(--pr-rust) !important;
      letter-spacing: 0.14em; text-transform: uppercase; text-align: right;
    }
    .pr-upsell-mobile__link::after { content: "→"; margin-left: 5px; }
  }

  /* ---------- card grid ---------- */
  .pr-grid { display: grid; gap: 32px; margin: 0; }
  .pr-grid--3 { grid-template-columns: repeat(3, 1fr); }
  @media (max-width: 900px) { .pr-grid--3 { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 620px) { .pr-grid--3 { grid-template-columns: 1fr; gap: 28px; } }

  .pr-card { background: var(--pr-bg); display: flex; flex-direction: column; height: 100%; }
  .pr-wrap .pr-card-info-link { display: flex; flex-direction: column; color: inherit !important; }
  .pr-photo-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--pr-line);
  }
  .pr-wrap .pr-photo-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
  }
  .pr-card-info-link:hover .pr-photo-frame img { transform: scale(1.04); }

  .pr-tag {
    position: absolute;
    top: 14px;
    right: 14px;
    background: rgba(43, 38, 32, 0.78);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.08em;
    padding: 6px 14px;
    border-radius: 30px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
  }

  .pr-card-body { padding: 20px 4px 0 4px; }
  .pr-card-footer { padding: 0 4px 6px 4px; margin-top: auto; }
  .pr-wrap h3.pr-title {
    font-weight: 500 !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    text-align: left !important;
    margin: 0 0 10px 0 !important;
    color: var(--pr-ink) !important;
  }
  .pr-wrap p.pr-meta {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.01em;
    color: var(--pr-stone) !important;
    text-align: left !important;
    margin: 0 0 16px 0 !important;
  }
  .pr-meta span:not(:last-child)::after { content: "·"; margin: 0 6px; color: #c9c9c9; }
  .pr-wrap hr.pr-divider {
    border: none !important;
    border-top: 1px solid var(--pr-line) !important;
    margin: 0 0 14px 0 !important;
    width: 100%;
    max-width: none;
    opacity: 1;
  }
  .pr-footer-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
  .pr-type {
    font-size: 12px;
    color: var(--pr-grey);
    font-weight: 400;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }
  .pr-wrap .pr-cta {
    font-size: 13px;
    font-weight: 500;
    color: var(--pr-rust) !important;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .pr-cta::after { content: "→"; margin-left: 5px; transition: margin-left 0.2s ease; }
  .pr-cta:hover::after { margin-left: 9px; }

/* ==========================================================================
   Elementor pages – match taosgoji.com (added Oct 2026)
   ========================================================================== */

/* Text blocks: no extra space above the first or below the last paragraph */
.elementor-widget-text-editor p:first-child { margin-top: 0 !important; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0 !important; }

/* Photo gallery: any Elementor "Image Carousel" with the CSS class tg-gallery
   (Advanced tab > CSS Classes). Photos are added/removed in Elementor;
   this only controls the look. */
/* Keep the photo strip from making the page scroll sideways */
.e-con.e-parent:has(.tg-gallery) { overflow-x: clip; }
.tg-gallery .elementor-image-carousel-wrapper {
  overflow: visible;
  clip-path: inset(-20px -12px);
}
.tg-gallery .swiper-slide { width: 300px !important; }
.tg-gallery .swiper-slide-inner { margin: 0; }
.tg-gallery .swiper-slide-image {
  display: block;
  width: 100%;
  height: 380px;
  object-fit: cover;
}
.tg-gallery .elementor-swiper-button {
  position: absolute;
  top: 193px !important;
  transform: translateY(-20px) !important;
  z-index: 2;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 1px 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(253, 252, 249, 0.92);
  box-shadow: 0 2px 10px rgba(43, 38, 32, 0.2);
  color: #2B2620 !important;
  font: 400 16px/16px 'Cormorant Garamond', Georgia, serif !important;
  cursor: pointer;
  opacity: 1;
}
.tg-gallery .elementor-swiper-button-prev {
  left: -6px !important; right: auto !important;
  inset-inline-start: -6px !important; inset-inline-end: auto !important;
}
.tg-gallery .elementor-swiper-button-next {
  right: -6px !important; left: auto !important;
  inset-inline-end: -6px !important; inset-inline-start: auto !important;
}
.tg-gallery .elementor-swiper-button svg,
.tg-gallery .elementor-swiper-button i { display: none; }
.tg-gallery .elementor-swiper-button-prev::before { content: "\2190"; }
.tg-gallery .elementor-swiper-button-next::before { content: "\2192"; }
.tg-gallery .swiper-button-disabled { opacity: 1 !important; cursor: default; }
.tg-gallery-counter {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  padding: 5px 12px;
  border-radius: 20px;
  background: rgba(43, 38, 32, 0.7);
  color: #FDFCF9;
  font: 600 12px/30.6px 'Cormorant Garamond', Georgia, serif;
  letter-spacing: 0.03em;
  pointer-events: none;
}


/* Arrow links: any Elementor "Button" with the CSS class tg-arrow
   (Advanced tab > CSS Classes) shows as an uppercase text link with "→" */
.tg-arrow .elementor-button {
  display: block;
  width: fit-content !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  fill: currentColor;
}
.tg-arrow .elementor-button-text::after {
  content: "\2192";
  margin-left: 5px;
  transition: margin-left 0.2s ease;
}
.tg-arrow .elementor-button:hover .elementor-button-text::after { margin-left: 9px; }


/* Book covers on the Shop page: Elementor "Image" with CSS class tg-book-cover */
.tg-book-cover img {
  display: block;
  width: 150px;
  height: 225px;
  object-fit: cover;
  border-radius: 2px;
  box-shadow: 0 1px 2px rgba(43, 38, 32, 0.12), 0 12px 24px -10px rgba(43, 38, 32, 0.35);
}


/* Pill buttons (e.g. "Buy it now"): Elementor "Button" with CSS class tg-pill */
.tg-pill .elementor-button {
  min-width: 220px;
  min-height: 58px;
  justify-content: center;
  transition: background-color 0.15s, transform 0.15s;
}
.tg-pill .elementor-button:hover { transform: translateY(-1px); }
.tg-pill .elementor-button:active { transform: translateY(0); }


/* ==========================================================================
   Footer – exact copy of taosgoji.com (added Oct 2026)
   ========================================================================== */
.tg-footer {
  margin: 0;
  padding: 73px 0 65px;
  background: #FFFFFF;
  border: 0;
  color: #2B2620;
  text-align: center;
}
.tg-footer__cols {
  display: flex;
  justify-content: center;
  gap: 40px;
  max-width: none;
  margin: 0 auto;
  padding: 0;
}
.tg-footer__col { width: 357px; text-align: center; }
.tg-footer h2 {
  margin: 0 0 22px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 13px;
  font-weight: 400;
  font-style: normal;
  line-height: 18.2px;
  letter-spacing: 2.86px;
  text-transform: uppercase;
  color: #2B2620;
}
.tg-footer p {
  margin: 0 0 6px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 15px;
  font-weight: 300;
  line-height: 28.5px;
  letter-spacing: normal;
  color: #2B2620;
}
.tg-footer p:last-child { margin-bottom: 0; }
.tg-footer p strong { font-weight: 700; }
.tg-footer a { color: inherit; text-decoration: none; border: 0; box-shadow: none; }
.tg-footer__social { display: flex; justify-content: center; gap: 18px; }
.tg-footer__social a { display: block; width: 20px; height: 20px; line-height: 0; }
.tg-footer__social svg { display: block; width: 20px; height: 20px; color: #2B2620; }
@media (max-width: 767px) {
  .tg-footer { padding: 56px 20px 56px; }
  .tg-footer__cols { flex-direction: column; align-items: center; gap: 36px; }
  .tg-footer__col { width: 100%; }
}


/* ==========================================================================
   One look for every page (added Oct 2026)
   Page titles and body text match Farm Life on all pages, including pages
   made with the regular WordPress editor and the Rentals grid.
   ========================================================================== */
body:not(.elementor-page) .entry-content > :is(h1, h2, h3, h4, p, ul, ol, blockquote, .wp-block-buttons) {
  max-width: 952px;
  margin-left: auto;
  margin-right: auto;
  padding-right: 232px;
  box-sizing: border-box;
}
body:not(.elementor-page) .entry-content > h1:first-child {
  margin-top: 52px !important;
  margin-bottom: 32px !important;
  font-family: 'proxima-nova', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 24.64px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #6B6B6B;
  text-align: left !important;
}
body:not(.elementor-page) .entry-content p {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 16.5px;
  font-weight: 300;
  line-height: 28.875px;
  color: #5C5548;
  margin-top: 0;
  margin-bottom: 18px;
}
@media (max-width: 1024px) {
  body:not(.elementor-page) .entry-content > :is(h1, h2, h3, h4, p, ul, ol, blockquote, .wp-block-buttons) { padding-right: 0; }
}
@media (max-width: 767px) {
  body:not(.elementor-page) .entry-content > h1:first-child { margin-top: 40px !important; }
}

/* Rentals grid: same title position and body font as every other page */
.entry-content > .pr-wrap { padding-top: 52px; }
.pr-wrap h1.pr-page-title { line-height: 24.64px !important; }
.pr-wrap .pr-section-head p,
.pr-wrap p.pr-meta,
.pr-wrap p.pr-upsell-side__text {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 300 !important;
}
.pr-wrap .pr-section-head p {
  font-size: 16.5px !important;
  line-height: 28.875px !important;
  letter-spacing: normal !important;
  color: #5C5548 !important;
  margin-top: 32px !important;
}
@media (max-width: 767px) { .entry-content > .pr-wrap { padding-top: 40px; } }


/* Centered arrow links (Home feature cards): add tg-arrow--center next to tg-arrow */
.tg-arrow--center .elementor-button { margin-left: auto; margin-right: auto; }
.tg-flower svg { display: block; margin: 0 auto; }


/* No empty space between page content and the footer (all pages) */
.site-main { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.site-main .entry, .site-main .entry-content { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.entry-content > :last-child { margin-bottom: 0 !important; }
.entry-content > .pr-wrap { padding-bottom: 0 !important; }


/* Links inside text blocks styled like the old site (rust, no underline): CSS class tg-links */
.tg-links a { color: #B3281E; text-decoration: none; font-weight: inherit; border: 0; box-shadow: none; }
.tg-links a:hover { color: #741D16; }


/* Smaller photo strip (Events page): CSS classes "tg-gallery tg-gallery--sm" */
.tg-gallery--sm .swiper-slide { width: 260px !important; }
.tg-gallery--sm .swiper-slide-image { height: 340px; }
.tg-gallery--sm .elementor-swiper-button { top: 173px !important; }


/* Breathing room above the footer */
.tg-footer { position: relative; margin-top: 48px; }


/* Photos that always fill their box (Rentals cards): Elementor "Image" with CSS class tg-cover */
.tg-cover a { display: block !important; width: 100%; }
.tg-cover img { display: block !important; width: 100% !important; max-width: 100% !important; object-fit: cover; }


/* ==========================================================================
   Header + floating Book Now – exact copy of taosgoji.com (added Oct 2026)
   ========================================================================== */
.site-header {
  padding: 40px 50px 41px !important;
  min-height: 0 !important;
  align-items: center;
}
.site-header .site-branding img {
  display: block;
  height: 58px !important;
  width: auto !important;
  max-height: none !important;
}
.site-header .main-nav .menu {
  display: flex;
  align-items: center;
  gap: 25px !important;
  margin: 0;
  padding: 0;
}
.site-header .main-nav .menu > li { margin: 0 !important; padding: 0 !important; }
.site-header .main-nav .menu > li > a {
  font-family: 'Jost', 'Josefin Sans', 'Century Gothic', sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  letter-spacing: 3.3px !important;
  line-height: 30.6px !important;
  padding: 1.5px 0 !important;
  text-transform: uppercase;
  color: #7A7879 !important;
}
.site-header .main-nav .menu > li > a:hover,
.site-header .main-nav .menu > li.current-menu-item > a,
.site-header .main-nav .menu > li.current_page_item > a { color: #9A2B22 !important; }
.btn.book-now {
  line-height: 13.5px !important;
  right: 20px !important;
  bottom: 20px !important;
  padding: 12px 24px !important;
  border-radius: 24px !important;
  background: #B3281E !important;
  color: #FDFCF9 !important;
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: 1.08px !important;
  text-transform: uppercase;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important;
}
.btn.book-now:hover { background: #9A2B22 !important; }
@media (max-width: 1024px) {
  .site-header { padding: 24px 20px !important; }
  .site-header .site-branding img { height: 46px !important; }
}



/* ==========================================================================
   WooCommerce – store, gift card product, cart & checkout (Oct 2026)
   Soft borders, site fonts and the red Taos Goji button everywhere.
   ========================================================================== */

/* Product page layout */
body.single-product .entry-content h1 {
  max-width: 952px !important;
  margin: 52px auto 36px !important;
  padding: 0 !important;
  font-family: proxima-nova, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  text-align: left !important;
  color: #6B6B6B !important;
}
body.single-product div.product {
  max-width: 952px;
  margin: 0 auto 72px;
}
body.single-product div.product div.images { width: 46%; margin-bottom: 40px; }
body.single-product div.product div.summary { width: 48%; }
body.single-product div.product div.images img { border-radius: 4px; }
body.single-product .woocommerce-product-gallery__trigger {
  background: #FDFCF9 !important;
  box-shadow: 0 2px 8px rgba(43, 38, 32, .18);
}

/* Price + intro text */
body.single-product div.product p.price,
body.single-product div.product span.price {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 26px;
  font-weight: 500;
  color: #2B2620;
  margin: 0 0 14px;
}
body.single-product .woocommerce-product-details__short-description,
body.single-product .woocommerce-Tabs-panel p,
body.single-product .woocommerce-variation-description p {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 16.5px;
  line-height: 28.875px;
  font-weight: 300;
  color: #5C5548;
}
body.single-product .woocommerce-product-details__short-description { margin-bottom: 28px; }

/* Form: labels */
body.single-product table.variations,
body.single-product table.variations tr,
body.single-product table.variations th,
body.single-product table.variations td {
  display: block;
  width: 100%;
  border: 0 !important;
  padding: 0 !important;
  background: none !important;
}
body.single-product table.variations { margin: 0 0 6px !important; }
body.single-product table.variations label,
body.single-product .pwgc-label,
body.single-product form.cart label:not(.screen-reader-text) {
  display: block;
  margin: 0 0 8px;
  font-family: Jost, "Helvetica Neue", Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #6B6B6B;
}

/* Form: fields – no hard black boxes */
body.single-product form.cart select,
body.single-product form.cart input[type="text"],
body.single-product form.cart input[type="email"],
body.single-product form.cart input[type="number"],
body.single-product form.cart textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 11px 14px;
  border: 1px solid #E4DCCB;
  border-radius: 4px;
  background-color: #FDFCF9;
  box-shadow: none;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 17px;
  line-height: 1.4;
  color: #2B2620;
  transition: border-color .15s ease, box-shadow .15s ease;
}
body.single-product form.cart select {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 40px;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%239A2B22' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
body.single-product form.cart textarea { min-height: 110px; resize: vertical; }
body.single-product form.cart ::placeholder { color: #A39A8A; opacity: 1; }
body.single-product form.cart select:hover,
body.single-product form.cart input:hover,
body.single-product form.cart textarea:hover { border-color: #CFC3AB; }
body.single-product form.cart select:focus,
body.single-product form.cart input:focus,
body.single-product form.cart textarea:focus {
  outline: none;
  border-color: #B3281E;
  box-shadow: 0 0 0 3px rgba(179, 40, 30, .12);
}
body.single-product .reset_variations {
  display: inline-block;
  margin-top: 8px;
  font-family: Jost, "Helvetica Neue", Arial, sans-serif;
  font-size: 12px;
  letter-spacing: .08em;
  color: #9A2B22;
}
body.single-product .pwgc-field-container,
body.single-product #pwgc-purchase-container > div { margin-bottom: 18px; }
body.single-product .pwgc-subtitle,
body.single-product #pwgc-message-characters-remaining,
body.single-product form.cart small,
body.single-product form.cart .description {
  display: block;
  margin-top: 6px;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 14px;
  font-style: italic;
  color: #8A8170;
}

/* Quantity + Add to cart on one row */
body.single-product .woocommerce-variation-add-to-cart,
body.single-product form.cart:not(.variations_form) {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
  margin-top: 26px;
}
body.single-product form.cart .quantity { float: none !important; margin: 0 !important; }
body.single-product form.cart .quantity input.qty {
  width: 72px;
  height: 50px;
  padding: 0 6px;
  text-align: center;
}

/* Red button (replaces WooCommerce purple) – product, store, cart, checkout */
body.woocommerce-page .single_add_to_cart_button,
body.woocommerce-page a.button,
body.woocommerce-page button.button,
body.woocommerce-page input.button,
body.woocommerce-page a.button.alt,
body.woocommerce-page button.button.alt,
body.woocommerce-page #respond input#submit,
body.woocommerce-page .wc-block-components-button:not(.is-link),
body.woocommerce-page .wc-block-cart__submit-button,
body.woocommerce-page .wc-block-components-checkout-place-order-button,
body.woocommerce-page .wp-block-button__link.add_to_cart_button,
.woocommerce ul.products li.product .button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 34px !important;
  border: 0 !important;
  border-radius: 25px !important;
  background: #B3281E !important;
  color: #FDFCF9 !important;
  font-family: Jost, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
  box-shadow: 0 4px 10px rgba(122, 28, 21, .18);
  transition: background-color .15s ease, transform .15s ease, box-shadow .15s ease;
  cursor: pointer;
}
body.woocommerce-page .single_add_to_cart_button:hover,
body.woocommerce-page a.button:hover,
body.woocommerce-page button.button:hover,
body.woocommerce-page input.button:hover,
body.woocommerce-page .wc-block-components-button:not(.is-link):hover,
.woocommerce ul.products li.product .button:hover {
  background: #8E1F17 !important;
  color: #FDFCF9 !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(122, 28, 21, .24);
}
body.woocommerce-page .single_add_to_cart_button.disabled,
body.woocommerce-page .single_add_to_cart_button:disabled {
  opacity: .55 !important;
  transform: none;
  box-shadow: none;
}
body.single-product .single_add_to_cart_button { flex: 1 1 180px; }

/* Hide "SKU: N/A / Category: Uncategorized" */
body.single-product .product_meta { display: none; }

/* Description tabs – underline style instead of grey boxes */
body.single-product .woocommerce-tabs { clear: both; padding-top: 8px; }
body.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: 32px;
  margin: 0 0 28px !important;
  padding: 0 !important;
  border-bottom: 1px solid #E4DCCB;
}
body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.single-product .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
}
body.single-product .woocommerce-tabs ul.tabs li a {
  display: block;
  margin-bottom: -1px;
  padding: 0 0 12px !important;
  border-bottom: 2px solid transparent;
  font-family: Jost, "Helvetica Neue", Arial, sans-serif;
  font-size: 12px;
  font-weight: 500 !important;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #7A7879 !important;
}
body.single-product .woocommerce-tabs ul.tabs li.active a,
body.single-product .woocommerce-tabs ul.tabs li a:hover {
  color: #9A2B22 !important;
  border-bottom-color: #B3281E;
}
body.single-product .woocommerce-Tabs-panel > h2:first-child { display: none; }
body.single-product .woocommerce-Tabs-panel { max-width: 720px; }
body.single-product table.shop_attributes,
body.single-product table.shop_attributes th,
body.single-product table.shop_attributes td {
  border: 0 !important;
  border-bottom: 1px solid #EFE9DD !important;
  background: none !important;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 16.5px;
  font-style: normal;
  color: #5C5548;
  padding: 10px 0 !important;
}
body.single-product table.shop_attributes th {
  width: 180px;
  font-family: Jost, "Helvetica Neue", Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #6B6B6B;
}
body.single-product table.shop_attributes p { margin: 0; }

/* Notices ("added to your cart") */
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error {
  border: 0;
  border-left: 3px solid #B3281E;
  border-radius: 2px;
  background: #F6F2EA;
  color: #2B2620;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 17px;
}
body.woocommerce-page .woocommerce-message::before,
body.woocommerce-page .woocommerce-info::before { color: #B3281E; }
body.woocommerce-page .woocommerce-message .button { min-height: 40px; padding: 0 22px !important; float: right; }

/* WooCommerce form fixes: full-width fields, counter on one line, clear quantity digits */
body.single-product table.variations tbody,
body.single-product table.variations td { display: block; width: 100% !important; }
body.single-product .entry-content h1 a { color: inherit !important; text-decoration: none !important; pointer-events: none; }
body.single-product form.cart .quantity input.qty { font-family: Jost, "Helvetica Neue", Arial, sans-serif !important; -webkit-text-fill-color: #2B2620; }
body.single-product form.cart select,
body.single-product form.cart input[type="text"],
body.single-product form.cart input[type="email"],
body.single-product form.cart textarea { width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box !important; }
body.single-product form.cart #pwgc-message-characters-remaining { display: inline; margin: 0; font: inherit; }
body.single-product form.cart .quantity input.qty,
body.single-product div.product p.price,
body.single-product div.product span.price { font-variant-numeric: lining-nums; }
body.single-product form.cart .quantity input.qty { font-family: Jost, "Helvetica Neue", Arial, sans-serif; font-size: 15px; }

/* Store page (product grid) */
body.woocommerce-shop .woocommerce-result-count,
body.woocommerce-shop .woocommerce-ordering { display: none; }
.woocommerce ul.products li.product { text-align: left; }
.woocommerce ul.products li.product a img { border-radius: 4px; margin-bottom: 16px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: Jost, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14px !important; font-weight: 500; letter-spacing: .12em; line-height: 1.5;
  text-transform: uppercase; color: #2B2620; padding: 0 0 6px !important;
}
.woocommerce ul.products li.product .price {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: 19px !important; font-weight: 500;
  color: #5C5548 !important; font-variant-numeric: lining-nums;
}
.woocommerce ul.products li.product .button { white-space: nowrap; min-height: 44px; padding: 0 26px !important; font-size: 12px !important; margin-top: 10px; }

/* Phones / tablets */
@media (max-width: 768px) {
  body.single-product .entry-content h1 { margin: 32px 0 24px !important; font-size: 17px !important; }
  body.single-product div.product div.images,
  body.single-product div.product div.summary { float: none; width: 100%; }
  body.single-product div.product div.images { margin-bottom: 28px; }
  body.single-product .woocommerce-tabs ul.tabs { gap: 22px; }
  body.single-product table.shop_attributes th { width: 120px; }
}

/* Product page: no sideways scroll on phones */
body.single-product div.product,
body.single-product .woocommerce-product-gallery { overflow-x: clip; }

/* Home hero subtitle: soft glow + light shading behind the text so it reads on the photo */
.tg-hero-sub p { text-shadow: 0 1px 2px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.5) !important; }
.e-con.tg-hero::before {
  background-image: radial-gradient(ellipse 55% 38% at 50% 72%, rgba(20,16,10,.42), rgba(20,16,10,0) 70%), linear-gradient(rgba(20,16,10,.03), rgba(20,16,10,.34)) !important;
}


/* ==========================================================================
   Mirror taosgoji.com typography on the classic (non-Elementor) pages
   (cabin pages, Pets, Weddings, About, etc.) – Oct 2026
   ========================================================================== */
strong, b { font-weight: 700; }

body.page:not(.elementor-page):not(.woocommerce-page) .entry-content :is(p, li):not(.pr-wrap *) {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 17px;
  line-height: 30.6px;
  font-weight: 300;
  color: #222222;
}
body.page:not(.elementor-page):not(.woocommerce-page) .entry-content :is(h2, h3, h4):not(.pr-wrap *),
body.page:not(.elementor-page):not(.woocommerce-page) .entry-content h1:not(.pr-wrap *) {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 500 !important;
  font-size: 47.24px !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-align: left !important;
  color: #AB3030 !important;
}
body.page:not(.elementor-page):not(.woocommerce-page) .entry-content h1:not(.pr-wrap *) {
  font-size: 67.4px !important;
  line-height: 1.23 !important;
}
/* The page's own title keeps the shared title style used on every page */
body.page:not(.elementor-page):not(.woocommerce-page) .entry-content > h1:first-child,
body.page:not(.elementor-page):not(.woocommerce-page) .cabin-layout h1:first-of-type {
  font-family: proxima-nova, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #6B6B6B !important;
}
@media (max-width: 768px) {
  body.page:not(.elementor-page):not(.woocommerce-page) .entry-content :is(h2, h3, h4):not(.pr-wrap *) { font-size: 32px !important; }
  body.page:not(.elementor-page):not(.woocommerce-page) .entry-content h1:not(.pr-wrap *):not(:first-child):not(:first-of-type) { font-size: 40px !important; }
}


/* ==========================================================================
   Footer v2 – booking button, quick links, map link, cream band (Oct 2026)
   ========================================================================== */
.tg-footer { background: #FFFFFF; padding: 64px 24px 0; }
.tg-footer__cta {
  max-width: 1150px; margin: 0 auto 52px; padding-bottom: 44px;
  border-bottom: 1px solid #E4DCCB;
  display: flex; flex-direction: column; align-items: center; gap: 22px;
}
.tg-footer .tg-footer__lead {
  margin: 0; font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 32px; line-height: 1.2; font-weight: 500; color: #2B2620;
}
.tg-footer__buttons { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 30px; }
.tg-footer a.tg-footer__btn {
  display: inline-flex; align-items: center; min-height: 48px; padding: 0 32px;
  border-radius: 24px; background: #B3281E; color: #FDFCF9;
  font-family: Jost, 'Helvetica Neue', Arial, sans-serif; font-size: 13px; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; text-decoration: none;
  box-shadow: 0 4px 10px rgba(122, 28, 21, .18); transition: background-color .15s ease, transform .15s ease;
}
.tg-footer a.tg-footer__btn:hover { background: #8E1F17; color: #FDFCF9; transform: translateY(-1px); }
.tg-footer a.tg-footer__link {
  font-family: Jost, 'Helvetica Neue', Arial, sans-serif; font-size: 13px; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; color: #9A2B22; text-decoration: none;
}
.tg-footer a.tg-footer__link:hover { color: #741D16; }
.tg-footer__cols { max-width: 1150px; flex-wrap: wrap; gap: 40px 24px; justify-content: space-between; }
.tg-footer__col { width: auto; flex: 1 1 200px; }
.tg-footer__col:first-child p { margin-bottom: 0; }
.tg-footer .tg-footer__note { margin-top: 4px; font-style: italic; color: #8A8170; }
.tg-footer__bottom {
  max-width: 1150px; margin: 56px auto 0; padding: 22px 0 30px;
  border-top: 1px solid #E4DCCB;
  display: flex; justify-content: center; gap: 10px 28px; flex-wrap: wrap;
  font-family: Jost, 'Helvetica Neue', Arial, sans-serif; font-size: 12px; letter-spacing: .1em; color: #7A7879;
}
.tg-footer__bottom a { color: #7A7879; text-decoration: none; }
.tg-footer__bottom a:hover { color: #9A2B22; }
@media (max-width: 768px) {
  .tg-footer { padding: 48px 20px 0; }
  .tg-footer .tg-footer__lead { font-size: 27px; }
  .tg-footer__cols { flex-direction: column; align-items: center; gap: 36px; }
  .tg-footer__col { flex: none; width: 100%; }
  .tg-footer__bottom { margin-top: 40px; padding-bottom: 90px; }
}
