@charset "UTF-8";

/* ========================================
   OLD OAK COTTAGES - Modern Redesign
   A luxury countryside retreat aesthetic
   ======================================== */

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300;1,9..40,400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');

/* ========================================
   CSS VARIABLES
   ======================================== */
:root {
    /* Colors - Refined Nature Palette */
    --forest-deep       : #1a2e1f;
    --forest-mid        : #2d4a36;
    --forest-light      : #3d6349;
    --sage              : #8fa98f;
    --sage-light        : #b8ccb8;
    --cream             : #faf8f5;
    --cream-dark        : #f0ebe3;
    --gold              : #c9a962;
    --gold-light        : #dbc68a;
    --gold-dark         : #9e8344;
    --charcoal          : #2c2c2c;
    --charcoal-light    : #4a4a4a;
    --white             : #ffffff;
    --black             : #0a0a0a;

    /* Typography */
    --font-display      : 'Playfair Display', Georgia, serif;
    --font-body         : 'DM Sans', -apple-system, sans-serif;
    --font-accent       : 'Cormorant Garamond', Georgia, serif;

    /* Spacing */
    --space-xs          : 0.5rem;
    --space-sm          : 1rem;
    --space-md          : 1.5rem;
    --space-lg          : 2.5rem;
    --space-xl          : 4rem;
    --space-2xl         : 6rem;
    --space-3xl         : 10rem;

    /* Transitions */
    --transition-fast   : 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-smooth : 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow   : 0.6s cubic-bezier(0.4, 0, 0.2, 1);

    /* Shadows */
    --shadow-soft       : 0 4px 20px rgba(0, 0, 0, 0.08);
    --shadow-medium     : 0 8px 40px rgba(0, 0, 0, 0.12);
    --shadow-heavy      : 0 20px 60px rgba(0, 0, 0, 0.2);

    /* Border Radius */
    --radius-sm         : 4px;
    --radius-md         : 8px;
    --radius-lg         : 16px;
    --radius-xl         : 24px;

    /* Container */
    --container-max     : 1400px;
    --container-narrow  : 900px;
}

/* ========================================
   RESET & BASE
   ======================================== */
*, *::before, *::after {
    box-sizing : border-box;
    margin     : 0;
    padding    : 0;
}

html {
    scroll-behavior : smooth;
    font-size       : 16px;
}

body {
    font-family             : var(--font-body);
    font-size               : 1rem;
    line-height             : 1.7;
    color                   : var(--charcoal);
    background-color        : var(--cream);
    -webkit-font-smoothing  : antialiased;
    -moz-osx-font-smoothing : grayscale;
    overflow-x              : hidden;
}

img {
    max-width : 100%;
    height    : auto;
    display   : block;
}

a {
    color           : inherit;
    text-decoration : none;
    transition      : color var(--transition-fast);
}

ul, ol {
    list-style : none;
}

button {
    font-family : inherit;
    cursor      : pointer;
    border      : none;
    background  : none;
}

/* ========================================
   TYPOGRAPHY
   ======================================== */
h1, h2, h3, h4, h5, h6 {
    font-family : var(--font-display);
    font-weight : 500;
    line-height : 1.2;
    color       : var(--forest-deep);
}

h1 {
    font-size      : clamp(2.5rem, 6vw, 4.5rem);
    letter-spacing : -0.02em;
}

h2 {
    font-size      : clamp(2rem, 4vw, 3rem);
    letter-spacing : -0.01em;
}

h3 {
    font-size : clamp(1.5rem, 3vw, 2rem);
}

h4 {
    font-size : clamp(1.25rem, 2vw, 1.5rem);
}

p {
    margin-bottom : 1.5em;
}

p:last-child {
    margin-bottom : 0;
}

.accent-text {
    font-family : var(--font-accent);
    font-style  : italic;
    font-size   : 1.25em;
    color       : var(--forest-mid);
}

/* ========================================
   UTILITY CLASSES
   ======================================== */
.container {
    width     : 100%;
    max-width : var(--container-max);
    margin    : 0 auto;
    padding   : 0 var(--space-md);
}

.container--narrow {
    max-width : var(--container-narrow);
}

.hidden {
    display : none !important;
}

.sr-only {
    position : absolute;
    width    : 1px;
    height   : 1px;
    padding  : 0;
    margin   : -1px;
    overflow : hidden;
    clip     : rect(0, 0, 0, 0);
    border   : 0;
}

/* ========================================
   HEADER & NAVIGATION
   ======================================== */
.header {
    position   : fixed;
    top        : 0;
    left       : 0;
    right      : 0;
    z-index    : 1000;
    transition : all var(--transition-smooth);
}

.header__inner {
    display         : flex;
    justify-content : space-between;
    align-items     : center;
    padding         : var(--space-md) var(--space-lg);
    max-width       : var(--container-max);
    margin          : 0 auto;
}

.header--transparent {
    background : transparent;
}

.header--solid {
    background      : rgba(250, 248, 245, 0.95);
    backdrop-filter : blur(20px);
    box-shadow      : var(--shadow-soft);
}

.header--solid .logo__text,
.header--solid .nav__link,
.header--solid .header__phone {
    color : var(--forest-deep);
}

.logo {
    display     : flex;
    align-items : center;
    gap         : var(--space-sm);
    z-index     : 1001;
}

.logo__image {
    height     : 50px;
    width      : auto;
    transition : transform var(--transition-smooth);
}

.logo:hover .logo__image {
    transform : scale(1.05);
}

.logo__text {
    font-family    : var(--font-display);
    font-size      : 1.5rem;
    font-weight    : 600;
    color          : var(--white);
    letter-spacing : 0.05em;
    text-transform : uppercase;
    transition     : color var(--transition-fast);
}

.logo__text span {
    display        : block;
    font-size      : 0.65rem;
    font-weight    : 400;
    letter-spacing : 0.2em;
    opacity        : 0.8;
    margin-top     : 2px;
}

/* Navigation */
.nav {
    display     : flex;
    align-items : center;
    gap         : var(--space-lg);
}

.nav__list {
    display : flex;
    gap     : var(--space-md);
}

.nav__link {
    font-size      : 0.875rem;
    font-weight    : 500;
    color          : var(--white);
    letter-spacing : 0.05em;
    text-transform : uppercase;
    padding        : var(--space-xs) 0;
    position       : relative;
    transition     : color var(--transition-fast);
}

.nav__link::after {
    content    : '';
    position   : absolute;
    bottom     : 0;
    left       : 0;
    width      : 0;
    height     : 1px;
    background : var(--gold);
    transition : width var(--transition-smooth);
}

.nav__link:hover::after {
    width : 100%;
}

.nav__link:hover {
    color : var(--gold-light);
}

.header__phones {
    display        : flex;
    flex-direction : column;
    align-items    : flex-end;
    gap            : 2px;
}

.header__phones .header__phone {
    font-size : 1rem;
}

.header__phone {
    font-family    : var(--font-accent);
    font-size      : 1.125rem;
    color          : var(--white);
    letter-spacing : 0.02em;
    transition     : color var(--transition-fast);
}

.header__phone:hover {
    color : var(--gold);
}

/* Mobile Menu Button */
.menu-toggle {
    display        : none;
    flex-direction : column;
    gap            : 6px;
    padding        : var(--space-xs);
    z-index        : 1002;
    position       : relative;
}

.menu-toggle__bar {
    width      : 28px;
    height     : 2px;
    background : var(--white);
    transition : all var(--transition-smooth);
}

.header--solid .menu-toggle__bar {
    background : var(--forest-deep);
}

/* FIX: Menu toggle active state - bars stay white when menu open */
.menu-toggle--active .menu-toggle__bar {
    background : var(--white);
}

.menu-toggle--active .menu-toggle__bar:nth-child(1) {
    transform : rotate(45deg) translate(6px, 6px);
}

.menu-toggle--active .menu-toggle__bar:nth-child(2) {
    opacity : 0;
}

.menu-toggle--active .menu-toggle__bar:nth-child(3) {
    transform : rotate(-45deg) translate(6px, -6px);
}

/* ========================================
   HERO SECTION
   ======================================== */
.hero {
    position        : relative;
    min-height      : 100vh;
    display         : flex;
    align-items     : center;
    justify-content : center;
    overflow        : hidden;
}

.hero__slideshow {
    position : absolute;
    inset    : 0;
    z-index  : 0;
}

.hero__slide {
    position            : absolute;
    inset               : 0;
    opacity             : 0;
    transition          : opacity 1.5s ease-in-out;
    background-size     : cover;
    background-position : center;
}

.hero__slide--active {
    opacity : 1;
}

.hero__slide::after {
    content    : '';
    position   : absolute;
    inset      : 0;
    background : linear-gradient(
            to bottom,
            rgba(10, 10, 10, 0.3) 0%,
            rgba(10, 10, 10, 0.1) 40%,
            rgba(10, 10, 10, 0.4) 100%
    );
}

.hero__content {
    position   : relative;
    z-index    : 1;
    text-align : center;
    color      : var(--white);
    padding    : var(--space-xl);
    max-width  : 900px;
}

.hero__badge {
    display        : inline-flex;
    align-items    : center;
    gap            : var(--space-xs);
    font-family    : var(--font-body);
    font-size      : 0.75rem;
    font-weight    : 500;
    letter-spacing : 0.2em;
    text-transform : uppercase;
    color          : var(--gold-light);
    margin-bottom  : var(--space-md);
    padding        : var(--space-xs) var(--space-md);
    border         : 1px solid rgba(201, 169, 98, 0.4);
    border-radius  : 100px;
    animation      : fadeInDown 1s ease-out 0.2s both;
}

.hero__title {
    color         : var(--white);
    margin-bottom : var(--space-md);
    text-shadow   : 0 4px 30px rgba(0, 0, 0, 0.3);
    animation     : fadeInUp 1s ease-out 0.4s both;
}

.hero__subtitle {
    font-family   : var(--font-accent);
    font-size     : clamp(1.25rem, 2.5vw, 1.75rem);
    font-weight   : 400;
    font-style    : italic;
    opacity       : 0.9;
    margin-bottom : var(--space-xl);
    animation     : fadeInUp 1s ease-out 0.6s both;
}

.hero__buttons {
    display         : flex;
    flex-wrap       : wrap;
    gap             : var(--space-sm);
    justify-content : center;
    animation       : fadeInUp 1s ease-out 0.8s both;
}

/* Scroll Indicator */
.hero__scroll {
    position       : absolute;
    bottom         : var(--space-lg);
    left           : 50%;
    transform      : translateX(-50%);
    display        : flex;
    flex-direction : column;
    align-items    : center;
    gap            : var(--space-sm);
    color          : var(--white);
    opacity        : 0.7;
    transition     : opacity var(--transition-fast);
    animation      : fadeIn 1s ease-out 1.2s both;
    cursor         : pointer;
}

.hero__scroll:hover {
    opacity : 1;
}

.hero__scroll-text {
    font-size      : 0.75rem;
    letter-spacing : 0.2em;
    text-transform : uppercase;
}

.hero__scroll-line {
    width      : 1px;
    height     : 60px;
    background : linear-gradient(to bottom, var(--white), transparent);
    animation  : scrollPulse 2s ease-in-out infinite;
}

/* Slideshow Controls */
.hero__controls {
    position : absolute;
    bottom   : var(--space-lg);
    right    : var(--space-lg);
    display  : flex;
    gap      : var(--space-xs);
    z-index  : 2;
}

.hero__dot {
    width         : 12px;
    height        : 12px;
    border-radius : 50%;
    border        : 1px solid rgba(255, 255, 255, 0.5);
    background    : transparent;
    cursor        : pointer;
    transition    : all var(--transition-fast);
}

.hero__dot--active,
.hero__dot:hover {
    background   : var(--white);
    border-color : var(--white);
}

/* ========================================
   BUTTONS
   ======================================== */
.btn {
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    gap             : var(--space-xs);
    padding         : var(--space-sm) var(--space-lg);
    font-family     : var(--font-body);
    font-size       : 0.875rem;
    font-weight     : 500;
    letter-spacing  : 0.1em;
    text-transform  : uppercase;
    border-radius   : var(--radius-sm);
    transition      : all var(--transition-smooth);
    cursor          : pointer;
    min-width       : 180px;
}

.btn--primary {
    background : var(--gold);
    color      : var(--forest-deep);
    border     : 2px solid var(--gold);
}

.btn--primary:hover {
    background   : var(--gold-light);
    border-color : var(--gold-light);
    transform    : translateY(-2px);
    box-shadow   : 0 10px 30px rgba(201, 169, 98, 0.3);
}

.btn--secondary {
    background : transparent;
    color      : var(--white);
    border     : 2px solid rgba(255, 255, 255, 0.6);
}

.btn--secondary:hover {
    background   : var(--white);
    color        : var(--forest-deep);
    border-color : var(--white);
}

