:root { --ink: #173b38; --cream: #f2eee5; --coral: #e7684f; --sage: #aab7a4; --line: rgba(23, 59, 56, .25); --serif: 'Playfair Display', Georgia, serif; --sans: 'Space Grotesk', sans-serif; --mono: 'DM Mono', monospace; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
.site-header { display: flex; align-items: center; justify-content: space-between; padding: 28px 5vw; position: absolute; width: 100%; z-index: 2; }
.wordmark { font: 600 1.35rem var(--serif); letter-spacing: -.08em; }.wordmark span { color: var(--coral); }
nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 48px); font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; }.nav-cta { border-bottom: 1px solid var(--ink); padding-bottom: 5px; }.nav-cta span, .text-link span, button span { color: var(--coral); margin-left: 8px; }
.hero { min-height: 790px; display: grid; grid-template-columns: 1fr minmax(340px, 48vw); gap: 5vw; align-items: center; padding: 130px 5vw 80px; position: relative; overflow: hidden; }.hero-copy { max-width: 520px; z-index: 1; }.eyebrow, .section-kicker { font: .65rem var(--mono); letter-spacing: .08em; text-transform: uppercase; }.eyebrow { margin-bottom: 35px; }.hero h1, h2 { font: 500 clamp(3.4rem, 7vw, 7.6rem)/.92 var(--serif); letter-spacing: -.06em; margin: 0; }.hero h1 em, h2 em { color: var(--coral); font-style: italic; }.hero-intro { font-size: 1.05rem; line-height: 1.55; max-width: 380px; margin: 35px 0 38px; }.text-link { font-size: .75rem; text-transform: uppercase; letter-spacing: .09em; border-bottom: 1px solid var(--ink); padding-bottom: 8px; display: inline-block; }.hero-image { height: 620px; }.image-placeholder { background: linear-gradient(140deg, #b8c4b0 0%, #d7ceb7 50%, #c9785d 100%); position: relative; overflow: hidden; }.image-placeholder::before { content: ''; position: absolute; inset: 16% -10% -18% 12%; background: rgba(242, 238, 229, .68); transform: rotate(-7deg); }.image-placeholder::after { content: ''; position: absolute; width: 55%; height: 60%; bottom: -20%; right: -5%; background: rgba(23, 59, 56, .2); border-radius: 50% 50% 0 0; }.image-note, .image-index { position: absolute; z-index: 1; font: .65rem var(--mono); text-transform: uppercase; letter-spacing: .08em; }.image-note { top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; }.image-index { bottom: 20px; right: 20px; }.hero-stamp { position: absolute; bottom: 64px; left: 43%; color: var(--coral); font: italic 1.1rem var(--serif); transform: rotate(-8deg); }
.intro-band { background: var(--ink); color: var(--cream); padding: 95px 10vw; display: grid; grid-template-columns: 1fr 2fr; gap: 20px 8vw; }.intro-band .section-kicker { color: var(--sage); }.statement { font: 500 clamp(2rem, 4vw, 4.2rem)/1.05 var(--serif); letter-spacing: -.04em; margin: 0; max-width: 750px; }.stats { grid-column: 2; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(242, 238, 229, .3); padding-top: 20px; margin-top: 50px; gap: 20px; }.stats strong { display: block; color: var(--coral); font: 2.2rem var(--serif); }.stats span { color: var(--sage); font: .62rem var(--mono); text-transform: uppercase; }
.home-section { padding: 145px 10vw 125px; }.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 90px; }.section-heading h2 { font-size: clamp(3rem, 6vw, 6.5rem); }.section-kicker { margin: 0; }.home-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: center; }.detail-copy { max-width: 370px; line-height: 1.65; font-size: .95rem; }.detail-copy p { margin: 0 0 22px; }.detail-copy .text-link { margin-top: 18px; }.detail-image { height: 560px; }.feature-list { margin-top: 95px; border-top: 1px solid var(--line); }.feature-list div, .places div { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 18px 0; font: .76rem var(--mono); }.feature-list span { color: var(--coral); }.feature-list strong { font: 500 1rem var(--sans); }
.property-details { padding: 125px 10vw; background: #e8e2d5; }.details-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; }.details-copy { max-width: 430px; line-height: 1.65; }.details-copy p { margin: 0 0 24px; }.details-list { margin: 0; border-top: 1px solid var(--line); }.details-list div { display: grid; grid-template-columns: .8fr 1.2fr; gap: 24px; padding: 17px 0; border-bottom: 1px solid var(--line); }.details-list dt { color: var(--coral); font: .65rem var(--mono); text-transform: uppercase; letter-spacing: .06em; }.details-list dd { margin: 0; font-size: .95rem; }.area-transport { margin-top: 20px; font-size: .9rem; }
.area-section { background: var(--coral); display: grid; grid-template-columns: 1.15fr .85fr; align-items: stretch; }.area-image { min-height: 680px; background: linear-gradient(145deg, #aab7a4, #607e72 48%, #e5c6a0); }.area-copy { padding: 125px 10vw 100px 8vw; }.area-copy h2 { font-size: clamp(3rem, 5vw, 5.5rem); margin: 45px 0; }.area-copy h2 em { color: var(--ink); }.area-copy > p:not(.section-kicker) { line-height: 1.6; max-width: 360px; }.places { margin-top: 70px; }.places div { border-color: rgba(23,59,56,.35); }.places strong { font-weight: 400; }
.image-credit { margin-top: 38px; max-width: 430px; font: .62rem/1.55 var(--mono); opacity: .78; }.image-credit a { color: inherit; text-underline-offset: 3px; }
.location-section { display: grid; grid-template-columns: .7fr 1.3fr; gap: 8vw; padding: 125px 10vw; background: var(--ink); color: var(--cream); }.location-copy { max-width: 380px; }.location-copy .section-kicker { color: var(--sage); }.location-copy h2 { font-size: clamp(3rem, 5vw, 5.5rem); margin: 45px 0; }.location-copy h2 em { color: var(--coral); }.location-copy > p:not(.section-kicker) { line-height: 1.6; }.location-copy .text-link { border-color: var(--cream); margin-top: 22px; }.map-note { color: var(--sage); font-size: .8rem; }.map-shell { position: relative; min-height: 560px; }.map-shell #area-map { height: 560px; min-height: 420px; border: 1px solid rgba(242,238,229,.35); filter: saturate(.75); }.map-attribution { position: absolute; bottom: 6px; right: 8px; z-index: 500; margin: 0; padding: 3px 6px; background: rgba(242,238,229,.9); color: var(--ink); font: .55rem var(--mono); }
.enquire-section { display: grid; grid-template-columns: 1fr 1fr; gap: 12vw; padding: 145px 10vw; }.enquire-section h2 { font-size: clamp(3.5rem, 7vw, 7rem); margin: 40px 0; }.enquire-note { max-width: 310px; line-height: 1.6; }.enquiry-form { padding-top: 15px; }.enquiry-form label { display: block; font: .65rem var(--mono); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 28px; }.enquiry-form input, .enquiry-form textarea { display: block; width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 12px 0; color: var(--ink); font: 1rem var(--sans); outline: 0; resize: vertical; }.enquiry-form input:focus, .enquiry-form textarea:focus { border-color: var(--coral); }.enquiry-form button { background: var(--ink); color: var(--cream); border: 0; padding: 18px 22px; font: .7rem var(--mono); text-transform: uppercase; letter-spacing: .08em; cursor: pointer; }.form-status { color: var(--coral); font-size: .8rem; min-height: 1em; }.site-footer { display: flex; justify-content: space-between; padding: 25px 5vw; border-top: 1px solid var(--line); font: .6rem var(--mono); text-transform: uppercase; letter-spacing: .07em; }
.form-trap { position: absolute !important; left: -10000px; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.cf-turnstile { margin: 0 0 24px; }
.enquiry-form button:disabled { cursor: wait; opacity: .6; }
@media (max-width: 760px) { .site-header { padding: 22px 6vw; } nav a:not(.nav-cta) { display: none; }.hero { display: block; min-height: auto; padding: 140px 6vw 65px; }.hero h1 { font-size: 4.6rem; }.hero-image { height: 430px; margin: 70px -6vw 0 14vw; }.hero-stamp { left: 7vw; bottom: 32px; }.intro-band, .enquire-section { display: block; padding: 75px 8vw; }.stats { margin-top: 55px; grid-template-columns: repeat(2, 1fr); row-gap: 30px; }.home-section, .property-details, .location-section { padding: 90px 8vw; }.section-heading { display: block; margin-bottom: 50px; }.section-heading h2 { margin-top: 38px; }.home-grid, .details-grid, .area-section, .location-section { display: block; }.detail-image { height: 420px; margin-top: 60px; }.feature-list { margin-top: 65px; }.details-list { margin-top: 55px; }.area-image { min-height: 430px; }.area-copy { padding: 80px 8vw; }.area-copy h2 { margin: 35px 0; }.map-shell { margin-top: 60px; min-height: 430px; }.map-shell #area-map { height: 430px; }.enquiry-form { margin-top: 70px; }.site-footer { gap: 15px; flex-wrap: wrap; padding: 22px 6vw; }.site-footer span:last-child { width: 100%; } }

.epc-header { position: absolute; }
.epc-hero { min-height: 650px; display: grid; grid-template-columns: 1fr .65fr; gap: 10vw; align-items: end; padding: 150px 10vw 100px; background: var(--ink); color: var(--cream); }.epc-hero h1 { font: 500 clamp(4rem, 8vw, 8rem)/.88 var(--serif); letter-spacing: -.07em; margin: 40px 0 0; }.epc-hero h1 em { color: var(--coral); font-style: italic; }.epc-hero .eyebrow, .epc-hero .section-kicker { color: var(--sage); }.epc-hero .hero-intro { color: var(--cream); max-width: 430px; margin-bottom: 0; }.rating-card { align-self: center; border: 1px solid rgba(242,238,229,.35); padding: 35px; max-width: 360px; }.rating-card strong { display: block; color: var(--coral); font: 6rem/.9 var(--serif); letter-spacing: -.07em; margin: 28px 0 3px; }.rating-card > span { font: .7rem var(--mono); text-transform: uppercase; }.rating-card p:last-child { color: var(--sage); font: .7rem var(--mono); margin: 20px 0 0; }.rating-bar { height: 9px; background: linear-gradient(90deg, #d84435 0 14%, #f0b526 14% 45%, #a9c532 45% 75%, #2e9265 75%); margin: 30px 0 0; position: relative; }.rating-bar i { position: absolute; left: 70%; top: -7px; width: 2px; height: 23px; background: var(--cream); }
.cost-highlight strong { font-size: 4.7rem; }
.epc-facts { padding: 90px 10vw 100px; }.epc-fact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; border-top: 1px solid var(--line); margin-top: 35px; }.epc-fact-grid div { padding: 24px 0; border-bottom: 1px solid var(--line); }.epc-fact-grid strong { display: block; font: 2rem var(--serif); margin-bottom: 8px; }.epc-fact-grid span { font: .65rem var(--mono); text-transform: uppercase; line-height: 1.4; display: block; }
.epc-details { padding: 110px 10vw 125px; background: #e8e2d5; }.epc-details .section-heading { margin-bottom: 65px; }.epc-details h2, .epc-costs h2 { font-size: clamp(3rem, 6vw, 6rem); }.epc-table { border-top: 1px solid var(--line); }.epc-table div, .cost-list div { display: grid; grid-template-columns: .7fr 2fr; gap: 30px; padding: 18px 0; border-bottom: 1px solid var(--line); font-size: .9rem; }.epc-table span, .cost-list span { color: var(--coral); font: .65rem var(--mono); text-transform: uppercase; }.epc-table strong, .cost-list strong { font-weight: 500; }
.epc-costs { display: grid; grid-template-columns: 1fr 1fr; gap: 12vw; padding: 125px 10vw; }.cost-list { align-self: end; border-top: 1px solid var(--line); }.cost-list div { grid-template-columns: 1fr 1fr; }.cost-list .cost-total { border-top: 2px solid var(--ink); margin-top: 20px; padding-top: 22px; }.cost-total strong { font: 1.1rem var(--serif); }.epc-source { padding: 70px 10vw 105px; background: var(--coral); }.epc-source p:not(.section-kicker) { line-height: 1.6; max-width: 500px; }.epc-source .text-link { margin: 15px 0 30px; }.source-note { font-size: .78rem; max-width: 600px !important; }
.photo-frame { position: relative; overflow: hidden; background: var(--sage); }
.photo-frame img { width: 100%; height: 100%; display: block; object-fit: cover; }
.photo-frame .image-index { color: var(--cream); text-shadow: 0 1px 10px rgba(0,0,0,.35); }
.hero-slideshow .hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 900ms ease; }
.hero-slideshow .hero-slide.is-active { opacity: 1; }
.slide-arrow { position: absolute; z-index: 2; top: 50%; width: 42px; height: 42px; border: 1px solid rgba(242,238,229,.8); border-radius: 50%; background: rgba(23,59,56,.7); color: var(--cream); font: 1.1rem var(--sans); line-height: 1; cursor: pointer; transform: translateY(-50%); transition: background .2s ease, transform .2s ease; }
.slide-arrow:hover { background: var(--coral); transform: translateY(-50%) scale(1.06); }
.slide-arrow:focus-visible { outline: 2px solid var(--cream); outline-offset: 3px; }
.slide-arrow-prev { left: 18px; }
.slide-arrow-next { right: 18px; }
@media (prefers-reduced-motion: reduce) { .hero-slideshow .hero-slide { transition: none; } }
.photo-gallery { padding: 115px 10vw 135px; background: #e8e2d5; }
.photo-gallery .section-heading { margin-bottom: 65px; }
.gallery-grid { display: grid; grid-template-columns: 1.35fr .8fr .8fr; gap: 18px; align-items: stretch; }
.gallery-photo { margin: 0; min-width: 0; }
.gallery-photo img { width: 100%; height: 390px; display: block; object-fit: cover; }
.gallery-wide img { height: 470px; }
.gallery-photo figcaption { padding-top: 13px; font: .65rem var(--mono); text-transform: uppercase; letter-spacing: .08em; }
@media (max-width: 760px) { .photo-gallery { padding: 85px 8vw 95px; }.gallery-grid { grid-template-columns: 1fr 1fr; }.gallery-wide { grid-column: 1 / -1; }.gallery-photo img, .gallery-wide img { height: 300px; } }
@media (max-width: 760px) { .epc-hero { display: block; min-height: auto; padding: 140px 8vw 75px; }.epc-hero h1 { font-size: 5rem; }.rating-card { margin-top: 70px; }.epc-facts, .epc-details, .epc-costs, .epc-source { padding-left: 8vw; padding-right: 8vw; }.epc-fact-grid { grid-template-columns: repeat(2, 1fr); }.epc-costs { display: block; }.cost-list { margin-top: 60px; }.epc-table div { grid-template-columns: 1fr; gap: 8px; }.epc-header nav a:not(.nav-cta) { display: none; } }
