/*
Theme Name: Keys to the Cotswolds
Theme URI: https://keystothecotswolds.co.uk
Author: AA2 (Martin Dugan)
Description: Bespoke theme for Keys to the Cotswolds, Bibury holiday cottages. Reproduces the live static site exactly (Cormorant Garamond + DM Sans, the Cotswold palette). British English.
Version: 1.0.0
*/

    /* ==================== CUSTOM PROPERTIES ==================== */

    :root {

      --deep-forest: #2C3E2D;

      --warm-cream: #FAF7F2;

      --cotswold-stone: #B8956A;

      --aged-brass: #9A7B4F;

      --soft-charcoal: #4A4A48;

      --white: #FFFFFF;

      --overlay-gradient: linear-gradient(

        to bottom,

        rgba(0, 0, 0, 0.1) 0%,

        rgba(0, 0, 0, 0.25) 50%,

        rgba(0, 0, 0, 0.55) 100%

      );

    }



    /* ==================== RESET & BASE ==================== */

    *, *::before, *::after {

      margin: 0;

      padding: 0;

      box-sizing: border-box;

    }



    html {

      scroll-behavior: smooth;

      -webkit-text-size-adjust: 100%;

    }



    body {

      font-family: 'DM Sans', sans-serif;

      font-weight: 400;

      color: var(--soft-charcoal);

      background: var(--warm-cream);

      line-height: 1.6;

      -webkit-font-smoothing: antialiased;

      -moz-osx-font-smoothing: grayscale;

    }



    img {

      display: block;

      max-width: 100%;

      height: auto;

    }



    a {

      text-decoration: none;

      color: inherit;

    }



    /* ==================== TYPOGRAPHY ==================== */

    .heading-serif {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 600;

      color: var(--deep-forest);

      line-height: 1.25;

    }



    .heading-light {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 300;

      line-height: 1.25;

    }



    /* ==================== NAVIGATION ==================== */

    .nav {

      position: fixed;

      top: 0;

      left: 0;

      width: 100%;

      height: 64px;

      z-index: 1000;

      display: flex;

      align-items: center;

      justify-content: space-between;

      padding: 0 clamp(24px, 4vw, 80px);

      transition: background 0.3s ease, box-shadow 0.3s ease;

    }



    .nav--transparent {

      background: transparent;

    }



    .nav--solid {

      background: var(--warm-cream);

      box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);

    }



    .nav__logo {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 600;

      font-size: 1.15rem;

      letter-spacing: 0.04em;

      transition: color 0.3s ease;

    }



    .nav--transparent .nav__logo {

      color: var(--warm-cream);

    }



    .nav--solid .nav__logo {

      color: var(--deep-forest);

    }



    .nav__links {

      display: none;

      list-style: none;

      gap: 32px;

      align-items: center;

    }



    .nav__links a {

      font-family: 'DM Sans', sans-serif;

      font-weight: 500;

      font-size: 0.85rem;

      letter-spacing: 0.08em;

      text-transform: uppercase;

      transition: color 0.2s ease;

    }



    .nav--transparent .nav__links a {

      color: var(--warm-cream);

    }



    .nav--solid .nav__links a {

      color: var(--deep-forest);

    }



    .nav--solid .nav__links a:hover {

      color: var(--aged-brass);

    }



    .nav--transparent .nav__links a:hover {

      color: var(--cotswold-stone);

    }



    /* Hamburger */

    .nav__hamburger {

      display: flex;

      flex-direction: column;

      justify-content: center;

      gap: 5px;

      width: 28px;

      height: 28px;

      cursor: pointer;

      background: none;

      border: none;

      padding: 0;

      z-index: 1001;

    }



    .nav__hamburger span {

      display: block;

      width: 100%;

      height: 1.5px;

      transition: transform 0.3s ease, opacity 0.3s ease, background 0.3s ease;

    }



    .nav--transparent .nav__hamburger span {

      background: var(--warm-cream);

    }



    .nav--solid .nav__hamburger span {

      background: var(--deep-forest);

    }



    .nav__hamburger.active span:nth-child(1) {

      transform: translateY(6.5px) rotate(45deg);

      background: var(--warm-cream);

    }



    .nav__hamburger.active span:nth-child(2) {

      opacity: 0;

    }



    .nav__hamburger.active span:nth-child(3) {

      transform: translateY(-6.5px) rotate(-45deg);

      background: var(--warm-cream);

    }



    /* Mobile overlay menu */

    .nav__overlay {

      position: fixed;

      inset: 0;

      background: var(--deep-forest);

      z-index: 999;

      display: flex;

      flex-direction: column;

      align-items: center;

      justify-content: center;

      gap: 32px;

      opacity: 0;

      pointer-events: none;

      transition: opacity 0.3s ease;

    }



    .nav__overlay.active {

      opacity: 1;

      pointer-events: all;

    }



    .nav__overlay a {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 600;

      font-size: 1.8rem;

      color: var(--warm-cream);

      transition: color 0.2s ease;

    }



    .nav__overlay a:hover {

      color: var(--cotswold-stone);

    }



    /* ==================== HERO ==================== */

    .hero {

      position: relative;

      width: 100%;

      height: 100vh;

      display: flex;

      flex-direction: column;

      align-items: center;

      justify-content: center;

      overflow: hidden;

    }



    .hero__bg {

      position: absolute;

      inset: 0;

      background-image: url('images/hero/bibury-hero.jpg');

      background-size: cover;

      background-position: center;

      background-attachment: scroll;

      z-index: 0;

    }



    .hero__video {

      position: absolute;

      inset: 0;

      width: 100%;

      height: 100%;

      object-fit: cover;

      z-index: 0;

    }



    @media (max-width: 768px) {

      .hero__video {

        display: none;

      }

    }



    .hero__overlay {

      position: absolute;

      inset: 0;

      background: var(--overlay-gradient);

      z-index: 1;

    }



    .hero__content {

      position: relative;

      z-index: 2;

      text-align: center;

      padding: 0 24px;

    }



    .hero__title {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 300;

      font-size: clamp(2rem, 5vw, 3.5rem);

      color: var(--warm-cream);

      letter-spacing: 0.06em;

    }



    .hero__subtitle {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 300;

      font-size: clamp(1rem, 2.5vw, 1.3rem);

      color: var(--warm-cream);

      letter-spacing: 0.03em;

      margin-top: 16px;

    }



    .hero__scroll {

      position: absolute;

      bottom: 40px;

      left: 50%;

      transform: translateX(-50%);

      z-index: 2;

      width: 2px;

      height: 30px;

      background: var(--warm-cream);

      opacity: 0.7;

      animation: scrollPulse 2s ease-in-out infinite;

    }



    @keyframes scrollPulse {

      0%, 100% { transform: translateX(-50%) translateY(0); }

      50% { transform: translateX(-50%) translateY(10px); }

    }



    /* ==================== EDITORIAL INTRO ==================== */

    .intro {

      background: var(--warm-cream);

      padding: 80px 24px 60px;

      text-align: center;

    }



    .intro__inner {

      max-width: 680px;

      margin: 0 auto;

    }



    .intro__heading {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 600;

      font-size: clamp(1.8rem, 3.5vw, 2.6rem);

      color: var(--deep-forest);

      line-height: 1.25;

      margin-bottom: 32px;

    }



    .intro__body {

      font-size: 1.05rem;

      line-height: 1.75;

      color: var(--soft-charcoal);

    }



    .intro__line {

      width: 80px;

      height: 1px;

      background: var(--cotswold-stone);

      margin: 48px auto 0;

    }



    /* ==================== COTTAGE PANELS ==================== */

    .cottages {

      background: var(--warm-cream);

      padding: 0 0 60px;

    }



    .cottage-panel {

      margin-bottom: 60px;

    }



    .cottage-panel:last-child {

      margin-bottom: 0;

    }



    .cottage-panel__img-wrap {

      width: 100%;

      max-height: 50vh;

      overflow: hidden;

    }



    .cottage-panel__img {

      width: 100%;

      height: 50vh;

      object-fit: cover;

      object-position: center;

      transition: transform 0.6s ease;

    }



    .cottage-panel__img-wrap:hover .cottage-panel__img {

      transform: scale(1.02);

    }



    .cottage-panel__content {

      padding: 48px 24px;

    }



    .cottage-panel__name {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 600;

      font-size: clamp(1.6rem, 3vw, 2.2rem);

      color: var(--deep-forest);

    }



    .cottage-panel__desc {

      font-size: 1rem;

      color: var(--soft-charcoal);

      margin-top: 12px;

    }



    .cottage-panel__details {

      font-size: 0.85rem;

      color: var(--cotswold-stone);

      margin-top: 16px;

      letter-spacing: 0.03em;

    }



    .cottage-panel__reviews {

      display: flex;

      align-items: center;

      gap: 6px;

      margin-top: 8px;

      font-size: 0.85rem;

      color: var(--aged-brass);

    }



    .cottage-panel__reviews svg {

      flex-shrink: 0;

    }



    .cottage-panel__cta {

      display: inline-flex;

      align-items: center;

      gap: 8px;

      margin-top: 24px;

      font-family: 'DM Sans', sans-serif;

      font-weight: 500;

      font-size: 0.9rem;

      color: var(--deep-forest);

      letter-spacing: 0.05em;

      text-transform: uppercase;

      transition: color 0.2s ease;

    }



    .cottage-panel__cta svg {

      transition: transform 0.3s ease;

    }



    .cottage-panel__cta:hover {

      color: var(--aged-brass);

    }



    .cottage-panel__cta:hover svg {

      transform: translateX(8px);

    }



    /* ==================== DISCOVER BIBURY ==================== */

    .discover {

      background: var(--white);

      padding: 80px 24px;

    }



    .discover__inner {

      max-width: 1100px;

      margin: 0 auto;

    }



    .discover__img-wrap {

      width: 100%;

      max-height: 350px;

      overflow: hidden;

      margin-bottom: 40px;

    }



    .discover__img {

      width: 100%;

      height: 350px;

      object-fit: cover;

      object-position: center;

    }



    .discover__label {

      font-family: 'DM Sans', sans-serif;

      font-weight: 500;

      font-size: 0.75rem;

      letter-spacing: 0.15em;

      text-transform: uppercase;

      color: var(--aged-brass);

    }



    .discover__heading {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 600;

      font-size: clamp(1.8rem, 3vw, 2.4rem);

      color: var(--deep-forest);

      margin-top: 12px;

    }



    .discover__body {

      font-size: 1.05rem;

      line-height: 1.75;

      color: var(--soft-charcoal);

      margin-top: 20px;

    }



    .discover__cta {

      display: inline-flex;

      align-items: center;

      gap: 8px;

      margin-top: 32px;

      font-family: 'DM Sans', sans-serif;

      font-weight: 500;

      font-size: 0.9rem;

      color: var(--deep-forest);

      letter-spacing: 0.05em;

      text-transform: uppercase;

      transition: color 0.2s ease;

    }



    .discover__cta svg {

      transition: transform 0.3s ease;

    }



    .discover__cta:hover {

      color: var(--aged-brass);

    }



    .discover__cta:hover svg {

      transform: translateX(8px);

    }



    /* ==================== REVIEWS ==================== */

    .reviews {

      background: var(--deep-forest);

      padding: 80px 24px;

    }



    .reviews__inner {

      max-width: 1100px;

      margin: 0 auto;

      text-align: center;

    }



    .reviews__heading {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 300;

      font-size: clamp(1.6rem, 3vw, 2.2rem);

      color: var(--warm-cream);

    }



    .reviews__subheading {

      font-size: 0.9rem;

      color: var(--cotswold-stone);

      letter-spacing: 0.03em;

      margin-top: 12px;

    }



    .reviews__grid {

      display: flex;

      gap: 24px;

      margin-top: 60px;

      overflow-x: auto;

      scroll-snap-type: x mandatory;

      -webkit-overflow-scrolling: touch;

      scrollbar-width: none;

      padding-bottom: 8px;

    }



    .reviews__grid::-webkit-scrollbar {

      display: none;

    }



    .review-card {

      min-width: 300px;

      flex: 1;

      text-align: left;

      scroll-snap-align: start;

    }



    .review-card__stars {

      display: flex;

      gap: 3px;

      margin-bottom: 16px;

    }



    .review-card__quote {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 400;

      font-style: italic;

      font-size: 1.1rem;

      line-height: 1.6;

      color: var(--warm-cream);

    }



    .review-card__attribution {

      font-size: 0.8rem;

      color: var(--cotswold-stone);

      margin-top: 16px;

    }



    /* ==================== BOOKING ==================== */

    .booking {

      background: var(--warm-cream);

      padding: 70px 24px;

      text-align: center;

    }



    .booking__inner {

      max-width: 800px;

      margin: 0 auto;

    }



    .booking__heading {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 600;

      font-size: clamp(1.6rem, 3vw, 2.2rem);

      color: var(--deep-forest);

    }



    .booking__subtext {

      font-size: 1rem;

      color: var(--soft-charcoal);

      margin-top: 12px;

    }



    .booking__widget {

      border: 2px dashed var(--cotswold-stone);

      border-radius: 8px;

      padding: 60px 40px;

      margin-top: 40px;

      text-align: center;

    }



    .booking__widget p {

      font-size: 0.9rem;

      color: var(--cotswold-stone);

      font-style: italic;

    }



    /* ==================== FOOTER ==================== */

    .footer {

      background: var(--soft-charcoal);

      padding: 60px 24px;

    }



    .footer__inner {

      max-width: 1100px;

      margin: 0 auto;

      display: flex;

      flex-direction: column;

      gap: 40px;

    }



    .footer__col {

      display: flex;

      flex-direction: column;

    }



    .footer__logo {

      font-family: 'Cormorant Garamond', serif;

      font-weight: 600;

      font-size: 1.15rem;

      color: var(--warm-cream);

      letter-spacing: 0.04em;

    }



    .footer__tagline {

      font-size: 0.85rem;

      color: var(--cotswold-stone);

      margin-top: 16px;

    }



    .footer__links {

      display: flex;

      flex-direction: column;

      list-style: none;

    }



    .footer__links a {

      font-size: 0.85rem;

      color: var(--cotswold-stone);

      line-height: 2.2;

      transition: color 0.2s ease;

    }



    .footer__links a:hover {

      color: var(--warm-cream);

    }



    .footer__contact {

      font-size: 0.85rem;

      color: var(--cotswold-stone);

    }



    .footer__contact p + p {

      margin-top: 8px;

    }



    .footer__social {

      margin-top: 16px;

    }



    .footer__social a {

      color: var(--cotswold-stone);

      transition: color 0.2s ease;

    }



    .footer__social a:hover {

      color: var(--warm-cream);

    }



    .footer__divider {

      width: 100%;

      height: 1px;

      background: rgba(255, 255, 255, 0.1);

    }



    .footer__copyright {

      font-size: 0.75rem;

      color: var(--cotswold-stone);

      opacity: 0.7;

      margin-top: 24px;

    }



    /* ==================== ANIMATIONS ==================== */

    .fade-in {

      opacity: 0;

      transform: translateY(30px);

      transition: opacity 0.8s ease-out, transform 0.8s ease-out;

    }



    .fade-in.visible {

      opacity: 1;

      transform: translateY(0);

    }



    /* ==================== TABLET (768px+) ==================== */

    @media (min-width: 768px) {

      .nav {

        height: 72px;

      }



      .intro {

        padding: 120px 40px 100px;

      }



      .cottage-panel__content {

        padding: 48px clamp(40px, 6vw, 120px);

      }



      .cottage-panel__img {

        height: 55vh;

      }



      .cottages {

        padding: 0 0 80px;

      }



      .cottage-panel {

        margin-bottom: 80px;

      }



      .reviews {

        padding: 100px 40px;

      }



      .booking {

        padding: 80px 40px;

      }



      .footer {

        padding: 70px 40px;

      }

    }



    /* ==================== DESKTOP (1024px+) ==================== */

    @media (min-width: 1024px) {

      .nav__links {

        display: flex;

      }



      .nav__hamburger {

        display: none;

      }





      .intro {

        padding: 140px 40px 120px;

      }



      .cottage-panel__img-wrap {

        max-height: 65vh;

      }



      .cottage-panel__img {

        height: 65vh;

      }



      .cottage-panel__content {

        padding: 48px clamp(24px, 6vw, 120px);

      }



      .cottages {

        padding: 0 0 100px;

      }



      .cottage-panel {

        margin-bottom: 100px;

      }



      /* Discover Bibury: two-column */

      .discover {

        padding: 120px 40px;

      }



      .discover__inner {

        display: flex;

        align-items: stretch;

        gap: 0;

      }



      .discover__img-wrap {

        width: 55%;

        flex-shrink: 0;

        max-height: none;

        min-height: 500px;

        margin-bottom: 0;

      }



      .discover__img {

        height: 100%;

        min-height: 500px;

      }



      .discover__text {

        width: 45%;

        padding-left: 80px;

        display: flex;

        flex-direction: column;

        justify-content: center;

      }



      /* Reviews */

      .reviews {

        padding: 120px 40px;

      }



      .reviews__grid {

        overflow-x: visible;

        scroll-snap-type: none;

      }



      .review-card {

        min-width: 0;

      }



      /* Booking */

      .booking {

        padding: 100px 40px;

      }



      /* Footer: three-column */

      .footer {

        padding: 80px 40px;

      }



      .footer__inner {

        flex-direction: row;

        justify-content: space-between;

        gap: 60px;

      }



      .footer__col {

        flex: 1;

      }

    }



    /* ==================== LODGIFY OVERRIDES ==================== */

    :root {

      --ldg-bnb-color-primary: #2C4A3E;

      --ldg-bnb-color-primary-lighter: #4A7A6A;

      --ldg-bnb-color-primary-darker: #1A2E26;

      --ldg-bnb-color-primary-contrast: #FAF7F2;

      --ldg-component-calendar-cell-selection-bg-color: #2C4A3E;

      --ldg-component-calendar-cell-selection-color: #FAF7F2;

      --ldg-component-calendar-cell-selected-bg-color: #4A7A6A;

      --ldg-component-calendar-cell-selected-color: #FAF7F2;

      --ldg-bnb-font-family: 'DM Sans', sans-serif;

      --ldg-bnb-border-radius: 4px;

      --ldg-bnb-box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.06);



      /* Lodgify search bar overrides */

      --ldg-psb-color-primary: #2C4A3E;

      --ldg-psb-color-primary-lighter: #4A7A6A;

      --ldg-psb-color-primary-darker: #1A2E26;

      --ldg-psb-color-primary-contrast: #FAF7F2;

      --ldg-semantic-color-primary: #2C4A3E;

      --ldg-semantic-color-primary-lighter: #4A7A6A;

      --ldg-semantic-color-primary-darker: #1A2E26;

      --ldg-semantic-color-primary-contrast: #FAF7F2;

    }



    /* ==================== MAP SECTION ==================== */

    .map-section {

      padding: 60px 24px 80px;

      background: #FAF7F2;

      text-align: center;

    }

    .map-section__heading {

      font-family: 'Cormorant Garamond', Georgia, serif;

      font-weight: 400;

      font-size: clamp(1.6rem, 3vw, 2.2rem);

      color: #2C4A3E;

      margin-bottom: 8px;

    }

    .map-section__subheading {

      font-family: 'DM Sans', sans-serif;

      font-size: 1rem;

      color: #3A3A3A;

      opacity: 0.7;

      margin-bottom: 32px;

    }

    #bibury-map {

      max-width: 1200px;

      margin: 0 auto;

      border: 1px solid rgba(212,197,169,0.3);

      box-shadow: 0 4px 24px rgba(0,0,0,0.06);

    }

    .cottage-marker {

      background: none !important;

      border: none !important;

    }



    /* ==================== WIDE (1440px+) ==================== */

    @media (min-width: 1440px) {

      .cottage-panel__content {

        max-width: 1200px;

        margin-left: auto;

        margin-right: auto;

        padding: 48px 120px;

      }

    }

  

    /* ==================== DROPDOWN NAV ==================== */

    .nav__dropdown {

      position: relative;

    }

    .nav__dropdown-trigger {

      display: flex;

      align-items: center;

      gap: 6px;

      cursor: default;

    }

    .nav__chevron {

      display: inline-block;

      font-size: 1.1rem;

      line-height: 1;

      transition: transform 0.2s ease;

    }

    .nav__dropdown:hover .nav__chevron {

      transform: rotate(90deg);

    }

    .nav__dropdown-panel {

      position: absolute;

      top: 100%;

      left: 0;

      min-width: 220px;

      background: #FAF7F2;

      box-shadow: 0 12px 32px rgba(0,0,0,0.08);

      border-radius: 0 0 8px 8px;

      padding: 16px 0;

      opacity: 0;

      visibility: hidden;

      transform: translateY(-8px);

      transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;

      z-index: 1001;

    }

    .nav__dropdown:hover .nav__dropdown-panel {

      opacity: 1;

      visibility: visible;

      transform: translateY(0);

    }

    .nav__dropdown-panel a {

      display: block;

      padding: 10px 24px;

      font-family: 'DM Sans', sans-serif;

      font-size: 0.85rem;

      text-decoration: none;

      transition: color 0.15s ease, background-color 0.15s ease;

    }

    /* Override .nav--transparent/.nav--solid link colours, uppercase, tracking */

    .nav--transparent .nav__links .nav__dropdown-panel a,

    .nav--solid .nav__links .nav__dropdown-panel a {

      color: #3A3A3A;

      text-transform: none;

      font-weight: 400;

      letter-spacing: 0.03em;

    }

    .nav--transparent .nav__links .nav__dropdown-panel a:hover,

    .nav--solid .nav__links .nav__dropdown-panel a:hover {

      color: #2C4A3E;

      background: rgba(44,74,62,0.04);

    }

  
    .avail { background: var(--warm-cream); padding: clamp(56px,9vw,110px) clamp(20px,5vw,80px); }

    .avail__inner { max-width: 1140px; margin: 0 auto; text-align: center; }

    .avail__heading { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:clamp(2rem,4.5vw,3rem); margin-bottom:12px; line-height:1.15; }

    .avail__subtext { color:var(--soft-charcoal); font-size:1.05rem; max-width:620px; margin:0 auto clamp(32px,5vw,52px); }

    .avail__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }

    .avail__card { display:flex; flex-direction:column; background:#fff; border-radius:4px; overflow:hidden; box-shadow:0 1px 0 rgba(0,0,0,.06); transition:transform .4s ease, box-shadow .4s ease; text-align:left; }

    .avail__card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(44,62,45,.16); }

    .avail__img { aspect-ratio:4/3; background-size:cover; background-position:center; }

    .avail__body { padding:20px 22px 24px; display:flex; flex-direction:column; gap:14px; }

    .avail__name { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:1.5rem; }

    .avail__btn { display:inline-block; text-align:center; background:var(--deep-forest); color:var(--warm-cream); font-family:'DM Sans',sans-serif; font-weight:500; letter-spacing:.04em; font-size:.85rem; text-transform:uppercase; padding:13px 18px; border-radius:3px; transition:background .25s ease; }

    .avail__card:hover .avail__btn { background:var(--aged-brass); }

    @media (max-width:780px){ .avail__grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; } }

  

