:root {
    --content-padding: 0px;
    --tc-navy: #183744;
    --tc-deep: #102b36;
    --tc-sea: #7d9ca7;
    --tc-mist: #e9f0f0;
    --tc-cream: #f7f5ef;
    --tc-ink: #263f46;
    --tc-white: #fff;
    --header-background: var(--tc-white);
    --nav-text: var(--tc-ink);
    --nav-active: var(--tc-navy);
    --nav-hover: var(--tc-navy);
    --nav-arrow: var(--tc-ink);
    --nav-arrow-hover: var(--tc-navy);
    --dropdown-background: var(--tc-white);
    --dropdown-text: var(--tc-ink);
    --dropdown-hover-background: var(--tc-mist);
    --dropdown-hover-text: var(--tc-navy);
    --contact-background: var(--tc-navy);
    --contact-text: var(--tc-white);
    --contact-hover-background: var(--tc-deep);
    --contact-hover-text: var(--tc-white);
    --header-min-height: 108px;
    --header-padding-x: clamp(1.2rem, 4vw, 4rem);
    --header-gap: 1.5rem;
    --nav-gap: clamp(1rem, 2vw, 2.3rem);
    --nav-font-size: .9rem;
    --nav-font-weight: 600;
    --logo-max-width: 170px;
    --logo-max-height: 87px;
    --footer-background: var(--tc-deep);
    --footer-link-hover: #b8d3d7;
    --footer-credit-link: #b8d3d7;
    --footer-heading-size: 1.2rem;
}