.btn--dark {
    background : var(--forest-deep);
    color      : var(--white);
    border     : 2px solid var(--forest-deep);
}

.btn--dark:hover {
    background   : var(--forest-mid);
    border-color : var(--forest-mid);
}

.btn--outline {
    background : transparent;
    color      : var(--forest-deep);
    border     : 2px solid var(--forest-deep);
}

.btn--outline:hover {
    background : var(--forest-deep);
    color      : var(--white);
}

.btn--gold-outline {
    background : transparent;
    color      : var(--gold-dark);
    border     : 2px solid var(--gold);
}

.btn--gold-outline:hover {
    background : var(--gold);
    color      : var(--forest-deep);
}

.btn--small {
    padding   : var(--space-xs) var(--space-md);
    min-width : auto;
    font-size : 0.8125rem;
}

/* ========================================
   SPECIAL OFFER BANNER
   ======================================== */
.offer-banner {
    background : linear-gradient(135deg, var(--forest-deep) 0%, var(--forest-mid) 100%);
    padding    : var(--space-lg) 0;
    position   : relative;
    overflow   : hidden;
}

.offer-banner::before {
    content          : '';
    position         : absolute;
    top              : 0;
    left             : 0;
    right            : 0;
    bottom           : 0;
    background-image : url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    opacity          : 0.5;
}

.offer-banner__inner {
    display     : flex;
    align-items : center;
    gap         : var(--space-lg);
    max-width   : var(--container-max);
    margin      : 0 auto;
    padding     : 0 var(--space-lg);
    position    : relative;
    z-index     : 1;
}

.offer-banner__icon {
    flex-shrink     : 0;
    width           : 80px;
    height          : 80px;
    background      : var(--gold);
    border-radius   : 50%;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 2rem;
}

.offer-banner__content {
    flex  : 1;
    color : var(--white);
}

.offer-banner__title {
    font-family   : var(--font-display);
    font-size     : 1.5rem;
    color         : var(--gold-light);
    margin-bottom : var(--space-xs);
}

.offer-banner__text {
    font-size : 1rem;
    opacity   : 0.9;
    margin    : 0;
}

.offer-banner__text strong {
    color : var(--gold-light);
}

.offer-banner__cta {
    flex-shrink : 0;
}

/* ========================================
   INTRO SECTION
   ======================================== */
.intro {
    padding    : var(--space-3xl) 0;
    background : var(--cream);
    position   : relative;
}

.intro__grid {
    display               : grid;
    grid-template-columns : 1fr 380px;
    gap                   : var(--space-2xl);
    align-items           : start;
}

.intro__content {
    max-width : 700px;
}

.intro__eyebrow {
    font-family    : var(--font-accent);
    font-size      : 1rem;
    font-style     : italic;
    color          : var(--gold-dark);
    margin-bottom  : var(--space-sm);
    letter-spacing : 0.05em;
}

.intro__title {
    margin-bottom : var(--space-lg);
}

.intro__text {
    font-size : 1.0625rem;
    color     : var(--charcoal-light);
}

.intro__text p + p {
    margin-top : var(--space-md);
}

/* Highlights Card */
.highlights-card {
    background    : var(--white);
    border-radius : var(--radius-lg);
    padding       : var(--space-lg);
    box-shadow    : var(--shadow-medium);
    border        : 1px solid rgba(143, 169, 143, 0.2);
    position      : sticky;
    top           : 120px;
}

.highlights-card__title {
    font-family    : var(--font-display);
    font-size      : 1.25rem;
    color          : var(--forest-deep);
    margin-bottom  : var(--space-md);
    padding-bottom : var(--space-sm);
    border-bottom  : 1px solid var(--sage-light);
}

.highlights-card__list {
    display        : flex;
    flex-direction : column;
    gap            : var(--space-sm);
    margin-bottom  : var(--space-lg);
}

.highlights-card__item {
    display     : flex;
    align-items : flex-start;
    gap         : var(--space-sm);
    font-size   : 0.9375rem;
    color       : var(--charcoal);
}

.highlights-card__icon {
    flex-shrink     : 0;
    width           : 24px;
    height          : 24px;
    background      : var(--sage-light);
    border-radius   : 50%;
    display         : flex;
    align-items     : center;
    justify-content : center;
    color           : var(--forest-mid);
    font-size       : 0.75rem;
}

.highlights-card__buttons {
    display        : flex;
    flex-direction : column;
    gap            : var(--space-xs);
}

.highlights-card__buttons .btn {
    width : 100%;
}

/* ========================================
   PHOTO GALLERY SECTION
   ======================================== */
.gallery-section {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream-dark);
    position   : relative;
}

.gallery-section::before {
    content    : '';
    position   : absolute;
    top        : 0;
    left       : 0;
    right      : 0;
    height     : 200px;
    background : linear-gradient(to bottom, var(--cream), var(--cream-dark));
}

.gallery__header {
    text-align    : center;
    margin-bottom : var(--space-xl);
    position      : relative;
    z-index       : 1;
}

.gallery__eyebrow {
    font-family   : var(--font-accent);
    font-size     : 1rem;
    font-style    : italic;
    color         : var(--gold-dark);
    margin-bottom : var(--space-xs);
}

.gallery__title {
    margin-bottom : var(--space-sm);
}

.gallery__subtitle {
    font-size : 1.0625rem;
    color     : var(--charcoal-light);
    max-width : 600px;
    margin    : 0 auto;
}

/* Masonry Grid */
.gallery__grid {
    display               : grid;
    grid-template-columns : repeat(4, 1fr);
    grid-auto-rows        : 200px;
    gap                   : var(--space-sm);
    max-width             : var(--container-max);
    margin                : 0 auto;
    padding               : 0 var(--space-md);
}

.gallery__item {
    position      : relative;
    overflow      : hidden;
    border-radius : var(--radius-md);
    cursor        : pointer;
}

.gallery__item--wide {
    grid-column : span 2;
}

.gallery__item--tall {
    grid-row : span 2;
}

.gallery__item--featured {
    grid-column : span 2;
    grid-row    : span 2;
}

.gallery__image {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
    transition : transform var(--transition-slow);
}

.gallery__item:hover .gallery__image {
    transform : scale(1.08);
}

.gallery__overlay {
    position        : absolute;
    inset           : 0;
    background      : linear-gradient(
            to top,
            rgba(26, 46, 31, 0.8) 0%,
            rgba(26, 46, 31, 0) 60%
    );
    opacity         : 0;
    transition      : opacity var(--transition-smooth);
    display         : flex;
    flex-direction  : column;
    justify-content : flex-end;
    padding         : var(--space-md);
}

.gallery__item:hover .gallery__overlay {
    opacity : 1;
}

.gallery__caption {
    color       : var(--white);
    font-size   : 0.9375rem;
    font-weight : 500;
    transform   : translateY(10px);
    transition  : transform var(--transition-smooth);
}

.gallery__item:hover .gallery__caption {
    transform : translateY(0);
}

.gallery__expand {
    position        : absolute;
    top             : var(--space-sm);
    right           : var(--space-sm);
    width           : 40px;
    height          : 40px;
    background      : rgba(255, 255, 255, 0.9);
    border-radius   : 50%;
    display         : flex;
    align-items     : center;
    justify-content : center;
    color           : var(--forest-deep);
    opacity         : 0;
    transform       : scale(0.8);
    transition      : all var(--transition-smooth);
}

.gallery__item:hover .gallery__expand {
    opacity   : 1;
    transform : scale(1);
}

/* ========================================
   COTTAGES SECTION
   ======================================== */
.cottages-section {
    padding    : var(--space-3xl) 0;
    background : var(--cream);
}

.cottages__header {
    text-align    : center;
    margin-bottom : var(--space-2xl);
}

.cottages__eyebrow {
    font-family   : var(--font-accent);
    font-size     : 1rem;
    font-style    : italic;
    color         : var(--gold-dark);
    margin-bottom : var(--space-xs);
}

.cottages__title {
    margin-bottom : var(--space-sm);
}

.cottages__subtitle {
    font-size : 1.0625rem;
    color     : var(--charcoal-light);
    max-width : 600px;
    margin    : 0 auto;
}

/* Cottage Grid */
.cottages__grid {
    display               : grid;
    grid-template-columns : repeat(4, 1fr);
    gap                   : var(--space-md);
    max-width             : var(--container-max);
    margin                : 0 auto;
    padding               : 0 var(--space-md);
}

/* Cottage Card */
.cottage-card {
    background    : var(--white);
    border-radius : var(--radius-lg);
    overflow      : hidden;
    box-shadow    : var(--shadow-soft);
    transition    : all var(--transition-smooth);
    cursor        : pointer;
}

.cottage-card:hover {
    transform  : translateY(-8px);
    box-shadow : var(--shadow-heavy);
}

.cottage-card__image {
    position     : relative;
    aspect-ratio : 4/3;
    overflow     : hidden;
}

.cottage-card__image img {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
    transition : transform var(--transition-slow);
}

.cottage-card:hover .cottage-card__image img {
    transform : scale(1.08);
}

.cottage-card__badge {
    position       : absolute;
    top            : var(--space-sm);
    right          : var(--space-sm);
    background     : var(--gold);
    color          : var(--forest-deep);
    font-size      : 0.75rem;
    font-weight    : 600;
    padding        : 4px 12px;
    border-radius  : 100px;
    letter-spacing : 0.05em;
    text-transform : uppercase;
}

.cottage-card__content {
    padding : var(--space-md);
}

.cottage-card__name {
    font-family   : var(--font-display);
    font-size     : 1.5rem;
    color         : var(--forest-deep);
    margin-bottom : var(--space-sm);
}

.cottage-card__features {
    display        : flex;
    flex-direction : column;
    gap            : var(--space-xs);
}

.cottage-card__feature {
    display     : flex;
    align-items : center;
    gap         : var(--space-xs);
    font-size   : 0.875rem;
    color       : var(--charcoal-light);
}

.cottage-card__feature-icon {
    width           : 20px;
    height          : 20px;
    display         : flex;
    align-items     : center;
    justify-content : center;
    color           : var(--sage);
}

.cottage-card__feature--sub {
    font-size    : 0.8125rem;
    color        : var(--gold-dark);
    font-style   : italic;
    padding-left : 28px;
    margin-top   : -4px;
}

.cottage-card__dog-friendly {
    color : var(--gold-dark);
}

.cottage-card__no-pets {
    color   : var(--charcoal-light);
    opacity : 0.6;
}

/* Compare Link */
.cottages__compare {
    text-align : center;
    margin-top : var(--space-xl);
}

.cottages__compare a {
    display               : inline-flex;
    align-items           : center;
    gap                   : var(--space-xs);
    color                 : var(--forest-mid);
    font-weight           : 500;
    text-decoration       : underline;
    text-underline-offset : 4px;
}

.cottages__compare a:hover {
    color : var(--gold-dark);
}

/* ========================================
   AWARDS SECTION
   ======================================== */
.awards-section {
    padding       : var(--space-xl) 0;
    background    : var(--white);
    border-top    : 1px solid var(--cream-dark);
    border-bottom : 1px solid var(--cream-dark);
}

.awards__inner {
    display         : flex;
    align-items     : center;
    justify-content : center;
    flex-wrap       : wrap;
    gap             : var(--space-xl);
    max-width       : var(--container-max);
    margin          : 0 auto;
    padding         : 0 var(--space-lg);
}

.awards__item {
    height     : 80px;
    opacity    : 0.8;
    transition : all var(--transition-fast);
    filter     : grayscale(30%);
}

.awards__item:hover {
    opacity   : 1;
    filter    : grayscale(0%);
    transform : scale(1.05);
}

/* ========================================
   TESTIMONIALS SECTION
   ======================================== */
.testimonials-section {
    padding    : var(--space-3xl) 0;
    background : var(--forest-deep);
    position   : relative;
    overflow   : hidden;
}

.testimonials-section::before {
    content          : '';
    position         : absolute;
    top              : 0;
    left             : 0;
    right            : 0;
    bottom           : 0;
    background-image : url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23ffffff' fill-opacity='0.02' fill-rule='evenodd'/%3E%3C/svg%3E");
}

.testimonials__header {
    text-align    : center;
    margin-bottom : var(--space-2xl);
    position      : relative;
    z-index       : 1;
}

.testimonials__eyebrow {
    font-family   : var(--font-accent);
    font-size     : 1rem;
    font-style    : italic;
    color         : var(--gold);
    margin-bottom : var(--space-xs);
}