/* ============================================================
   THEME ADDITIONS (WordPress migration: journal + generic pages)
   ============================================================ */

/* ---- Latest from the Journal (homepage) ---- */
.latest { background: var(--white); padding: clamp(56px,9vw,110px) clamp(20px,5vw,80px); }
.latest__inner { max-width: 1140px; margin: 0 auto; text-align: center; }
.latest__label { font-family:'DM Sans',sans-serif; font-weight:500; font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; color:var(--aged-brass); }
.latest__heading { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:clamp(1.8rem,4vw,2.6rem); margin-top:10px; }
.latest__subtext { color:var(--soft-charcoal); font-size:1.05rem; max-width:600px; margin:14px auto clamp(32px,5vw,52px); }
.latest__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; text-align:left; }
.latest__card { display:flex; flex-direction:column; background:#fff; border-radius:4px; overflow:hidden; box-shadow:0 1px 0 rgba(0,0,0,.06); transition:transform .4s ease, box-shadow .4s ease; }
.latest__card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(44,62,45,.16); }
.latest__img { aspect-ratio:16/10; background-size:cover; background-position:center; }
.latest__body { padding:20px 22px 26px; display:flex; flex-direction:column; gap:10px; }
.latest__meta { font-family:'DM Sans',sans-serif; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; color:var(--cotswold-stone); }
.latest__title { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:1.4rem; line-height:1.2; }
.latest__excerpt { font-size:.95rem; color:var(--soft-charcoal); line-height:1.6; }
.latest__cta { margin-top:4px; font-family:'DM Sans',sans-serif; font-weight:500; font-size:.82rem; letter-spacing:.04em; text-transform:uppercase; color:var(--aged-brass); }
.latest__all { display:inline-block; margin-top:clamp(32px,5vw,48px); background:var(--deep-forest); color:var(--warm-cream); font-family:'DM Sans',sans-serif; font-weight:500; letter-spacing:.05em; font-size:.85rem; text-transform:uppercase; padding:14px 30px; border-radius:3px; transition:background .25s ease; }
.latest__all:hover { background:var(--aged-brass); }
@media (max-width:780px){ .latest__grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; } }