html { scroll-behavior: smooth; }
body { color: var(--tc-ink); font: 400 1rem/1.7 Arial, Helvetica, sans-serif; }
*, *::before, *::after { box-sizing: border-box; }
.content { padding: 0; }
.page-heading { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; z-index: 2000; left: 1rem; top: -5rem; padding: .6rem 1rem; background: var(--tc-navy); color: var(--tc-white); }
.skip-link:focus { top: 1rem; }
.site-header { position: relative; z-index: 30; box-shadow: 0 1px 8px #102b3612; }
.main-navigation > ul { text-transform: uppercase; letter-spacing: .055em; }
.header-actions .button { border-radius: 0; padding: .8rem 1.4rem; background: #704c37; color: var(--tc-white); text-transform: uppercase; letter-spacing: .08em; }
.header-actions .button:hover { background: #543624; }
.header-logo img { object-fit: contain; }
.nxb-banner { --nxb-banner-accent: var(--tc-navy); }
.nxb-banner__title, .nxb-text-block__heading, .nxb-simple-pods__heading, .footer-heading { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; }
.nxb-banner__title { line-height: 1.15; }
.nxb-banner__subtitle { font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.nxb-banner__button, .nxb-text-block__button, .nxb-simple-pods__link { border-radius: 0; background: var(--tc-navy); border-color: var(--tc-navy); color: var(--tc-white); font-size: .85rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.nxb-banner__button:hover, .nxb-text-block__button:hover, .nxb-simple-pods__link:hover { background: var(--tc-deep); border-color: var(--tc-deep); filter: none; }
.nxb-banner__button:focus-visible, .nxb-text-block__button:focus-visible, .nxb-simple-pods__link:focus-visible { outline: 3px solid var(--tc-sea); outline-offset: 3px; }

.tc-hero { min-height: min(760px, 78svh); }
.tc-hero .nxb-banner__layout { min-height: inherit; }
.tc-hero .nxb-banner__content { padding: clamp(2rem, 7vw, 8rem); }
.tc-hero .nxb-banner__content-inner { max-width: 39rem; }
.tc-hero .nxb-banner__title { font-size: clamp(3.1rem, 5.8vw, 6.1rem); }
.tc-hero .nxb-banner__subtitle { color: #f0f5f3; font-size: .9rem; }
.tc-hero .nxb-banner__button { background: var(--tc-white); border-color: var(--tc-white); color: var(--tc-navy); }
.tc-hero .nxb-banner__button:hover { background: var(--tc-mist); border-color: var(--tc-mist); }
.tc-hero .nxb-banner__image { object-position: 50% 57%; }

.tc-welcome, .tc-destination { max-width: 1440px; margin: clamp(3rem, 6vw, 6.5rem) auto; }
.tc-welcome { background: var(--tc-white); }
.tc-welcome .nxb-banner__layout, .tc-destination .nxb-banner__layout { min-height: 34rem; }
.tc-welcome .nxb-banner__content, .tc-destination .nxb-banner__content { padding: clamp(2rem, 5vw, 5.5rem); }
.tc-welcome .nxb-banner__media, .tc-destination .nxb-banner__media { min-height: 34rem; }
.tc-welcome .nxb-banner__image, .tc-destination .nxb-banner__image { width: 100%; height: 100%; max-height: 38rem; object-fit: cover; }
.tc-welcome .nxb-banner__title, .tc-destination .nxb-banner__title { font-size: clamp(2.5rem, 3.7vw, 4.1rem); color: var(--tc-navy); }
.tc-welcome .nxb-banner__subtitle, .tc-destination .nxb-banner__subtitle { color: #627e85; font-size: .75rem; }
.tc-welcome .nxb-banner__intro, .tc-destination .nxb-banner__intro { max-width: 37rem; }
.tc-welcome .nxb-banner__button, .tc-destination .nxb-banner__button, .tc-booking-band .nxb-banner__button { background: #704c37; border-color: #704c37; }
.tc-welcome .nxb-banner__button:hover, .tc-destination .nxb-banner__button:hover, .tc-booking-band .nxb-banner__button:hover { background: #543624; border-color: #543624; }
.tc-destination { background: var(--tc-cream); }

.tc-benefits { width: 100%; max-width: none; background: var(--tc-mist); padding: 2.2rem max(1.5rem, calc((100vw - 1340px)/2)); }
.tc-benefits .nxb-simple-pods__grid, .tc-property-cards .nxb-simple-pods__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tc-benefits .nxb-simple-pods__grid { gap: 0; }
.tc-benefits .nxb-simple-pods__card { border: 0; border-right: 1px solid #beced0; border-radius: 0; box-shadow: none; background: transparent; text-align: center; }
.tc-benefits .nxb-simple-pods__card:last-child { border-right: 0; }
.tc-benefits .nxb-simple-pods__content { align-items: center; justify-content: center; padding: .6rem 1.2rem; }
.tc-benefits .nxb-simple-pods__content::before { content: ''; display: block; width: 3rem; height: 3rem; margin: 0 auto .7rem; background: center / contain no-repeat url('/assets/leaf.svg'); }
.tc-benefits .nxb-simple-pods__card:nth-child(2) .nxb-simple-pods__content::before { background-image: url('/assets/paw.svg'); }
.tc-benefits .nxb-simple-pods__card:nth-child(3) .nxb-simple-pods__content::before { background-image: url('/assets/sun.svg'); }
.tc-benefits .nxb-simple-pods__card:nth-child(4) .nxb-simple-pods__content::before { background-image: url('/assets/heart.svg'); }
.tc-benefits .nxb-simple-pods__heading { color: var(--tc-navy); font-size: 1.25rem; }
.tc-benefits .nxb-simple-pods__text { color: var(--tc-ink); font-size: .86rem; }

.tc-cottages-heading { padding: 4.8rem 1rem 1.3rem; }
#cottages, #availability { scroll-margin-top: 7rem; }
.tc-cottages-heading .nxb-text-block__intro { margin: 0; }
.tc-cottages-heading .nxb-text-block__heading, .tc-section-heading .nxb-text-block__heading { color: var(--tc-navy); }
.tc-cottages-heading .nxb-text-block__content { max-width: 42rem; margin: 1rem auto 0; text-align: center; }
.nxb-text-block__secondary-heading { color: var(--tc-sea); }
.tc-property-cards { width: min(100% - 3rem, 1340px); margin: 0 auto 5rem; }
.tc-property-cards .nxb-simple-pods__grid { gap: 1.25rem; }
.tc-property-cards .nxb-simple-pods__card { border: 0; border-radius: 0; background: var(--tc-cream); box-shadow: none; }
.tc-property-cards .nxb-simple-pods__media { aspect-ratio: 1 / 1; }
.tc-property-cards .nxb-simple-pods__content { align-items: center; text-align: center; padding: 1.55rem; }
.tc-property-cards .nxb-simple-pods__heading { color: var(--tc-navy); font-size: 1.55rem; }
.tc-property-cards .nxb-simple-pods__text { min-height: 7rem; font-size: .9rem; }
.tc-property-cards .nxb-simple-pods__link { margin-top: 1rem; }
.tc-property-cards .nxb-simple-pods__link { background: #4e8ca5; border-color: #4e8ca5; }
.tc-property-cards .nxb-simple-pods__link:hover { background: var(--tc-navy); border-color: var(--tc-navy); }

.tc-testimonial { width: 100%; max-width: none; padding: 4.8rem 1.5rem; background: var(--tc-navy); }
.tc-testimonial .nxb-simple-pods__grid { width: min(100%, 850px); margin: auto; }
.tc-testimonial .nxb-simple-pods__card { border: 0; border-radius: 0; box-shadow: none; background: transparent; text-align: center; color: var(--tc-white); }
.tc-testimonial .nxb-simple-pods__content { align-items: center; }
.tc-testimonial .nxb-simple-pods__heading { font-size: clamp(1.8rem, 3vw, 2.8rem); }
.tc-testimonial .nxb-simple-pods__text { color: var(--tc-white); font-size: 1.12rem; }
.tc-section-heading { padding: 4rem 1rem 1rem; }
.tc-home-gallery, .tc-property-gallery, .tc-editorial-gallery { width: min(100% - 3rem, 1340px); margin: 1rem auto 5rem; }
.tc-home-gallery .nxb-gallery__image, .tc-property-gallery .nxb-gallery__image { aspect-ratio: 4 / 3; }
.tc-booking-band { min-height: 27rem; }
.tc-booking-band .nxb-banner__title { font-size: clamp(2.5rem, 4vw, 4rem); }
.tc-booking-calendar { width: min(100% - 3rem, 1100px); margin: 3rem auto 5rem; }

.tc-page-hero, .tc-property-hero { min-height: 27rem; }
.tc-page-hero .nxb-banner__layout, .tc-property-hero .nxb-banner__layout { min-height: 27rem; }
.tc-page-hero .nxb-banner__title, .tc-property-hero .nxb-banner__title { font-size: clamp(3rem, 5vw, 5rem); }
.tc-property-overview, .tc-property-about, .tc-property-facilities, .tc-editorial-copy, .tc-policy { padding: 3.5rem 1.5rem; }
.tc-property-features { padding: 3rem 1.5rem; --text-block-background: var(--tc-mist); }
.tc-property-features ul, .tc-property-facilities ul { columns: 2; column-gap: 3rem; padding-left: 1.2rem; }
.tc-property-features li, .tc-property-facilities li { break-inside: avoid; margin-bottom: .8rem; }
.tc-policy .nxb-text-block__inner { max-width: 850px; }
.tc-editorial-copy .nxb-text-block__inner { max-width: 1050px; }
.tc-editorial-section { padding: 3rem 1.5rem; }
.tc-editorial-section .nxb-text-block__inner { max-width: 1050px; }
.tc-split-copy, .tc-split-gallery { display: inline-block; width: 50%; vertical-align: middle; }
.tc-split-copy { padding: 2.5rem clamp(1.5rem, 5vw, 5rem); }
.tc-split-copy .nxb-text-block__inner { width: 100%; }
.tc-split-gallery { padding: 2rem; margin: 0; }
.tc-split-gallery .nxb-gallery__viewport { gap: .65rem; }
.tc-guest-quotes { width: 100%; max-width: none; padding: 3.5rem max(1.5rem, calc((100vw - 1250px)/2)); background: var(--tc-mist); }
.tc-guest-quotes .nxb-simple-pods__card { border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.tc-guest-quotes .nxb-simple-pods__heading { font-size: 1.15rem; }
.tc-blog-list { width: min(100% - 3rem, 1150px); margin: 2rem auto 5rem; }
.tc-blog-list h2, .tc-blog-list h3 { font-family: 'Playfair Display', Georgia, serif; color: var(--tc-navy); }
.tc-blog-list__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1.5rem; }
.tc-blog-list__card { padding: 1.5rem; background: var(--tc-cream); }
.tc-blog-list__card time, .tc-blog-post-date { color: #54717c; font-size: .85rem; }
.tc-blog-list__card a { color: inherit; }
.tc-blog-post-title { position: static; width: auto; height: auto; margin: 3rem auto 0; clip: auto; overflow: visible; max-width: 72rem; padding: 0 1.5rem; font: 500 clamp(2.5rem, 5vw, 4rem)/1.2 'Playfair Display', Georgia, serif; color: var(--tc-navy); }
.tc-blog-post-date { max-width: 72rem; margin: .5rem auto 2rem; padding: 0 1.5rem; }

.site-footer { color: var(--tc-white); }
.footer-inner { max-width: 1340px; padding: 4rem 1.5rem 1.5rem; }
.footer-logo img { max-width: 170px; background: var(--tc-white); padding: .35rem; }
.footer-locations { max-width: 30rem; margin: 2rem 0; }
.footer-locations .nxb-simple-pods__card { border: 0; box-shadow: none; background: transparent; color: var(--tc-white); }
.footer-locations .nxb-simple-pods__content { padding: 0; }
.footer-locations .nxb-simple-pods__text { color: var(--tc-white); }
.footer-locations .nxb-simple-pods__heading { font-size: 1.4rem; }
.footer-services-navigation ul { grid-template-columns: repeat(4, max-content); }
.footer-services-navigation a { font-size: .9rem; }
.footer-bottom { margin-top: 3rem; }
.footer-navigation ul { flex-wrap: wrap; gap: .8rem 1.5rem; }
.footer-navigation li + li { margin-left: 0; }
.footer-navigation, .footer-navigation a, .footer-navigation button { font-size: .82rem; }

@media (max-width: 1100px) {
    .site-header { grid-template-columns: minmax(140px, 1fr) auto minmax(140px, 1fr); }
    .tc-benefits .nxb-simple-pods__grid, .tc-property-cards .nxb-simple-pods__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tc-benefits .nxb-simple-pods__card:nth-child(2) { border-right: 0; }
    .tc-benefits .nxb-simple-pods__card:nth-child(-n+2) { border-bottom: 1px solid #beced0; }
}
@media (max-width: 700px) {
    :root { --header-min-height: 78px; --logo-max-width: 125px; --logo-max-height: 66px; }
    .site-header { flex-wrap: nowrap; align-items: center; padding: .7rem 1rem; gap: .5rem; --mobile-divider: #d5e2e4; }
    .site-header .header-logo img { max-width: 100px; max-height: 56px; }
    .header-actions { margin-left: auto; }
    .header-actions .button { min-width: 0; min-height: 38px; padding: .6rem .55rem; font-size: .62rem; white-space: nowrap; }
    .header-menu-toggle { flex: none; width: 40px; height: 40px; }
    .site-header .main-navigation { position: absolute; top: 100%; left: 0; width: 100%; padding: 0 1rem 1rem; background: var(--tc-white); box-shadow: 0 12px 20px #102b3626; }
    .tc-hero { min-height: 68svh; }
    .tc-hero .nxb-banner__title { font-size: clamp(2.7rem, 10vw, 4.2rem); }
    .tc-hero .nxb-banner__content { padding: 2rem 1.3rem; }
    .tc-welcome, .tc-destination { margin: 2rem auto; }
    .tc-welcome .nxb-banner__media, .tc-destination .nxb-banner__media { min-height: 18rem; }
    .tc-benefits .nxb-simple-pods__grid, .tc-property-cards .nxb-simple-pods__grid { grid-template-columns: 1fr; }
    .tc-benefits .nxb-simple-pods__card { border-right: 0; border-bottom: 1px solid #beced0; }
    .tc-benefits .nxb-simple-pods__card:last-child { border-bottom: 0; }
    .tc-property-cards { width: min(100% - 2rem, 1340px); }
    .tc-property-cards .nxb-simple-pods__text { min-height: 0; }
    .tc-property-features ul, .tc-property-facilities ul { columns: 1; }
    .tc-split-copy, .tc-split-gallery { display: block; width: 100%; }
    .tc-split-copy { padding: 2rem 1rem; }
    .tc-split-gallery { padding: 0 1rem 2rem; }
    .footer-services-navigation ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