.testimonials__title {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.testimonials__link {
    display     : inline-flex;
    align-items : center;
    gap         : var(--space-xs);
    color       : var(--sage-light);
    font-size   : 0.9375rem;
    margin-top  : var(--space-sm);
}

.testimonials__link:hover {
    color           : var(--gold);
    text-decoration : underline;
}

/* Testimonial Grid */
.testimonials__grid {
    display               : grid;
    grid-template-columns : repeat(2, 1fr);
    gap                   : var(--space-lg);
    max-width             : var(--container-max);
    margin                : 0 auto;
    padding               : 0 var(--space-lg);
    position              : relative;
    z-index               : 1;
}

/* Testimonial Card */
.testimonial-card {
    background      : rgba(255, 255, 255, 0.08);
    border-radius   : var(--radius-lg);
    padding         : var(--space-xl);
    position        : relative;
    border          : 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter : blur(10px);
}

.testimonial-card__quote {
    position    : absolute;
    top         : var(--space-md);
    left        : var(--space-md);
    font-family : var(--font-display);
    font-size   : 4rem;
    color       : var(--gold);
    opacity     : 0.3;
    line-height : 1;
}

.testimonial-card__text {
    font-family   : var(--font-accent);
    font-size     : 1.25rem;
    font-style    : italic;
    line-height   : 1.8;
    color         : var(--cream);
    margin-bottom : var(--space-md);
    position      : relative;
    z-index       : 1;
}

.testimonial-card__author {
    font-size   : 0.875rem;
    color       : var(--sage-light);
    font-weight : 500;
}

/* ========================================
   FOOTER
   ======================================== */
.footer {
    background : var(--forest-mid);
    color      : var(--white);
    position   : relative;
    overflow   : hidden;
}

.footer::before {
    content         : '';
    position        : absolute;
    bottom          : 0;
    left            : 0;
    width           : 400px;
    height          : 400px;
    background      : url('images/blue_footer_tree.png') no-repeat left bottom;
    background-size : contain;
    opacity         : 0.15;
}

.footer__main {
    display               : grid;
    grid-template-columns : 1fr 1fr 1.5fr;
    gap                   : var(--space-xl);
    max-width             : var(--container-max);
    margin                : 0 auto;
    padding               : var(--space-2xl) var(--space-lg);
    position              : relative;
    z-index               : 1;
}

.footer__section h3 {
    font-family   : var(--font-display);
    font-size     : 1.25rem;
    color         : var(--gold-light);
    margin-bottom : var(--space-md);
}

.footer__list {
    display        : flex;
    flex-direction : column;
    gap            : var(--space-xs);
}

.footer__list a {
    font-size  : 0.9375rem;
    color      : rgba(255, 255, 255, 0.8);
    transition : color var(--transition-fast);
}

.footer__list a:hover {
    color : var(--gold);
}

.footer__social {
    display    : flex;
    gap        : var(--space-sm);
    margin-top : var(--space-md);
}

.footer__social-link {
    width           : 44px;
    height          : 44px;
    border-radius   : 50%;
    background      : rgba(255, 255, 255, 0.1);
    display         : flex;
    align-items     : center;
    justify-content : center;
    color           : var(--white);
    transition      : all var(--transition-fast);
}

.footer__social-link:hover {
    background : var(--gold);
    color      : var(--forest-deep);
}

.footer__map {
    border-radius : var(--radius-md);
    overflow      : hidden;
    border        : 2px solid rgba(255, 255, 255, 0.2);
    cursor        : pointer;
    transition    : border-color var(--transition-fast);
}

.footer__map:hover {
    border-color : var(--gold);
}

.footer__map img {
    width  : 100%;
    height : auto;
}

.footer__bottom {
    background : rgba(0, 0, 0, 0.2);
    text-align : center;
    padding    : var(--space-md) var(--space-lg);
}

.footer__bottom p {
    font-size : 0.875rem;
    color     : rgba(255, 255, 255, 0.6);
    margin    : 0;
}

.footer__bottom a {
    color : rgba(255, 255, 255, 0.6);
}

.footer__bottom a:hover {
    color : var(--gold);
}

/* ========================================
   LIGHTBOX
   ======================================== */
.lightbox {
    display         : none;
    position        : fixed;
    inset           : 0;
    z-index         : 9999;
    background      : rgba(10, 10, 10, 0.95);
    backdrop-filter : blur(20px);
    align-items     : center;
    justify-content : center;
    animation       : fadeIn 0.3s ease-out;
}

.lightbox--active {
    display : flex;
}

.lightbox__content {
    position   : relative;
    max-width  : 90vw;
    max-height : 90vh;
}

.lightbox__image {
    max-width     : 90vw;
    max-height    : 85vh;
    object-fit    : contain;
    border-radius : var(--radius-sm);
}

.lightbox__close {
    position        : absolute;
    top             : var(--space-md);
    right           : var(--space-md);
    width           : 50px;
    height          : 50px;
    background      : rgba(255, 255, 255, 0.1);
    border          : 1px solid rgba(255, 255, 255, 0.2);
    border-radius   : 50%;
    display         : flex;
    align-items     : center;
    justify-content : center;
    color           : var(--white);
    font-size       : 1.5rem;
    cursor          : pointer;
    transition      : all var(--transition-fast);
    z-index         : 10;
}

.lightbox__close:hover {
    background : var(--white);
    color      : var(--black);
}

.lightbox__nav {
    position        : absolute;
    top             : 50%;
    transform       : translateY(-50%);
    width           : 60px;
    height          : 60px;
    background      : rgba(255, 255, 255, 0.1);
    border          : 1px solid rgba(255, 255, 255, 0.2);
    border-radius   : 50%;
    display         : flex;
    align-items     : center;
    justify-content : center;
    color           : var(--white);
    font-size       : 1.5rem;
    cursor          : pointer;
    transition      : all var(--transition-fast);
    z-index         : 10;
}

.lightbox__nav:hover {
    background : var(--white);
    color      : var(--black);
}

.lightbox__nav--prev {
    left : var(--space-lg);
}

.lightbox__nav--next {
    right : var(--space-lg);
}

.lightbox__counter {
    position  : absolute;
    bottom    : var(--space-md);
    left      : 50%;
    transform : translateX(-50%);
    color     : rgba(255, 255, 255, 0.7);
    font-size : 0.875rem;
}

.lightbox__caption {
    position    : absolute;
    bottom      : var(--space-xl);
    left        : 50%;
    transform   : translateX(-50%);
    color       : var(--white);
    font-family : var(--font-accent);
    font-style  : italic;
    font-size   : 1.125rem;
    text-align  : center;
    max-width   : 600px;
}

/* ========================================
   ANIMATIONS
   ======================================== */
@keyframes fadeIn {
    from {
        opacity : 0;
    }
    to {
        opacity : 1;
    }
}

@keyframes fadeInUp {
    from {
        opacity   : 0;
        transform : translateY(30px);
    }
    to {
        opacity   : 1;
        transform : translateY(0);
    }
}

@keyframes fadeInDown {
    from {
        opacity   : 0;
        transform : translateY(-20px);
    }
    to {
        opacity   : 1;
        transform : translateY(0);
    }
}

@keyframes scrollPulse {
    0%, 100% {
        transform : scaleY(1);
        opacity   : 0.7;
    }
    50% {
        transform : scaleY(1.3);
        opacity   : 1;
    }
}

@keyframes slideInLeft {
    from {
        opacity   : 0;
        transform : translateX(-50px);
    }
    to {
        opacity   : 1;
        transform : translateX(0);
    }
}

/* Scroll animations */
.animate-on-scroll {
    opacity    : 0;
    transform  : translateY(40px);
    transition : all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.animate-on-scroll.is-visible {
    opacity   : 1;
    transform : translateY(0);
}

/* Staggered animations */
.stagger-1 {
    transition-delay : 0.1s;
}

.stagger-2 {
    transition-delay : 0.2s;
}

.stagger-3 {
    transition-delay : 0.3s;
}

.stagger-4 {
    transition-delay : 0.4s;
}

.stagger-5 {
    transition-delay : 0.5s;
}

.stagger-6 {
    transition-delay : 0.6s;
}

.stagger-7 {
    transition-delay : 0.7s;
}

.stagger-8 {
    transition-delay : 0.8s;
}

/* ========================================
   BREADCRUMB
   ======================================== */
.breadcrumb {
    display       : flex;
    align-items   : center;
    gap           : 0.5rem;
    font-size     : 0.875rem;
    color         : rgba(255, 255, 255, 0.8);
    margin-bottom : var(--space-md);
}

.breadcrumb a {
    color      : rgba(255, 255, 255, 0.8);
    transition : color var(--transition-fast);
}

.breadcrumb a:hover {
    color : var(--gold);
}

.breadcrumb__separator {
    opacity : 0.5;
}

/* ========================================
   COTTAGE HERO VARIANT
   ======================================== */
.hero--cottage {
    min-height : 70vh;
}

.hero--cottage .hero__subtitle {
    font-family    : var(--font-body);
    font-style     : normal;
    font-size      : 1.25rem;
    letter-spacing : 0.05em;
}

/* ========================================
   COTTAGE QUICK INFO BAR
   ======================================== */
.cottage-quick-info {
    background : var(--forest-deep);
    padding    : var(--space-md) 0;
}

.cottage-quick-info__grid {
    display         : flex;
    justify-content : center;
    flex-wrap       : wrap;
    gap             : var(--space-lg);
}

.cottage-quick-info__item {
    display        : flex;
    flex-direction : column;
    align-items    : center;
    text-align     : center;
    color          : var(--white);
    min-width      : 120px;
}

.cottage-quick-info__icon {
    width         : 32px;
    height        : 32px;
    margin-bottom : var(--space-xs);
    object-fit    : contain;
    filter        : brightness(0) invert(1);
}

.cottage-quick-info__label {
    font-size      : 0.75rem;
    text-transform : uppercase;
    letter-spacing : 0.1em;
    opacity        : 0.7;
    margin-bottom  : 2px;
}

.cottage-quick-info__value {
    font-family : var(--font-display);
    font-size   : 1rem;
}

.cottage-quick-info__item--no-pets {
    opacity : 0.6;
}

/* ========================================
   COTTAGE ABOUT SECTION
   ======================================== */
.cottage-about {
    padding    : var(--space-3xl) 0;
    background : var(--cream);
}

.cottage-about__grid {
    display               : grid;
    grid-template-columns : 1fr 400px;
    gap                   : var(--space-2xl);
    align-items           : start;
}

.cottage-about__content {
    max-width : 700px;
}

.cottage-about__text {
    font-size   : 1.0625rem;
    color       : var(--charcoal-light);
    line-height : 1.8;
}

.cottage-about__text p {
    margin-bottom : var(--space-md);
}

.cottage-about__highlight {
    background    : var(--cream-dark);
    border-left   : 4px solid var(--gold);
    padding       : var(--space-md);
    margin        : var(--space-lg) 0;
    border-radius : 0 var(--radius-md) var(--radius-md) 0;
}

.cottage-about__accessibility {
    margin-top  : var(--space-xl);
    padding-top : var(--space-lg);
    border-top  : 1px solid var(--sage-light);
}

.cottage-about__accessibility h4 {
    font-family   : var(--font-display);
    font-size     : 1.125rem;
    color         : var(--forest-mid);
    margin-bottom : var(--space-sm);
}

.cottage-about__accessibility p {
    font-size : 0.9375rem;
    color     : var(--charcoal-light);
}

/* ========================================
   COTTAGE FEATURES SIDEBAR
   ======================================== */
.cottage-features {
    background    : var(--white);
    border-radius : var(--radius-lg);
    padding       : var(--space-lg);
    box-shadow    : var(--shadow-medium);
    border        : 1px solid rgba(143, 169, 143, 0.2);
    position      : sticky;
    top           : 100px;
}

.cottage-features__title {
    font-family    : var(--font-display);
    font-size      : 1.25rem;
    color          : var(--forest-deep);
    margin-bottom  : var(--space-md);
    padding-bottom : var(--space-sm);
    border-bottom  : 1px solid var(--sage-light);
}

.cottage-features__list {
    display        : flex;
    flex-direction : column;
    gap            : var(--space-sm);
}

.cottage-features__item {
    display     : flex;
    align-items : flex-start;
    gap         : var(--space-sm);
    padding     : var(--space-xs) 0;
}

.cottage-features__icon {
    width       : 40px;
    height      : 40px;
    object-fit  : contain;
    flex-shrink : 0;
}

.cottage-features__text {
    display        : flex;
    flex-direction : column;
}

.cottage-features__text strong {
    font-size : 0.9375rem;
    color     : var(--forest-deep);
}

.cottage-features__text span {
    font-size : 0.8125rem;
    color     : var(--charcoal-light);
}

.cottage-features__text a {
    color                 : var(--gold-dark);
    text-decoration       : underline;
    text-underline-offset : 2px;
}

.cottage-features__item--muted {
    opacity     : 0.6;
    padding-top : var(--space-sm);
    margin-top  : var(--space-xs);
    border-top  : 1px dashed var(--sage-light);
}

.cottage-features__award {
    margin-top  : var(--space-lg);
    padding-top : var(--space-md);
    border-top  : 1px solid var(--sage-light);
    text-align  : center;
}

.cottage-features__award img {
    max-height : 80px;
    width      : auto;
}

/* ========================================
   SECTION HEADERS (Reusable)
   ======================================== */
.section-header {
    text-align    : center;
    margin-bottom : var(--space-xl);
}

.section-eyebrow {
    display       : block;
    font-family   : var(--font-accent);
    font-size     : 1rem;
    font-style    : italic;
    color         : var(--gold-dark);
    margin-bottom : var(--space-xs);
}

.section-title {
    margin-bottom : var(--space-sm);
}

.section-subtitle {
    font-size : 1.0625rem;
    color     : var(--charcoal-light);
    max-width : 600px;
    margin    : 0 auto;
}

/* ========================================
   COTTAGE GALLERY
   ======================================== */
.cottage-gallery-section {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream-dark);
}

.cottage-gallery {
    display               : grid;
    grid-template-columns : repeat(auto-fill, minmax(250px, 1fr));
    gap                   : var(--space-sm);
    max-width             : var(--container-max);
    margin                : 0 auto;
    padding               : 0 var(--space-md);
}

.cottage-gallery__item {
    position      : relative;
    aspect-ratio  : 4/3;
    overflow      : hidden;
    border-radius : var(--radius-md);
    cursor        : pointer;
    background    : var(--white);
}

.cottage-gallery__item img {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
    transition : transform var(--transition-slow);
}

.cottage-gallery__item:hover img,
.cottage-gallery__item:focus img {
    transform : scale(1.05);
}

.cottage-gallery__item::after {
    content    : '';
    position   : absolute;
    inset      : 0;
    background : linear-gradient(to top, rgba(0, 0, 0, 0.3) 0%, transparent 50%);
    opacity    : 0;
    transition : opacity var(--transition-fast);
}

.cottage-gallery__item:hover::after,
.cottage-gallery__item:focus::after {
    opacity : 1;
}

.cottage-gallery__item--floorplan {
    background : var(--white);
}

.cottage-gallery__item--floorplan img {
    object-fit : contain;
    padding    : var(--space-sm);
}

.cottage-gallery__label {
    position      : absolute;
    bottom        : var(--space-sm);
    left          : var(--space-sm);
    font-size     : 0.8125rem;
    font-weight   : 500;
    color         : var(--white);
    background    : var(--forest-deep);
    padding       : 4px 12px;
    border-radius : var(--radius-sm);
    z-index       : 1;
}

/* ========================================
   COTTAGE AVAILABILITY SECTION
   ======================================== */
.cottage-availability {
    padding    : var(--space-3xl) 0;
    background : var(--cream);
}

.cottage-availability__calendars {
    max-width : 1000px;
    margin    : 0 auto;
}

.cottage-availability__calendar {
    margin-bottom : var(--space-2xl);
}

.cottage-availability__calendar:last-child {
    margin-bottom : 0;
}

.cottage-availability__calendar h3 {
    font-family   : var(--font-display);
    font-size     : 1.5rem;
    color         : var(--forest-deep);
    margin-bottom : var(--space-md);
    text-align    : center;
}

.calendar-note {
    font-family : var(--font-accent);
    font-style  : italic;
    font-size   : 1rem;
    color       : var(--charcoal-light);
    font-weight : 400;
}

/* ========================================
   OTHER COTTAGES SECTION
   ======================================== */
.other-cottages {
    padding    : var(--space-2xl) 0;
    background : var(--forest-deep);
}

.other-cottages .section-eyebrow {
    color : var(--gold);
}

.other-cottages .section-title {
    color : var(--white);
}

.other-cottages__grid {
    display               : grid;
    grid-template-columns : repeat(4, 1fr);
    gap                   : var(--space-md);
    max-width             : var(--container-max);
    margin                : 0 auto;
    padding               : 0 var(--space-md);
}

.other-cottage-card {
    background      : rgba(255, 255, 255, 0.1);
    border-radius   : var(--radius-md);
    overflow        : hidden;
    transition      : all var(--transition-smooth);
    text-decoration : none;
}

.other-cottage-card:hover {
    background : rgba(255, 255, 255, 0.15);
    transform  : translateY(-4px);
}

.other-cottage-card__image {
    position     : relative;
    aspect-ratio : 16/10;
    overflow     : hidden;
}

.other-cottage-card__image img {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
    transition : transform var(--transition-slow);
}

.other-cottage-card:hover .other-cottage-card__image img {
    transform : scale(1.05);
}

.other-cottage-card__badge {
    position       : absolute;
    top            : var(--space-xs);
    right          : var(--space-xs);
    background     : var(--gold);
    color          : var(--forest-deep);
    font-size      : 0.6875rem;
    font-weight    : 600;
    padding        : 3px 8px;
    border-radius  : 100px;
    text-transform : uppercase;
    letter-spacing : 0.05em;
}

.other-cottage-card__content {
    padding : var(--space-md);
    color   : var(--white);
}

.other-cottage-card__content h3 {
    font-family   : var(--font-display);
    font-size     : 1.25rem;
    color         : var(--white);
    margin-bottom : var(--space-xs);
}

.other-cottage-card__content p {
    font-size : 0.875rem;
    opacity   : 0.8;
    margin    : 0;
}

.other-cottage-card--compare {
    background      : var(--gold);
    display         : flex;
    align-items     : center;
    justify-content : center;
}

.other-cottage-card--compare:hover {
    background : var(--gold-light);
}

.other-cottage-card--compare .other-cottage-card__content {
    text-align : center;
    color      : var(--forest-deep);
}

.other-cottage-card--compare h3 {
    color : var(--forest-deep);
}

.other-cottage-card--compare p {
    color   : var(--forest-deep);
    opacity : 0.8;
}

.other-cottage-card__arrow {
    font-size  : 1.5rem;
    margin-top : var(--space-sm);
    display    : block;
}

/* Compare Page Specific Styles */
.compare-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/homeloop/1.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.compare-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.compare-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* Compare Section */
.compare-section {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream);
}