/* ---- Generic page (page.php / index.php) ---- */
.page-main { padding-top: 64px; }
.page-hero { background: var(--deep-forest); padding: clamp(64px,11vw,130px) clamp(20px,5vw,80px) clamp(40px,7vw,80px); text-align:center; }
.page-hero__inner { max-width: 820px; margin: 0 auto; }
.page-hero__label { font-family:'DM Sans',sans-serif; font-weight:500; font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; color:var(--cotswold-stone); }
.page-hero__title { font-family:'Cormorant Garamond',serif; font-weight:300; color:var(--warm-cream); font-size:clamp(2rem,5vw,3.2rem); letter-spacing:.04em; margin-top:14px; line-height:1.15; }
.prose { max-width: 760px; margin: 0 auto; padding: clamp(48px,8vw,88px) clamp(20px,5vw,40px); color:var(--soft-charcoal); font-size:1.08rem; line-height:1.8; }
.prose h2 { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.25; margin:2em 0 .6em; }
.prose h3 { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:clamp(1.3rem,2.4vw,1.6rem); margin:1.6em 0 .5em; }
.prose p { margin-bottom: 1.4em; }
.prose ul, .prose ol { margin:0 0 1.4em 1.3em; }
.prose li { margin-bottom:.5em; }
.prose a { color: var(--aged-brass); text-decoration: underline; text-underline-offset: 3px; }
.prose a:hover { color: var(--deep-forest); }
.prose img { border-radius:4px; margin:1.6em 0; }
.prose blockquote { border-left:3px solid var(--cotswold-stone); padding-left:24px; margin:1.6em 0; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.3rem; color:var(--deep-forest); }
.prose__meta { color:var(--cotswold-stone); font-size:.85rem; }