/* Desktop Table */
.compare-table-wrapper {
    overflow-x : auto;
    margin     : 0 auto;
    max-width  : var(--container-max);
    padding    : 0 var(--space-md);
}

.compare-table {
    width           : 100%;
    border-collapse : collapse;
    background      : var(--white);
    border-radius   : var(--radius-lg);
    overflow        : hidden;
    box-shadow      : var(--shadow-soft);
    min-width       : 900px;
}

.compare-table thead {
    top     : 80px;
    z-index : 10;
}

.compare-table th,
.compare-table td {
    padding       : var(--space-sm) var(--space-md);
    text-align    : center;
    border-bottom : 1px solid var(--cream-dark);
}

.compare-table th {
    background  : var(--forest-deep);
    color       : var(--white);
    font-family : var(--font-display);
    font-weight : 500;
    font-size   : 1rem;
    top         : 80px;
    z-index     : 10;
}

.compare-table th a {
    color           : var(--gold-light);
    text-decoration : none;
    transition      : color var(--transition-fast);
}

.compare-table th a:hover {
    color : var(--white);
}

.compare-table th:first-child {
    text-align : left;
    background : var(--forest-mid);
}

.compare-table td:first-child {
    text-align  : left;
    font-weight : 600;
    color       : var(--forest-deep);
    background  : var(--cream);
}

.compare-table tr:nth-child(even) td:not(:first-child) {
    background : var(--cream-dark);
}

.compare-table tr:hover td:not(:first-child) {
    background : var(--sage-light);
}

.compare-table__check {
    color     : var(--forest-mid);
    font-size : 1.25rem;
}

.compare-table__cross {
    color   : var(--charcoal-light);
    opacity : 0.4;
}

.compare-table__dog {
    color       : var(--gold-dark);
    font-weight : 500;
}

.compare-table__book {
    background : var(--forest-deep);
}

.compare-table__book a {
    display        : inline-block;
    padding        : var(--space-xs) var(--space-sm);
    background     : var(--gold);
    color          : var(--forest-deep);
    border-radius  : var(--radius-sm);
    font-size      : 0.8125rem;
    font-weight    : 600;
    text-transform : uppercase;
    letter-spacing : 0.05em;
    transition     : all var(--transition-fast);
}

.compare-table__book a:hover {
    background : var(--gold-light);
    transform  : translateY(-2px);
}

/* Mobile Cards */
.compare-cards {
    display        : none;
    flex-direction : column;
    gap            : var(--space-md);
    padding        : 0 var(--space-md);
}

.compare-card {
    background    : var(--white);
    border-radius : var(--radius-lg);
    overflow      : hidden;
    box-shadow    : var(--shadow-soft);
}

.compare-card__header {
    background      : var(--forest-deep);
    padding         : var(--space-md);
    display         : flex;
    justify-content : space-between;
    align-items     : center;
}

.compare-card__header h3 {
    color     : var(--white);
    font-size : 1.5rem;
    margin    : 0;
}

.compare-card__header a {
    color     : var(--gold-light);
    font-size : 0.875rem;
}

.compare-card__four_stats {
    display               : grid;
    grid-template-columns : repeat(4, 1fr);
    gap                   : 1px;
    background            : var(--cream-dark);
}

.compare-card__stats {
    display               : grid;
    grid-template-columns : repeat(5, 1fr);
    gap                   : 1px;
    background            : var(--cream-dark);
}

.compare-card__stat {
    background : var(--cream);
    padding    : var(--space-sm);
    text-align : center;
}

.compare-card__stat-value {
    display     : block;
    font-family : var(--font-display);
    font-size   : 1.5rem;
    color       : var(--forest-deep);
}

.compare-card__stat-label {
    font-size      : 0.75rem;
    text-transform : uppercase;
    letter-spacing : 0.1em;
    color          : var(--charcoal-light);
}

.compare-card__features {
    padding : var(--space-md);
}

.compare-card__feature {
    display         : flex;
    justify-content : space-between;
    padding         : var(--space-xs) 0;
    border-bottom   : 1px solid var(--cream-dark);
}

.compare-card__feature:last-child {
    border-bottom : none;
}

.compare-card__feature-label {
    color : var(--charcoal);
}

.compare-card__feature-value {
    font-weight : 500;
    color       : var(--forest-deep);
}

.compare-card__feature-value--yes {
    color : var(--forest-mid);
}

.compare-card__feature-value--no {
    color   : var(--charcoal-light);
    opacity : 0.5;
}

.compare-card__feature-value--dog {
    color : var(--gold-dark);
}

.compare-card__footer {
    padding    : var(--space-md);
    background : var(--cream);
    display    : flex;
    gap        : var(--space-sm);
}

.compare-card__footer .btn {
    flex : 1;
}

/* Quick Filter */
.compare-filters {
    display         : none;
    flex-wrap       : wrap;
    justify-content : center;
    gap             : var(--space-sm);
    margin-bottom   : var(--space-xl);
    padding         : 0 var(--space-md);
}

.compare-filter {
    padding       : var(--space-xs) var(--space-md);
    background    : var(--white);
    border        : 2px solid var(--sage-light);
    border-radius : 100px;
    font-size     : 0.875rem;
    font-weight   : 500;
    color         : var(--forest-mid);
    cursor        : pointer;
    transition    : all var(--transition-fast);
}

.compare-filter:hover,
.compare-filter--active {
    background   : var(--forest-deep);
    border-color : var(--forest-deep);
    color        : var(--white);
}

/* About Page Styles */
.about-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/homeloop/3.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.about-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.about-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* About Content */
.about-content {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream);
}

.about-intro {
    display               : grid;
    grid-template-columns : 1fr 1fr;
    gap                   : var(--space-xl);
    align-items           : center;
    margin-bottom         : var(--space-2xl);
}

.about-intro__image img {
    width         : 100%;
    max-width     : 500px;
    border-radius : var(--radius-lg);
    box-shadow    : var(--shadow-medium);
}

.about-intro__text h2 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-md);
}

.about-intro__text p {
    color         : var(--charcoal);
    line-height   : 1.8;
    margin-bottom : var(--space-md);
}

.about-intro__text p:last-child {
    margin-bottom : 0;
}

.about-story,
.about-farm,
.about-commitment {
    max-width : 800px;
    margin    : 0 auto var(--space-xl);
}

.about-story:last-child,
.about-farm:last-child,
.about-commitment:last-child {
    margin-bottom : 0;
}

.about-story h2,
.about-farm h2,
.about-commitment h2 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-md);
    text-align    : center;
}

.about-story p,
.about-farm p,
.about-commitment p {
    color         : var(--charcoal);
    line-height   : 1.8;
    margin-bottom : var(--space-md);
}

.about-story p:last-child,
.about-farm p:last-child,
.about-commitment p:last-child {
    margin-bottom : 0;
}

/* Specials Page Styles */
.specials-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/homeloop/5.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.specials-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.specials-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* Specials Content */
.specials-content {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream);
}

/* Empty State */
.specials-empty {
    text-align : center;
    padding    : var(--space-2xl) var(--space-md);
    max-width  : 600px;
    margin     : 0 auto var(--space-2xl);
}