/* ---- Journal single post ---- */
.journal-single { padding-top: 64px; }
.journal-single__hero { background: var(--deep-forest); padding: clamp(56px,10vw,120px) clamp(20px,5vw,80px) clamp(36px,6vw,64px); }
.journal-single__hero-inner { max-width: 820px; margin: 0 auto; text-align:center; }
.journal-single__crumbs { font-family:'DM Sans',sans-serif; font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; color:var(--cotswold-stone); margin-bottom:20px; }
.journal-single__crumbs a { color:var(--cotswold-stone); }
.journal-single__crumbs a:hover { color:var(--warm-cream); }
.journal-single__title { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--warm-cream); font-size:clamp(2rem,4.6vw,3rem); line-height:1.15; }
.journal-single__meta { color:var(--cotswold-stone); font-size:.9rem; margin-top:18px; }
.journal-single__feature { max-width: 1000px; margin: -40px auto 0; padding: 0 clamp(20px,5vw,40px); }
.journal-single__feature img { width:100%; height:auto; max-height:560px; object-fit:cover; border-radius:4px; box-shadow:0 16px 40px rgba(0,0,0,.16); display:block; }
.journal-single__body { padding-top: clamp(40px,6vw,64px); }
.journal-single__foot { max-width:760px; margin:0 auto; padding:0 clamp(20px,5vw,40px) clamp(56px,9vw,96px); }
.journal-single__back { font-family:'DM Sans',sans-serif; font-weight:500; font-size:.85rem; letter-spacing:.04em; text-transform:uppercase; color:var(--aged-brass); }
.journal-single__back:hover { color:var(--deep-forest); }