.specials-empty__icon {
    color         : var(--sage);
    margin-bottom : var(--space-lg);
}

.specials-empty__icon svg {
    opacity : 0.6;
}

.specials-empty h2 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-md);
}

.specials-empty p {
    color         : var(--charcoal);
    line-height   : 1.8;
    margin-bottom : var(--space-lg);
}

.specials-empty__actions {
    display         : flex;
    gap             : var(--space-sm);
    justify-content : center;
    flex-wrap       : wrap;
}

/* Notify Section */
.specials-notify {
    background    : var(--white);
    border-radius : var(--radius-lg);
    padding       : var(--space-xl);
    text-align    : center;
    max-width     : 600px;
    margin        : 0 auto;
    box-shadow    : var(--shadow-soft);
}

.specials-notify h3 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-sm);
}

.specials-notify p {
    color         : var(--charcoal);
    margin-bottom : var(--space-lg);
}

/* Special Cards (for when offers are active) */
.specials-grid {
    display               : grid;
    grid-template-columns : repeat(auto-fit, minmax(350px, 1fr));
    gap                   : var(--space-lg);
    margin-bottom         : var(--space-2xl);
}

.special-card {
    background    : var(--white);
    border-radius : var(--radius-lg);
    overflow      : hidden;
    box-shadow    : var(--shadow-medium);
    position      : relative;
}

.special-card__badge {
    position       : absolute;
    top            : var(--space-md);
    right          : var(--space-md);
    background     : var(--gold);
    color          : var(--forest-deep);
    padding        : var(--space-xs) var(--space-sm);
    border-radius  : var(--radius-sm);
    font-weight    : 700;
    font-size      : 0.875rem;
    text-transform : uppercase;
    letter-spacing : 0.05em;
}

.special-card__content {
    padding : var(--space-lg);
}

.special-card__content h3 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-xs);
    padding-right : 80px;
}

.special-card__dates {
    color         : var(--gold-dark);
    font-weight   : 600;
    font-size     : 0.875rem;
    margin-bottom : var(--space-md);
}

.special-card__content > p {
    color         : var(--charcoal);
    line-height   : 1.7;
    margin-bottom : var(--space-md);
}

.special-card__details {
    list-style  : none;
    padding     : 0;
    margin      : 0 0 var(--space-lg);
    border-top  : 1px solid var(--cream-dark);
    padding-top : var(--space-md);
}

.special-card__details li {
    color        : var(--charcoal);
    padding      : var(--space-xs) 0;
    padding-left : var(--space-md);
    position     : relative;
}

.special-card__details li::before {
    content     : '✓';
    position    : absolute;
    left        : 0;
    color       : var(--forest-mid);
    font-weight : 600;
}

.special-card__actions {
    display : flex;
    gap     : var(--space-sm);
}

/* Location Page Styles */
.location-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/homeloop/2.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.location-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.location-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* Quick Nav */
.location-nav {
    background : var(--forest-deep);
    padding    : var(--space-md) 0;
    position   : sticky;
    top        : 80px;
    z-index    : 90;
}

.location-nav .container {
    display         : flex;
    justify-content : center;
    gap             : var(--space-md);
    flex-wrap       : wrap;
}

.location-nav__link {
    color           : var(--cream);
    text-decoration : none;
    font-size       : 0.9375rem;
    font-weight     : 500;
    padding         : var(--space-xs) var(--space-sm);
    border-radius   : var(--radius-sm);
    transition      : all var(--transition-fast);
}

.location-nav__link:hover {
    background : rgba(255, 255, 255, 0.1);
    color      : var(--white);
}

/* Contact Section */
.location-contact {
    padding    : var(--space-2xl) 0;
    background : var(--cream);
}

.location-contact h2 {
    text-align    : center;
    color         : var(--forest-deep);
    margin-bottom : var(--space-xl);
}

.contact-grid {
    display               : grid;
    grid-template-columns : repeat(3, 1fr);
    gap                   : var(--space-lg);
    margin-bottom         : var(--space-2xl);
}

.contact-card {
    background    : var(--white);
    padding       : var(--space-lg);
    border-radius : var(--radius-lg);
    text-align    : center;
    box-shadow    : var(--shadow-soft);
}

.contact-card__icon {
    color         : var(--forest-mid);
    margin-bottom : var(--space-md);
}

.contact-card h3 {
    color         : var(--forest-deep);
    font-size     : 1.125rem;
    margin-bottom : var(--space-sm);
}

.contact-card p {
    color         : var(--charcoal);
    line-height   : 1.7;
    margin-bottom : var(--space-md);
}

.contact-card p:last-child {
    margin-bottom : 0;
}

.contact-card a {
    color : var(--forest-mid);
}

/* Getting Here */
.getting-here {
    background    : var(--white);
    padding       : var(--space-xl);
    border-radius : var(--radius-lg);
    box-shadow    : var(--shadow-soft);
}

.getting-here h3 {
    color         : var(--forest-deep);
    text-align    : center;
    margin-bottom : var(--space-md);
}

.getting-here__intro {
    text-align : center;
    color      : var(--charcoal);
    max-width  : 700px;
    margin     : 0 auto var(--space-xl);
}

.transport-grid {
    display               : grid;
    grid-template-columns : repeat(auto-fit, minmax(280px, 1fr));
    gap                   : var(--space-md);
}

.transport-item {
    display       : flex;
    gap           : var(--space-md);
    padding       : var(--space-md);
    background    : var(--cream);
    border-radius : var(--radius-md);
}

.transport-item__icon {
    font-size   : 1.5rem;
    flex-shrink : 0;
}

.transport-item__content h4 {
    color         : var(--forest-deep);
    font-size     : 1rem;
    margin-bottom : var(--space-xs);
}

.transport-item__content p {
    color       : var(--charcoal);
    font-size   : 0.9375rem;
    line-height : 1.6;
    margin      : 0;
}

/* Attractions Section */
.location-attractions {
    padding    : var(--space-2xl) 0;
    background : var(--white);
}

.location-attractions h2 {
    text-align    : center;
    color         : var(--forest-deep);
    margin-bottom : var(--space-sm);
}

.section-intro {
    text-align : center;
    color      : var(--charcoal);
    max-width  : 600px;
    margin     : 0 auto var(--space-xl);
}

.attractions-grid {
    display               : grid;
    grid-template-columns : repeat(auto-fit, minmax(320px, 1fr));
    gap                   : var(--space-lg);
    margin-bottom         : var(--space-2xl);
}

.attraction-card {
    background      : var(--cream);
    border-radius   : var(--radius-lg);
    overflow        : hidden;
    text-decoration : none;
    transition      : all var(--transition-smooth);
    box-shadow      : var(--shadow-soft);
}

.attraction-card:hover {
    transform  : translateY(-4px);
    box-shadow : var(--shadow-medium);
}

.attraction-card__image {
    aspect-ratio : 16 / 10;
    overflow     : hidden;
}

.attraction-card__image img {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
    transition : transform var(--transition-smooth);
}

.attraction-card:hover .attraction-card__image img {
    transform : scale(1.05);
}

.attraction-card__content {
    padding : var(--space-md);
}

.attraction-card__content h3 {
    color         : var(--forest-deep);
    font-size     : 1.125rem;
    margin-bottom : var(--space-xs);
}

.attraction-card__content p {
    color       : var(--charcoal);
    font-size   : 0.9375rem;
    line-height : 1.6;
    margin      : 0;
}

/* Heritage Section */
.heritage-section {
    display               : grid;
    grid-template-columns : 1fr 2fr;
    gap                   : var(--space-xl);
    align-items           : start;
    background            : var(--cream);
    border-radius         : var(--radius-lg);
    overflow              : hidden;
}

.heritage-section__image img {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
}

.heritage-section__content {
    padding : var(--space-xl) var(--space-xl) var(--space-xl) 0;
}

.heritage-section__content h3 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-md);
}

.heritage-list {
    list-style   : none;
    padding      : 0;
    margin       : 0;
    column-count : 2;
    column-gap   : var(--space-lg);
}

.heritage-list li {
    padding      : var(--space-xs) 0;
    break-inside : avoid;
}

.heritage-list a {
    color           : var(--forest-mid);
    text-decoration : none;
    transition      : color var(--transition-fast);
}

.heritage-list a:hover {
    color           : var(--forest-deep);
    text-decoration : underline;
}

/* Dining Section */
.location-dining {
    padding    : var(--space-2xl) 0;
    background : var(--cream);
}

.location-dining h2 {
    text-align    : center;
    color         : var(--forest-deep);
    margin-bottom : var(--space-sm);
}

.dining-grid {
    display               : grid;
    grid-template-columns : 1fr 2fr;
    gap                   : var(--space-xl);
    align-items           : start;
    background            : var(--white);
    border-radius         : var(--radius-lg);
    overflow              : hidden;
    box-shadow            : var(--shadow-soft);
}

.dining-feature img {
    width      : 100%;
    height     : 100%;
    object-fit : cover;
}

.dining-list {
    padding : var(--space-xl) var(--space-xl) var(--space-xl) 0;
}

.dining-list ul {
    list-style   : none;
    padding      : 0;
    margin       : 0;
    column-count : 2;
    column-gap   : var(--space-lg);
}

.dining-list li {
    padding      : var(--space-xs) 0;
    break-inside : avoid;
}

.dining-list a {
    color           : var(--forest-mid);
    text-decoration : none;
    transition      : color var(--transition-fast);
}

.dining-list a:hover {
    color           : var(--forest-deep);
    text-decoration : underline;
}

/* Activities Section */
.location-activities {
    padding    : var(--space-2xl) 0;
    background : var(--white);
}

.location-activities h2 {
    text-align    : center;
    color         : var(--forest-deep);
    margin-bottom : var(--space-xl);
}

.activities-layout {
    display               : grid;
    grid-template-columns : 1fr 2fr;
    gap                   : var(--space-xl);
    align-items           : start;
}

.activities-image img {
    width         : 100%;
    border-radius : var(--radius-lg);
    box-shadow    : var(--shadow-medium);
}

.activities-content {
    display        : flex;
    flex-direction : column;
    gap            : var(--space-lg);
}

.activity-item h3 {
    color         : var(--forest-deep);
    font-size     : 1.125rem;
    margin-bottom : var(--space-xs);
}

.activity-item p {
    color       : var(--charcoal);
    line-height : 1.7;
    margin      : 0;
}

.activity-item a {
    color : var(--forest-mid);
}

.activity-item a:hover {
    color : var(--forest-deep);
}

/* Dogs Page Styles */
.dogs-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/dog1.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.dogs-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.dogs-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* Intro Section */
.dogs-intro {
    padding    : var(--space-2xl) 0;
    background : var(--cream);
}

.dogs-intro__content {
    max-width  : 800px;
    margin     : 0 auto;
    text-align : center;
}

.dogs-intro__content h2 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-md);
}

.dogs-intro__content p {
    color         : var(--charcoal);
    line-height   : 1.8;
    margin-bottom : var(--space-md);
}

.dogs-intro__content p:last-child {
    margin-bottom : 0;
}

.dogs-intro__content a {
    color       : var(--forest-mid);
    font-weight : 500;
}

.dogs-intro__content a:hover {
    color : var(--forest-deep);
}

/* Dog Gallery */
.dogs-gallery {
    padding    : 0 0 var(--space-2xl);
    background : var(--cream);
}

.dogs-gallery__grid {
    display               : grid;
    grid-template-columns : repeat(4, 1fr);
    gap                   : var(--space-md);
}

.dogs-gallery__grid img {
    width         : 100%;
    aspect-ratio  : 1;
    object-fit    : cover;
    border-radius : var(--radius-lg);
    box-shadow    : var(--shadow-soft);
}

/* Welcome Pack */
.dogs-welcome {
    padding    : var(--space-2xl) 0;
    background : var(--white);
}

.dogs-welcome__card {
    max-width     : 600px;
    margin        : 0 auto;
    text-align    : center;
    background    : var(--cream);
    padding       : var(--space-xl);
    border-radius : var(--radius-lg);
    box-shadow    : var(--shadow-soft);
}

.dogs-welcome__icon {
    font-size     : 3rem;
    margin-bottom : var(--space-md);
}

.dogs-welcome__card h2 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-sm);
}

.dogs-welcome__card > p {
    color         : var(--charcoal);
    margin-bottom : var(--space-lg);
}

.dogs-welcome__list {
    list-style : none;
    padding    : 0;
    margin     : 0;
    text-align : left;
}

.dogs-welcome__list li {
    display       : flex;
    align-items   : center;
    gap           : var(--space-sm);
    padding       : var(--space-sm);
    background    : var(--white);
    border-radius : var(--radius-md);
    margin-bottom : var(--space-xs);
    color         : var(--charcoal);
}

.dogs-welcome__list li:last-child {
    margin-bottom : 0;
}

.dogs-welcome__list-icon {
    font-size   : 1.25rem;
    flex-shrink : 0;
}