/* event cards reused by What's On / Things To Do posts */
.event-card { border:1px solid rgba(184,149,106,.3); border-radius:4px; padding:20px 24px; margin:1.2em 0; background:#fff; }
.event-card__title { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:1.3rem; margin-bottom:6px; }
.event-card__meta { font-size:.85rem; color:var(--cotswold-stone); margin-bottom:10px; }

/* ---- Cottage collection grid (homepage) ---- */
.collection { background: var(--warm-cream); padding: clamp(56px,9vw,110px) clamp(20px,5vw,80px); }
.collection__inner { max-width: 1140px; margin: 0 auto; text-align: center; }
.collection__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; text-align:left; }
.collection-card { display:flex; flex-direction:column; background:#fff; border-radius:4px; overflow:hidden; box-shadow:0 1px 0 rgba(0,0,0,.06); transition:transform .4s ease, box-shadow .4s ease; }
.collection-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(44,62,45,.16); }
.collection-card__img-link { display:block; }
.collection-card__img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.collection-card__body { padding:22px 24px 26px; display:flex; flex-direction:column; gap:10px; flex:1; text-align:left; }
.collection-card__name { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:1.6rem; line-height:1.15; }
.collection-card__desc { font-size:.95rem; color:var(--soft-charcoal); line-height:1.6; }
.collection-card__details { font-family:'DM Sans',sans-serif; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--cotswold-stone); }
.collection-card__reviews { display:flex; align-items:center; gap:6px; font-size:.85rem; color:var(--soft-charcoal); }
.collection-card__cta { margin-top:auto; padding-top:8px; display:inline-flex; align-items:center; gap:8px; font-family:'DM Sans',sans-serif; font-weight:500; font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; color:var(--deep-forest); transition:color .2s ease; }
.collection-card__cta:hover { color:var(--aged-brass); }
.collection-card__cta svg { transition:transform .3s ease; }
.collection-card__cta:hover svg { transform:translateX(6px); }
.collection__which { display:inline-flex; align-items:center; gap:8px; margin-top:clamp(32px,5vw,48px); font-family:'DM Sans',sans-serif; font-weight:500; font-size:.85rem; letter-spacing:.05em; text-transform:uppercase; color:var(--deep-forest); transition:color .2s ease; }
.collection__which:hover { color:var(--aged-brass); }
.collection__which svg { transition:transform .3s ease; }
.collection__which:hover svg { transform:translateX(6px); }
@media (max-width:1023px){ .collection__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:780px){ .collection__grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; } }

/* ---- Owners band (quiet, above the footer) ---- */
.owners { background: var(--warm-cream); padding: 0 clamp(20px,5vw,80px) clamp(56px,9vw,100px); }
.owners__inner { max-width:640px; margin:0 auto; text-align:center; border-top:1px solid rgba(184,150,90,.35); padding-top:clamp(40px,6vw,64px); }
.owners__heading { font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--deep-forest); font-size:clamp(1.5rem,3vw,2rem); margin-bottom:12px; }
.owners__body { color:var(--soft-charcoal); font-size:1rem; line-height:1.7; margin-bottom:24px; }
.owners__cta { display:inline-block; border:1px solid var(--deep-forest); color:var(--deep-forest); font-family:'DM Sans',sans-serif; font-weight:500; letter-spacing:.05em; font-size:.82rem; text-transform:uppercase; padding:12px 26px; border-radius:3px; transition:background .25s ease, color .25s ease; }
.owners__cta:hover { background:var(--deep-forest); color:var(--warm-cream); }

/* ---- Quieter secondary nav link (owner funnel) ---- */
.nav__links a.nav__secondary { font-size:.72rem; opacity:.72; }
.nav__links a.nav__secondary:hover { opacity:1; }

/* ---- List Your Cottage form ---- */
.lyc-form { background: var(--warm-cream); padding: 0 24px 80px; }
.lyc-form__inner { max-width: 640px; margin: 0 auto; }
.lyc-form label { display:block; font-family:'DM Sans',sans-serif; font-weight:500; font-size:.9rem; color:var(--deep-forest); margin:22px 0 6px; }
.lyc-form label:first-child { margin-top:0; }
.lyc-form .lyc-help { font-size:.8rem; color:var(--cotswold-stone); margin:2px 0 6px; }
.lyc-form input[type="text"], .lyc-form input[type="email"], .lyc-form input[type="tel"], .lyc-form textarea {
  width:100%; padding:12px 14px; font-family:'DM Sans',sans-serif; font-size:1rem; color:var(--soft-charcoal);
  background:#fff; border:1px solid rgba(184,150,90,.4); border-radius:3px; transition:border-color .2s ease;
}
.lyc-form input:focus, .lyc-form textarea:focus { outline:none; border-color:var(--deep-forest); }
.lyc-form textarea { min-height:120px; resize:vertical; }
.lyc-form fieldset { border:none; margin:22px 0 0; padding:0; }
.lyc-form fieldset legend { font-family:'DM Sans',sans-serif; font-weight:500; font-size:.9rem; color:var(--deep-forest); margin-bottom:8px; }
.lyc-form .lyc-radio, .lyc-form .lyc-check { display:flex; align-items:flex-start; gap:10px; margin:8px 0; font-size:.95rem; color:var(--soft-charcoal); }
.lyc-form .lyc-radio input, .lyc-form .lyc-check input { margin-top:3px; accent-color:var(--deep-forest); }
.lyc-form .lyc-radio label, .lyc-form .lyc-check label { margin:0; font-weight:400; color:var(--soft-charcoal); }
.lyc-form__submit { display:inline-block; margin-top:32px; background:var(--deep-forest); color:var(--warm-cream); font-family:'DM Sans',sans-serif; font-weight:500; letter-spacing:.05em; font-size:.85rem; text-transform:uppercase; padding:14px 32px; border:none; border-radius:3px; cursor:pointer; transition:background .25s ease; }
.lyc-form__submit:hover { background:var(--aged-brass); }
.lyc-form__submit:disabled { opacity:.6; cursor:default; }
.lyc-form__msg { display:none; margin-top:24px; padding:16px 18px; border-radius:3px; font-size:.95rem; line-height:1.6; }
.lyc-form__msg--ok { background:rgba(44,74,62,.08); color:var(--deep-forest); }
.lyc-form__msg--err { background:rgba(150,60,40,.08); color:#7a3a28; }
.lyc-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