/* Explore Section */
.dogs-explore {
    padding    : var(--space-2xl) 0;
    background : var(--cream);
}

.dogs-explore h2 {
    text-align    : center;
    color         : var(--forest-deep);
    margin-bottom : var(--space-sm);
}

.dogs-explore__grid {
    display               : grid;
    grid-template-columns : repeat(2, 1fr);
    gap                   : var(--space-lg);
}

.dogs-explore__card {
    background    : var(--white);
    padding       : var(--space-lg);
    border-radius : var(--radius-lg);
    box-shadow    : var(--shadow-soft);
}

.dogs-explore__card h3 {
    color          : var(--forest-deep);
    margin-bottom  : var(--space-md);
    padding-bottom : var(--space-sm);
    border-bottom  : 2px solid var(--sage-light);
}

.dogs-explore__card ul {
    list-style : none;
    padding    : 0;
    margin     : 0;
}

.dogs-explore__card li {
    padding      : var(--space-xs) 0;
    color        : var(--charcoal);
    padding-left : var(--space-md);
    position     : relative;
}

.dogs-explore__card li::before {
    content   : '🐾';
    position  : absolute;
    left      : 0;
    font-size : 0.75rem;
}

/* Dog Friendly Cottages */
.dogs-cottages {
    padding    : var(--space-2xl) 0;
    background : var(--forest-deep);
}

.dogs-cottages h2 {
    text-align    : center;
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.dogs-cottages .section-intro {
    color : var(--cream);
}

.dogs-cottages__grid {
    display               : grid;
    grid-template-columns : repeat(4, 1fr);
    gap                   : var(--space-md);
}

.dogs-cottage-card {
    background      : rgba(255, 255, 255, 0.1);
    border          : 2px solid rgba(255, 255, 255, 0.2);
    border-radius   : var(--radius-lg);
    padding         : var(--space-lg);
    text-align      : center;
    text-decoration : none;
    transition      : all var(--transition-smooth);
}

.dogs-cottage-card:hover {
    background   : rgba(255, 255, 255, 0.15);
    border-color : var(--gold);
    transform    : translateY(-4px);
}

.dogs-cottage-card h3 {
    color         : var(--white);
    font-size     : 1.5rem;
    margin-bottom : var(--space-xs);
}

.dogs-cottage-card p {
    color     : var(--cream);
    font-size : 0.9375rem;
    margin    : 0;
}

/* ========================================
   ACCESSIBILITY PAGE STYLES
   ======================================== */
.accessibility-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/homeloop/1.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.accessibility-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.accessibility-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* Accessibility Content */
.accessibility-content {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream);
}

.accessibility-card {
    background    : var(--white);
    border-radius : var(--radius-lg);
    padding       : var(--space-xl);
    text-align    : center;
    max-width     : 700px;
    margin        : 0 auto var(--space-2xl);
    box-shadow    : var(--shadow-medium);
}

.accessibility-card__icon {
    color         : var(--forest-mid);
    margin-bottom : var(--space-md);
}

.accessibility-card h2 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-md);
}

.accessibility-card p {
    color         : var(--charcoal);
    line-height   : 1.8;
    margin-bottom : var(--space-md);
}

.accessibility-card p:last-of-type {
    margin-bottom : var(--space-lg);
}

.accessibility-card__actions {
    display         : flex;
    gap             : var(--space-sm);
    justify-content : center;
    flex-wrap       : wrap;
}

/* Accessible Cottages Grid */
.accessibility-cottages {
    max-width : 900px;
    margin    : 0 auto;
}

.accessibility-cottages h3 {
    text-align    : center;
    color         : var(--forest-deep);
    margin-bottom : var(--space-lg);
}

.accessibility-cottages__grid {
    display               : grid;
    grid-template-columns : repeat(3, 1fr);
    gap                   : var(--space-md);
}

.accessibility-cottage-card {
    background      : var(--white);
    border          : 2px solid var(--sage-light);
    border-radius   : var(--radius-lg);
    padding         : var(--space-lg);
    text-align      : center;
    text-decoration : none;
    transition      : all var(--transition-smooth);
    position        : relative;
}

.accessibility-cottage-card:hover {
    border-color : var(--gold);
    transform    : translateY(-4px);
    box-shadow   : var(--shadow-medium);
}

.accessibility-cottage-card h4 {
    color         : var(--forest-deep);
    font-family   : var(--font-display);
    font-size     : 1.5rem;
    margin-bottom : var(--space-xs);
}

.accessibility-cottage-card p {
    color     : var(--charcoal-light);
    font-size : 0.9375rem;
    margin    : 0;
}

.accessibility-cottage-card__badge {
    display        : inline-block;
    margin-top     : var(--space-sm);
    background     : var(--gold);
    color          : var(--forest-deep);
    font-size      : 0.75rem;
    font-weight    : 600;
    padding        : 4px 12px;
    border-radius  : 100px;
    text-transform : uppercase;
    letter-spacing : 0.05em;
}

/* ========================================
   AVAILABILITY PAGE STYLES
   ======================================== */
.availability-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/homeloop/4.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.availability-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.availability-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* Availability Content */
.availability-content {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream);
}

.availability-intro {
    display               : grid;
    grid-template-columns : 1fr 1fr;
    gap                   : var(--space-lg);
    margin-bottom         : var(--space-2xl);
}

.availability-intro__instructions,
.availability-intro__accessibility {
    background    : var(--white);
    border-radius : var(--radius-lg);
    padding       : var(--space-lg);
    box-shadow    : var(--shadow-soft);
}

.availability-intro__icon {
    color         : var(--forest-mid);
    margin-bottom : var(--space-md);
}

.availability-intro__instructions h2,
.availability-intro__accessibility h3 {
    color         : var(--forest-deep);
    font-size     : 1.25rem;
    margin-bottom : var(--space-sm);
}

.availability-intro__instructions p,
.availability-intro__accessibility p {
    color       : var(--charcoal);
    line-height : 1.7;
    margin      : 0;
}

.availability-intro__accessibility a {
    color       : var(--forest-mid);
    font-weight : 500;
}

.availability-intro__accessibility a:hover {
    color : var(--forest-deep);
}

/* Calendar Widget Container */
.availability-calendar {
    background    : var(--white);
    border-radius : var(--radius-lg);
    padding       : var(--space-lg);
    box-shadow    : var(--shadow-medium);
    margin-bottom : var(--space-2xl);
    min-height    : 400px;
}

/* Help Card */
.availability-help {
    background    : var(--forest-deep);
    border-radius : var(--radius-lg);
    padding       : var(--space-xl);
    text-align    : center;
    max-width     : 700px;
    margin        : 0 auto;
}

.availability-help h3 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.availability-help > p {
    color         : var(--cream);
    margin-bottom : var(--space-lg);
}

.availability-help__actions {
    display         : flex;
    gap             : var(--space-sm);
    justify-content : center;
    flex-wrap       : wrap;
}

.availability-help__actions .btn--primary {
    display     : inline-flex;
    align-items : center;
    gap         : var(--space-xs);
}

.availability-help__actions .btn--outline {
    border-color : rgba(255, 255, 255, 0.6);
    color        : var(--white);
}

.availability-help__actions .btn--outline:hover {
    background   : var(--white);
    color        : var(--forest-deep);
    border-color : var(--white);
}

/* ========================================
   FAQ PAGE STYLES
   ======================================== */
.faq-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/homeloop/6.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.faq-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.faq-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* FAQ Content */
.faq-content {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream);
}

.faq-grid {
    display               : grid;
    grid-template-columns : 1fr 1fr;
    gap                   : var(--space-lg);
    margin-bottom         : var(--space-2xl);
}

.faq-column {
    display        : flex;
    flex-direction : column;
    gap            : var(--space-sm);
}

/* FAQ Items */
.faq__item {
    background    : var(--white);
    border-radius : var(--radius-md);
    overflow      : hidden;
    box-shadow    : var(--shadow-soft);
    border        : 1px solid transparent;
    transition    : border-color var(--transition-fast);
}

.faq__item:hover {
    border-color : var(--sage-light);
}

.faq__item--open {
    border-color : var(--gold);
}

.faq__question {
    width           : 100%;
    display         : flex;
    justify-content : space-between;
    align-items     : center;
    gap             : var(--space-md);
    padding         : var(--space-md);
    background      : none;
    border          : none;
    text-align      : left;
    cursor          : pointer;
    font-family     : var(--font-display);
    font-size       : 1.0625rem;
    font-weight     : 500;
    color           : var(--forest-deep);
    transition      : color var(--transition-fast);
}

.faq__question:hover {
    color : var(--forest-mid);
}

.faq__icon {
    flex-shrink : 0;
    color       : var(--sage);
    transition  : transform var(--transition-smooth);
}

.faq__item--open .faq__icon {
    transform : rotate(180deg);
    color     : var(--gold-dark);
}

.faq__answer {
    display : none;
    padding : 0 var(--space-md) var(--space-md);
}

.faq__item--open .faq__answer {
    display : block;
}

.faq__answer p {
    color         : var(--charcoal);
    line-height   : 1.7;
    margin-bottom : var(--space-sm);
}

.faq__answer p:last-child {
    margin-bottom : 0;
}

.faq__answer a {
    color                 : var(--forest-mid);
    font-weight           : 500;
    text-decoration       : underline;
    text-underline-offset : 2px;
}

.faq__answer a:hover {
    color : var(--forest-deep);
}

/* FAQ Contact Card */
.faq-contact {
    background    : var(--forest-deep);
    border-radius : var(--radius-lg);
    padding       : var(--space-xl);
    text-align    : center;
    max-width     : 600px;
    margin        : 0 auto;
}

.faq-contact h3 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.faq-contact > p {
    color         : var(--cream);
    margin-bottom : var(--space-lg);
}

.faq-contact__actions {
    display         : flex;
    gap             : var(--space-sm);
    justify-content : center;
    flex-wrap       : wrap;
}

.faq-contact__actions .btn--primary {
    display     : inline-flex;
    align-items : center;
    gap         : var(--space-xs);
}

.faq-contact__actions .btn--outline {
    border-color : rgba(255, 255, 255, 0.6);
    color        : var(--white);
}

.faq-contact__actions .btn--outline:hover {
    background   : var(--white);
    color        : var(--forest-deep);
    border-color : var(--white);
}

/* ========================================
   LEGAL PAGES (Privacy, Terms)
   ======================================== */
.legal-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.9), rgba(26, 46, 31, 0.8)),
    url('images/homeloop/1.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.legal-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.legal-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* Legal Content */
.legal-content {
    padding    : var(--space-2xl) 0 var(--space-3xl);
    background : var(--cream);
}

.legal-document {
    background    : var(--white);
    border-radius : var(--radius-lg);
    padding       : var(--space-xl);
    box-shadow    : var(--shadow-soft);
}

.legal-intro {
    font-size      : 1.0625rem;
    color          : var(--charcoal);
    line-height    : 1.8;
    padding-bottom : var(--space-lg);
    border-bottom  : 1px solid var(--cream-dark);
    margin-bottom  : var(--space-lg);
}

.legal-document h2 {
    color         : var(--forest-deep);
    font-size     : 1.5rem;
    margin-top    : var(--space-xl);
    margin-bottom : var(--space-md);
    padding-top   : var(--space-md);
    border-top    : 1px solid var(--cream-dark);
}

.legal-document h2:first-of-type {
    margin-top  : 0;
    padding-top : 0;
    border-top  : none;
}

.legal-document h3 {
    color         : var(--forest-mid);
    font-size     : 1.125rem;
    margin-top    : var(--space-lg);
    margin-bottom : var(--space-sm);
}

.legal-document p {
    color         : var(--charcoal);
    line-height   : 1.8;
    margin-bottom : var(--space-md);
}

.legal-document ul {
    margin       : 0 0 var(--space-md) var(--space-md);
    padding-left : var(--space-md);
    list-style   : disc;
}

.legal-document li {
    color         : var(--charcoal);
    line-height   : 1.7;
    margin-bottom : var(--space-xs);
}

.legal-document li strong {
    color : var(--forest-deep);
}

.legal-document a {
    color                 : var(--forest-mid);
    text-decoration       : underline;
    text-underline-offset : 2px;
}

.legal-document a:hover {
    color : var(--forest-deep);
}

/* Contact Card at Bottom */
.legal-contact {
    margin-top    : var(--space-xl);
    padding       : var(--space-lg);
    background    : var(--cream);
    border-radius : var(--radius-md);
    text-align    : center;
}

.legal-contact h3 {
    color         : var(--forest-deep);
    margin-top    : 0;
    margin-bottom : var(--space-sm);
}

.legal-contact p {
    margin-bottom : 0;
}

/* ========================================
   RATES PAGE STYLES
   ======================================== */
.rates-hero {
    background : linear-gradient(to bottom, rgba(26, 46, 31, 0.85), rgba(26, 46, 31, 0.7)),
    url('images/homeloop/4.jpg') center/cover no-repeat;
    padding    : calc(var(--space-3xl) + 80px) 0 var(--space-2xl);
    text-align : center;
}

.rates-hero h1 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.rates-hero p {
    color       : var(--cream);
    font-family : var(--font-accent);
    font-size   : 1.25rem;
    font-style  : italic;
    max-width   : 600px;
    margin      : 0 auto;
}

/* Rates Navigation */
.rates-nav {
    background : var(--forest-deep);
    padding    : var(--space-md) 0;
    position   : sticky;
    top        : 80px;
    z-index    : 90;
}

.rates-nav .container {
    display         : flex;
    justify-content : center;
    gap             : var(--space-md);
    flex-wrap       : wrap;
}

.rates-nav__link {
    color         : var(--cream);
    font-size     : 0.9375rem;
    font-weight   : 500;
    padding       : var(--space-xs) var(--space-sm);
    border-radius : var(--radius-sm);
    transition    : all var(--transition-fast);
}

.rates-nav__link:hover {
    background : rgba(255, 255, 255, 0.1);
    color      : var(--white);
}

/* Rates Section */
.rates-section {
    padding    : var(--space-2xl) 0;
    background : var(--cream);
}

.rates-section--alt {
    background : var(--white);
}

/* Rates Table - Desktop */
.rates-table-wrapper {
    overflow-x : auto;
    margin     : 0 auto;
    max-width  : 100%;
}

.rates-table {
    width           : 100%;
    border-collapse : collapse;
    background      : var(--white);
    border-radius   : var(--radius-lg);
    overflow        : hidden;
    box-shadow      : var(--shadow-soft);
    min-width       : 900px;
    font-size       : 0.875rem;
}

.rates-table thead th {
    background    : var(--forest-deep);
    color         : var(--white);
    font-family   : var(--font-body);
    font-weight   : 600;
    font-size     : 0.8125rem;
    padding       : var(--space-sm);
    text-align    : center;
    border-bottom : 2px solid var(--forest-mid);
}

.rates-table thead th:nth-child(1),
.rates-table thead th:nth-child(5) {
    background : var(--forest-mid);
}

.rates-table thead th a {
    color                 : var(--gold-light);
    text-decoration       : underline;
    text-underline-offset : 2px;
}

.rates-table thead th a:hover {
    color : var(--white);
}

.rates-table tbody td {
    padding       : var(--space-sm);
    text-align    : center;
    border-bottom : 1px solid var(--cream-dark);
}

.rates-table tbody tr:nth-child(even) {
    background : var(--cream);
}

.rates-table tbody tr:hover {
    background : var(--sage-light);
}

.rates-table tbody td:first-child,
.rates-table tbody td:nth-child(5) {
    font-weight  : 500;
    color        : var(--forest-deep);
    background   : rgba(143, 169, 143, 0.1);
    text-align   : left;
    padding-left : var(--space-md);
}

/* Rates Mobile View */
.rates-mobile {
    display : none;
}

.rates-mobile__intro {
    text-align    : center;
    color         : var(--charcoal);
    margin-bottom : var(--space-md);
}

.rates-mobile__tabs {
    display         : flex;
    flex-wrap       : wrap;
    gap             : var(--space-xs);
    justify-content : center;
    margin-bottom   : var(--space-lg);
}

.rates-mobile__tab {
    padding       : var(--space-xs) var(--space-sm);
    background    : var(--white);
    border        : 2px solid var(--sage-light);
    border-radius : 100px;
    font-size     : 0.8125rem;
    font-weight   : 500;
    color         : var(--forest-mid);
    cursor        : pointer;
    transition    : all var(--transition-fast);
}

.rates-mobile__tab:hover {
    border-color : var(--forest-mid);
}

.rates-mobile__tab--active {
    background   : var(--forest-deep);
    border-color : var(--forest-deep);
    color        : var(--white);
}

.rates-mobile__panel {
    display       : none;
    background    : var(--white);
    border-radius : var(--radius-lg);
    overflow      : hidden;
    box-shadow    : var(--shadow-soft);
}

.rates-mobile__panel--active {
    display : block;
}

.rates-mobile__header {
    background : var(--forest-deep);
    color      : var(--white);
    padding    : var(--space-md);
    text-align : center;
}

.rates-mobile__header h3 {
    color         : var(--white);
    font-size     : 1.25rem;
    margin-bottom : var(--space-xs);
}

.rates-mobile__header h3 a {
    color : var(--gold-light);
}

.rates-mobile__header p {
    font-size : 0.875rem;
    opacity   : 0.8;
    margin    : 0;
}

.rates-mobile__list {
    padding : var(--space-sm);
}

.rates-mobile__item {
    display         : flex;
    justify-content : space-between;
    padding         : var(--space-sm);
    border-bottom   : 1px solid var(--cream-dark);
}

.rates-mobile__item:last-child {
    border-bottom : none;
}

.rates-mobile__item:nth-child(even) {
    background : var(--cream);
}

.rates-mobile__item span:first-child {
    color : var(--charcoal);
}

.rates-mobile__item span:last-child {
    font-weight : 600;
    color       : var(--forest-deep);
}

/* Short Breaks Grid */
.short-breaks-grid {
    display               : grid;
    grid-template-columns : repeat(2, 1fr);
    gap                   : var(--space-lg);
    margin-bottom         : var(--space-xl);
}

.short-breaks-card {
    background    : var(--cream);
    border-radius : var(--radius-lg);
    overflow      : hidden;
    box-shadow    : var(--shadow-soft);
    position      : relative;
}

.short-breaks-card--featured {
    border : 2px solid var(--gold);
}

.short-breaks-card--highlight {
    background : var(--forest-deep);
    color      : var(--white);
}

.short-breaks-card__badge {
    position       : absolute;
    top            : var(--space-sm);
    right          : var(--space-sm);
    background     : var(--gold);
    color          : var(--forest-deep);
    font-size      : 0.75rem;
    font-weight    : 600;
    padding        : 4px 12px;
    border-radius  : 100px;
    text-transform : uppercase;
    letter-spacing : 0.05em;
}

.short-breaks-card__header {
    padding       : var(--space-md);
    background    : var(--white);
    border-bottom : 1px solid var(--cream-dark);
}

.short-breaks-card--highlight .short-breaks-card__header {
    background    : var(--forest-mid);
    border-bottom : none;
}

.short-breaks-card__header h3 {
    color         : var(--forest-deep);
    font-size     : 1.25rem;
    margin-bottom : var(--space-xs);
}

.short-breaks-card--highlight .short-breaks-card__header h3 {
    color : var(--white);
}

.short-breaks-card__header p {
    font-size : 0.9375rem;
    color     : var(--charcoal);
    margin    : 0;
}

.short-breaks-card--highlight .short-breaks-card__header p {
    color : var(--cream);
}

.short-breaks-card__note {
    font-size : 0.8125rem;
    opacity   : 0.7;
}

.short-breaks-card__content {
    padding : var(--space-md);
}

.short-breaks-card__content > p {
    color         : var(--charcoal);
    margin-bottom : var(--space-sm);
}

.short-breaks-card--highlight .short-breaks-card__content > p {
    color : var(--cream);
}

.short-breaks-card__promo {
    font-family   : var(--font-display);
    font-size     : 1.5rem;
    color         : var(--gold) !important;
    margin-bottom : var(--space-sm);
}

.short-breaks-card__split {
    display               : grid;
    grid-template-columns : 1fr 1fr;
    gap                   : var(--space-md);
}

.short-breaks-card__split h4 {
    font-size     : 0.9375rem;
    color         : var(--forest-deep);
    margin-bottom : var(--space-xs);
}

/* Short Breaks List */
.short-breaks-list {
    list-style : none;
    padding    : 0;
    margin     : 0;
}

.short-breaks-list li {
    padding        : var(--space-sm) 0;
    border-bottom  : 1px solid var(--cream-dark);
    display        : flex;
    flex-direction : column;
    gap            : 2px;
}

.short-breaks-list li:last-child {
    border-bottom : none;
}

.short-breaks-list__cottage {
    font-weight : 600;
    color       : var(--forest-deep);
}

.short-breaks-list__price {
    color       : var(--gold-dark);
    font-weight : 500;
}

.short-breaks-list__detail {
    font-size : 0.8125rem;
    color     : var(--charcoal-light);
}

.short-breaks-list--compact li {
    padding        : var(--space-xs) 0;
    flex-direction : row;
}

.short-breaks-list--compact li::before {
    content      : '•';
    color        : var(--gold-dark);
    margin-right : var(--space-xs);
}

/* Short Breaks Info */
.short-breaks-info {
    background    : var(--cream);
    border-radius : var(--radius-lg);
    padding       : var(--space-lg);
    max-width     : 600px;
    margin        : 0 auto;
    text-align    : center;
}

.short-breaks-info h3 {
    color         : var(--forest-deep);
    margin-bottom : var(--space-sm);
}

.short-breaks-info p {
    color         : var(--charcoal);
    margin-bottom : var(--space-sm);
}

.short-breaks-info ul {
    list-style      : none;
    padding         : 0;
    margin          : 0;
    display         : flex;
    flex-wrap       : wrap;
    justify-content : center;
    gap             : var(--space-sm);
}

.short-breaks-info li {
    background    : var(--white);
    padding       : var(--space-xs) var(--space-md);
    border-radius : 100px;
    font-size     : 0.875rem;
    color         : var(--forest-mid);
}

/* Rates Info Grid */
.rates-info-grid {
    display               : grid;
    grid-template-columns : repeat(3, 1fr);
    gap                   : var(--space-lg);
    margin-bottom         : var(--space-2xl);
}

.rates-info-card {
    background    : var(--white);
    border-radius : var(--radius-lg);
    padding       : var(--space-lg);
    text-align    : center;
    box-shadow    : var(--shadow-soft);
}

.rates-info-card__icon {
    color         : var(--forest-mid);
    margin-bottom : var(--space-md);
}

.rates-info-card h3 {
    color         : var(--forest-deep);
    font-size     : 1.125rem;
    margin-bottom : var(--space-sm);
}

.rates-info-card p {
    color         : var(--charcoal);
    font-size     : 0.9375rem;
    line-height   : 1.6;
    margin-bottom : var(--space-md);
}

.rates-info-card p:last-child {
    margin-bottom : 0;
}

/* Rates CTA */
.rates-cta {
    background    : var(--forest-deep);
    border-radius : var(--radius-lg);
    padding       : var(--space-xl);
    text-align    : center;
    max-width     : 700px;
    margin        : 0 auto;
}

.rates-cta h3 {
    color         : var(--white);
    margin-bottom : var(--space-sm);
}

.rates-cta > p {
    color         : var(--cream);
    margin-bottom : var(--space-lg);
}

.rates-cta__buttons {
    display         : flex;
    gap             : var(--space-sm);
    justify-content : center;
    flex-wrap       : wrap;
}

.rates-cta__buttons .btn--outline {
    border-color : rgba(255, 255, 255, 0.6);
    color        : var(--white);
}

.rates-cta__buttons .btn--outline:hover {
    background   : var(--white);
    color        : var(--forest-deep);
    border-color : var(--white);
}

/* ========================================
   LEGAL PAGES - Additional Styles for Terms
   ======================================== */

/* Important Notice Box */
.legal-notice {
    background    : var(--forest-deep);
    color         : var(--white);
    padding       : var(--space-lg);
    border-radius : var(--radius-md);
    margin-bottom : var(--space-xl);
}

.legal-notice p {
    color       : var(--cream);
    margin      : 0;
    line-height : 1.7;
}

.legal-notice strong {
    color : var(--gold-light);
}

/* Numbered List for Terms */
.legal-list {
    list-style    : none;
    counter-reset : terms-counter;
    padding       : 0;
    margin        : 0 0 var(--space-lg) 0;
}

.legal-list > li {
    counter-increment : terms-counter;
    position          : relative;
    padding-left      : 3rem;
    margin-bottom     : var(--space-lg);
    padding-bottom    : var(--space-lg);
    border-bottom     : 1px solid var(--cream-dark);
}

.legal-list > li:last-child {
    border-bottom  : none;
    margin-bottom  : 0;
    padding-bottom : 0;
}

.legal-list > li::before {
    content         : counter(terms-counter);
    position        : absolute;
    left            : 0;
    top             : 0;
    width           : 2rem;
    height          : 2rem;
    background      : var(--forest-deep);
    color           : var(--white);
    border-radius   : 50%;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 0.875rem;
    font-weight     : 600;
}

.legal-list > li p {
    color         : var(--charcoal);
    line-height   : 1.8;
    margin-bottom : var(--space-sm);
}

.legal-list > li p:last-child {
    margin-bottom : 0;
}

.legal-list > li ul {
    margin       : var(--space-sm) 0 var(--space-sm) var(--space-md);
    padding-left : var(--space-md);
    list-style   : disc;
}

.legal-list > li ul li {
    color         : var(--charcoal);
    line-height   : 1.7;
    margin-bottom : var(--space-xs);
}

/* Highlight Boxes within Terms */
.legal-highlight {
    background    : var(--cream);
    border-left   : 4px solid var(--gold);
    padding       : var(--space-md);
    margin        : var(--space-md) 0;
    border-radius : 0 var(--radius-md) var(--radius-md) 0;
}

.legal-highlight h4 {
    color         : var(--forest-deep);
    font-family   : var(--font-display);
    font-size     : 1rem;
    margin-bottom : var(--space-sm);
}

.legal-highlight p {
    font-size     : 0.9375rem;
    margin-bottom : var(--space-sm);
}

.legal-highlight p:last-child {
    margin-bottom : 0;
}

.legal-highlight ul {
    margin       : var(--space-sm) 0 var(--space-sm) var(--space-md);
    padding-left : var(--space-md);
    list-style   : disc;
}

.legal-highlight ul li {
    font-size     : 0.9375rem;
    line-height   : 1.6;
    margin-bottom : var(--space-xs);
}

.legal-highlight--warning {
    border-left-color : #c94a4a;
    background        : #fef5f5;
}

.legal-highlight--warning h4 {
    color : #8b3232;
}

/* ========================================
   RESPONSIVE - TABLET (max-width: 1200px)
   ======================================== */
@media (max-width : 1200px) {
    .cottages__grid {
        grid-template-columns : repeat(2, 1fr);
    }

    .gallery__grid {
        grid-template-columns : repeat(3, 1fr);
    }

    .intro__grid {
        grid-template-columns : 1fr;
        gap                   : var(--space-xl);
    }

    .highlights-card {
        position  : static;
        max-width : 500px;
        margin    : 0 auto;
    }

    .cottage-about__grid {
        grid-template-columns : 1fr;
        gap                   : var(--space-xl);
    }

    .cottage-features {
        position  : static;
        max-width : 500px;
        margin    : 0 auto;
    }

    .other-cottages__grid {
        grid-template-columns : repeat(2, 1fr);
    }
}

/* ========================================
   RESPONSIVE - TABLET (max-width: 1024px)
   ======================================== */
@media (max-width : 1024px) {
    .nav__list {
        display : none;
    }

    .nav--active .nav__list {
        display : flex;
    }

    .menu-toggle {
        display : flex;
    }

    .header__phone {
        display : none;
    }

    .footer__main {
        grid-template-columns : 1fr 1fr;
    }

    .footer__section:last-child {
        grid-column : span 2;
    }

    .testimonials__grid {
        grid-template-columns : 1fr;
    }

    /* Mobile Navigation Overlay - FIX: proper height and z-index */
    .nav {
        position        : fixed;
        top             : 0;
        left            : 0;
        width           : 100%;
        height          : 100dvh;
        background      : var(--forest-deep);
        flex-direction  : column;
        justify-content : center;
        align-items     : center;
        opacity         : 0;
        visibility      : hidden;
        transition      : all var(--transition-smooth);
        z-index         : 1001;
    }

    .nav--active {
        opacity    : 1;
        visibility : visible;
    }

    .nav__list {
        display        : flex;
        flex-direction : column;
        align-items    : center;
        gap            : var(--space-md);
    }

    .nav__link {
        font-size : 1.25rem;
        color     : var(--white);
    }

    .header--solid .nav--active .nav__link,
    .nav--active .nav__link {
        color : var(--white);
    }

    .header--solid .nav--active .nav__link:hover,
    .nav--active .nav__link:hover {
        color : var(--gold-light);
    }

    .header__phones {
        display : none;
    }

    .nav.nav--active .header__phones {
        display     : flex;
        align-items : center;
        margin-top  : var(--space-xl);
    }

    .nav.nav--active .header__phones .header__phone {
        font-size : 1.25rem;
        color     : var(--white);
    }

    .nav.nav--active .header__phone {
        display    : block;
        margin-top : var(--space-xl);
        font-size  : 1.25rem;
        color      : var(--white);
    }

    .compare-table-wrapper {
        display : none;
    }

    .compare-cards {
        display : flex;
    }

    .compare-filters {
        display         : flex;
        flex-wrap       : wrap;
        justify-content : center;
        gap             : var(--space-sm);
        margin-bottom   : var(--space-xl);
        padding         : 0 var(--space-md);
    }

    .contact-grid {
        grid-template-columns : 1fr;
    }

    .heritage-section {
        grid-template-columns : 1fr;
    }

    .heritage-section__content {
        padding : var(--space-lg);
    }

    .heritage-list {
        column-count : 1;
    }

    .dining-grid {
        grid-template-columns : 1fr;
    }

    .dining-list {
        padding : var(--space-lg);
    }

    .dining-list ul {
        column-count : 1;
    }

    .activities-layout {
        grid-template-columns : 1fr;
    }

    .activities-image {
        order : -1;
    }

    .dogs-gallery__grid {
        grid-template-columns : repeat(2, 1fr);
    }

    .dogs-explore__grid {
        grid-template-columns : 1fr;
    }

    .dogs-cottages__grid {
        grid-template-columns : repeat(2, 1fr);
    }

    .rates-table-wrapper {
        display : none;
    }

    .rates-mobile {
        display : block;
    }

    .short-breaks-grid {
        grid-template-columns : 1fr;
    }

    .rates-info-grid {
        grid-template-columns : 1fr;
    }
}

/* ========================================
   RESPONSIVE - MOBILE (max-width: 768px)
   Consolidated from duplicate blocks
   ======================================== */
@media (max-width : 768px) {
    :root {
        --space-lg  : 2rem;
        --space-xl  : 3rem;
        --space-2xl : 4rem;
        --space-3xl : 6rem;
    }

    .hero__content {
        padding : var(--space-lg);
    }

    .hero__buttons {
        flex-direction : column;
        align-items    : center;
    }

    .hero__buttons .btn {
        width     : 100%;
        max-width : 280px;
    }

    /* FIX: Hero dots centered on mobile */
    .hero__controls {
        bottom    : var(--space-lg);
        right     : auto;
        left      : 50%;
        transform : translateX(-50%);
    }

    /* FIX: Hide scroll indicator on mobile */
    .hero__scroll {
        display : none;
    }

    .offer-banner__inner {
        flex-direction : column;
        text-align     : center;
    }

    .gallery__grid {
        grid-template-columns : repeat(2, 1fr);
        grid-auto-rows        : 150px;
    }

    .gallery__item--featured {
        grid-column : span 2;
        grid-row    : span 1;
    }

    .gallery__item--wide,
    .gallery__item--tall {
        grid-column : span 1;
        grid-row    : span 1;
    }

    .cottages__grid {
        grid-template-columns : 1fr;
        max-width             : 400px;
    }

    .testimonial-card {
        padding : var(--space-lg);
    }

    .testimonial-card__text {
        font-size : 1.125rem;
    }

    .footer__main {
        grid-template-columns : 1fr;
        gap                   : var(--space-lg);
    }

    .footer__section:last-child {
        grid-column : span 1;
    }

    .awards__inner {
        gap : var(--space-lg);
    }

    .awards__item {
        height : 60px;
    }

    .lightbox__nav {
        width  : 44px;
        height : 44px;
    }

    .lightbox__nav--prev {
        left : var(--space-sm);
    }

    .lightbox__nav--next {
        right : var(--space-sm);
    }

    .hero--cottage {
        min-height : 60vh;
    }

    .cottage-quick-info__grid {
        gap : var(--space-md);
    }

    .cottage-quick-info__item {
        min-width : 80px;
    }

    .cottage-gallery {
        grid-template-columns : repeat(2, 1fr);
    }

    .other-cottages__grid {
        grid-template-columns : 1fr;
        max-width             : 400px;
    }

    .breadcrumb {
        font-size : 0.75rem;
    }

    .about-intro {
        grid-template-columns : 1fr;
        text-align            : center;
    }

    .about-intro__image {
        order : -1;
    }

    .about-intro__image img {
        max-width : 350px;
        margin    : 0 auto;
    }

    .about-story h2,
    .about-farm h2,
    .about-commitment h2 {
        font-size : 1.5rem;
    }

    .specials-grid {
        grid-template-columns : 1fr;
    }

    .specials-empty__actions {
        flex-direction : column;
    }

    .specials-empty__actions .btn {
        width : 100%;
    }

    .location-nav {
        position : static;
    }

    .location-nav .container {
        gap : var(--space-sm);
    }

    .location-nav__link {
        font-size : 0.8125rem;
        padding   : var(--space-xs);
    }

    .attractions-grid {
        grid-template-columns : 1fr;
    }

    .dogs-gallery__grid {
        grid-template-columns : repeat(2, 1fr);
        gap                   : var(--space-sm);
    }

    .dogs-cottages__grid {
        grid-template-columns : 1fr;
    }

    .dogs-welcome__card {
        padding : var(--space-lg);
    }

    .accessibility-cottages__grid {
        grid-template-columns : 1fr;
        max-width             : 350px;
        margin                : 0 auto;
    }

    .accessibility-card {
        padding : var(--space-lg);
    }

    .accessibility-card__actions {
        flex-direction : column;
    }

    .accessibility-card__actions .btn {
        width : 100%;
    }

    .availability-intro {
        grid-template-columns : 1fr;
    }

    .availability-calendar {
        padding : var(--space-md);
    }

    .availability-help {
        padding : var(--space-lg);
    }

    .availability-help__actions {
        flex-direction : column;
    }

    .availability-help__actions .btn {
        width : 100%;
    }

    .faq-grid {
        grid-template-columns : 1fr;
    }

    .faq__question {
        font-size : 1rem;
        padding   : var(--space-sm) var(--space-md);
    }

    .faq-contact {
        padding : var(--space-lg);
    }

    .faq-contact__actions {
        flex-direction : column;
    }

    .faq-contact__actions .btn {
        width : 100%;
    }

    .legal-document {
        padding : var(--space-lg);
    }

    .legal-document h2 {
        font-size : 1.25rem;
    }

    .legal-document h3 {
        font-size : 1rem;
    }

    .rates-nav {
        position : static;
    }

    .rates-nav .container {
        gap : var(--space-xs);
    }

    .rates-nav__link {
        font-size : 0.8125rem;
        padding   : var(--space-xs);
    }

    .short-breaks-card__split {
        grid-template-columns : 1fr;
    }

    .short-breaks-info ul {
        flex-direction : column;
    }

    .rates-cta {
        padding : var(--space-lg);
    }

    .rates-cta__buttons {
        flex-direction : column;
    }

    .rates-cta__buttons .btn {
        width : 100%;
    }

    .legal-list > li {
        padding-left : 2.5rem;
    }

    .legal-list > li::before {
        width     : 1.75rem;
        height    : 1.75rem;
        font-size : 0.75rem;
    }

    .legal-highlight {
        padding : var(--space-sm);
    }

}

/* ========================================
   RESPONSIVE - SMALL MOBILE (max-width: 480px)
   Consolidated from duplicate blocks
   ======================================== */
@media (max-width : 480px) {
    .header__inner {
        padding : var(--space-sm) var(--space-md);
    }

    .logo__text {
        font-size : 1.125rem;
    }

    .logo__text span {
        display : none;
    }

    .hero {
        min-height : 100svh;
    }

    .hero__badge {
        font-size : 0.625rem;
        padding   : 6px var(--space-sm);
    }

    h1 {
        font-size : 2rem;
    }

    h2 {
        font-size : 1.5rem;
    }

    .gallery__grid {
        gap : var(--space-xs);
    }

    .cottage-card__content {
        padding : var(--space-sm);
    }

    .cottage-card__name {
        font-size : 1.25rem;
    }

    .cottage-quick-info__grid {
        display               : grid;
        grid-template-columns : repeat(2, 1fr);
        gap                   : var(--space-sm);
    }

    .cottage-gallery {
        grid-template-columns : 1fr;
    }

    .compare-card__stats {
        grid-template-columns : repeat(2, 1fr);
    }

    .compare-card__four_stats {
        grid-template-columns : repeat(2, 1fr);
    }

    .compare-card__stat-value {
        font-size: 1rem;
    }

    .compare-card__stat:last-child:nth-child(odd) {
        grid-column: span 2;
    }
}

/* ========================================
   PREFERS REDUCED MOTION
   ======================================== */
@media (prefers-reduced-motion : reduce) {
    *,
    *::before,
    *::after {
        animation-duration        : 0.01ms !important;
        animation-iteration-count : 1 !important;
        transition-duration       : 0.01ms !important;
    }

    .hero__slide {
        transition : none;
    }
}

/* ========================================
   PRINT STYLES
   ======================================== */
@media print {
    .header,
    .hero__controls,
    .hero__scroll,
    .lightbox,
    .footer {
        display : none;
    }

    body {
        font-size  : 12pt;
        color      : black;
        background : white;
    }
}
