:root{--ink:#17221d;--muted:#607067;--green:#245b42;--green2:#dfece4;--cream:#f7f5ee;--line:#d9dedb;--white:#fff;--amber:#9a641c;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;background:white}a{color:inherit}.wrap{width:min(var(--max),calc(100% - 38px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;font-size:1.3rem;font-weight:800;letter-spacing:-.03em}.brand span{color:var(--green)}nav{display:flex;align-items:center;gap:22px}nav a{text-decoration:none;font-size:.95rem}.nav-toggle{display:none;border:0;background:none;font-size:1.4rem}.btn{display:inline-block;background:var(--green);color:#fff;text-decoration:none;border-radius:999px;padding:13px 20px;font-weight:700;border:1px solid var(--green)}.btn:hover{filter:brightness(.95)}.btn-light{background:white;color:var(--green);border-color:white}.btn-outline{background:transparent;color:var(--green)}.btn-small{padding:9px 15px;font-size:.9rem}.hero{background:linear-gradient(90deg,rgba(13,35,25,.88),rgba(13,35,25,.34)),url('/assets/web/front2.webp') center/cover;min-height:590px;color:white;display:flex;align-items:center}.hero-content{max-width:790px;padding:70px 0}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.8rem;font-weight:800;opacity:.86}.hero h1,.page-hero h1{font-size:clamp(2.6rem,6vw,5.1rem);line-height:.98;letter-spacing:-.055em;margin:.16em 0 .28em}.hero p{font-size:1.18rem;max-width:690px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.quickfacts{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.quickfacts div{background:white;text-align:center;padding:22px 12px}.quickfacts strong{display:block;font-size:1.05rem}.quickfacts span{display:block;color:var(--muted);font-size:.88rem}.section{padding:78px 0}.section.alt{background:var(--cream)}.section h2{font-size:clamp(2rem,4vw,3.25rem);line-height:1.05;letter-spacing:-.045em;margin:0 0 18px}.lead{font-size:1.13rem;color:var(--muted);max-width:760px}.availability-grid,.rooms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px}.availability-list{display:grid;gap:11px;margin-top:30px}.availability-row{display:grid;grid-template-columns:1.3fr .7fr .8fr .7fr;align-items:center;gap:12px;border:1px solid var(--line);padding:16px 18px;border-radius:16px;background:white}.status{display:inline-block;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;border-radius:999px;padding:6px 9px;width:max-content}.status-live{background:#daf2e2;color:#175d37}.status-occupied{background:#ecefee;color:#58625d}.status-offer{background:#f5e8d5;color:#794b11}.room-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:white;box-shadow:0 8px 28px rgba(20,40,30,.05)}.room-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.room-card-body{padding:20px}.room-card h3{margin:9px 0 4px;font-size:1.25rem}.room-card h3 a{text-decoration:none}.meta{color:var(--muted);margin:0}.price{font-size:1.25rem;font-weight:800}.price span{display:block;color:var(--muted);font-size:.8rem;font-weight:500}.text-link{font-weight:800;color:var(--green);text-decoration:none}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:32px}.feature-card{padding:24px;border-radius:18px;background:white;border:1px solid var(--line)}.feature-card h3{margin:0 0 8px}.photo-split{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}.photo-split img{width:100%;border-radius:22px;display:block}.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.gallery img{width:100%;height:100%;object-fit:cover;border-radius:16px}.gallery img:first-child{grid-row:span 2;min-height:470px}.page-hero{padding:88px 0 58px;background:var(--cream)}.page-hero h1{font-size:clamp(2.7rem,6vw,4.6rem)}.breadcrumbs{color:var(--muted);font-size:.9rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:start}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;padding:0;list-style:none}.feature-list li:before{content:'✓';color:var(--green);font-weight:900;margin-right:8px}.notice{padding:20px;border-radius:16px;background:var(--green2);border:1px solid #bdd4c5}.placeholder{min-height:260px;border:2px dashed #b6c3bb;border-radius:20px;background:#f4f7f4;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--muted)}form{display:grid;gap:14px}.field{display:grid;gap:6px}.field label{font-weight:700}.field input,.field select,.field textarea{padding:12px 13px;border:1px solid #bfc8c2;border-radius:11px;font:inherit;background:white}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.check{border:1px solid var(--line);padding:10px;border-radius:10px;background:white}.form-card{padding:28px;border:1px solid var(--line);border-radius:20px;background:white;box-shadow:0 8px 30px rgba(20,40,30,.05)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.floorplan{width:100%;border:1px solid var(--line);border-radius:18px;background:white}footer{background:#13251d;color:#dbe5df;padding:50px 0 24px;margin-top:60px}.footer-grid{display:grid;grid-template-columns:2fr 2fr 1fr;gap:35px}.footer-grid a{color:white}.legal{margin-top:34px;padding-top:20px;border-top:1px solid #355044;color:#9eb0a7;font-size:.86rem}@media(max-width:900px){nav{display:none;position:absolute;top:72px;left:0;right:0;background:white;padding:22px;flex-direction:column;border-bottom:1px solid var(--line)}nav.open{display:flex}.nav-toggle{display:block}.quickfacts{grid-template-columns:repeat(2,1fr)}.availability-grid,.rooms-grid,.cards{grid-template-columns:1fr 1fr}.photo-split,.two-col{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.gallery img:first-child{grid-column:span 2;grid-row:auto;min-height:auto}.availability-row{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr}}@media(max-width:580px){.availability-grid,.rooms-grid,.cards,.check-grid{grid-template-columns:1fr}.hero{min-height:620px}.hero h1{font-size:3rem}.quickfacts{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr}.gallery img:first-child{grid-column:auto}.feature-list{grid-template-columns:1fr}.availability-row{grid-template-columns:1fr}.section{padding:58px 0}}

/* Welcoming homepage hero: lead with the home and greenery rather than the brick frontage. */
.hero-welcome{background:linear-gradient(180deg,#f7f5ee 0%,#fff 100%);color:var(--ink);min-height:0;display:block;padding:0}
.hero-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:48px;align-items:center;min-height:610px;padding:54px 0}
.hero-copy{padding:28px 0}
.hero-welcome h1{color:var(--ink);margin:.16em 0 .28em}
.hero-lead{font-size:1.2rem!important;max-width:650px;color:var(--muted);margin-bottom:18px}
.hero-kicker{font-weight:750;color:var(--green);max-width:650px;line-height:1.6}
.hero-welcome .btn-light{background:var(--green);color:#fff;border-color:var(--green)}
.hero-welcome .btn-outline{color:var(--green);border-color:var(--green)}
.hero-media{display:grid;grid-template-columns:1.55fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:520px}
.hero-photo{position:relative;margin:0;overflow:hidden;border-radius:22px;background:#e8ece9;box-shadow:0 16px 38px rgba(20,40,30,.12)}
.hero-photo-main{grid-row:1 / 3}
.hero-photo img{display:block;width:100%;height:100%;object-fit:cover}
.hero-photo-main img{object-position:center center}
.hero-photo-leafy img{object-position:50% 9%}
.hero-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 14px;color:white;font-size:.88rem;font-weight:750;background:linear-gradient(transparent,rgba(10,25,18,.76))}
.reference-summary{margin-top:20px;padding-top:18px;border-top:1px solid #aec9b7}
.reference-summary h3{margin:0 0 8px}
.reference-summary p:last-child{margin-bottom:0}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:26px;min-height:0;padding:48px 0}.hero-copy{padding:0}.hero-media{height:500px}.hero-welcome h1{font-size:clamp(2.8rem,10vw,4.5rem)}}
@media(max-width:580px){.hero-grid{padding:36px 0}.hero-media{grid-template-columns:1fr 1fr;grid-template-rows:1.35fr .8fr;height:420px;gap:8px}.hero-photo-main{grid-column:1 / 3;grid-row:1}.hero-photo{border-radius:16px}.hero-photo figcaption{font-size:.75rem;padding:22px 11px 10px}.hero-lead{font-size:1.08rem!important}.hero-kicker{font-size:.92rem}}

/* Pricing: distinguish active advertised rent from the standard future new-let rate. */
.price-block{margin:20px 0 8px}.price-block.compact{margin:14px 0 16px}.price-block .price{margin:0}.standard-price{margin-top:5px;color:var(--muted);font-size:.92rem}.price-note,.pricing-explainer{color:var(--muted);font-size:.88rem;line-height:1.45}.price-note{margin-top:5px;max-width:34rem}.pricing-explainer{margin-top:14px}.featured-price{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}.featured-price>div{padding:13px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}.featured-price strong{display:block;font-size:1.18rem}.featured-price span{display:block;color:var(--muted);font-size:.82rem}.availability-row-compact{grid-template-columns:1.25fr .75fr .8fr}
@media(max-width:900px){.availability-row-compact{grid-template-columns:1fr 1fr}.availability-row-compact>div:last-child{grid-column:1 / -1}}
@media(max-width:580px){.featured-price{display:grid;grid-template-columns:1fr}.availability-row-compact{grid-template-columns:1fr}.availability-row-compact>div:last-child{grid-column:auto}}

/* EPC presentation */
.epc-inline{display:flex;gap:.65rem;align-items:baseline;flex-wrap:wrap;margin-top:.65rem;font-size:.9rem;color:var(--muted)}
.epc-inline strong{color:var(--ink)}
.epc-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,520px);gap:2.5rem;align-items:center}
.epc-panel figure{margin:0;background:#fff;border:1px solid #dfe6e1;border-radius:14px;padding:16px;box-shadow:0 8px 28px rgba(23,34,29,.06)}
.epc-panel figure img{display:block;width:100%;height:auto}
.epc-panel figcaption{margin-top:.65rem;font-size:.86rem;color:var(--muted)}
@media (max-width:760px){.epc-panel{grid-template-columns:1fr}.epc-panel figure{max-width:620px}}


/* v8: richer room, tenancy and location information */
.room-detail-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:start}
.room-description{max-width:680px}
.room-spec{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.room-spec span{display:inline-block;padding:9px 12px;border-radius:999px;background:white;border:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.room-spec strong{color:var(--ink)}
.three-col-info{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.rent-includes,.deposit-summary,.cleaning-summary{height:100%;padding:24px;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 8px 24px rgba(20,40,30,.04)}
.rent-includes h3,.deposit-summary h3,.cleaning-summary h3{margin-top:0}
.rent-includes p:last-child,.deposit-summary p:last-child,.cleaning-summary p:last-child{margin-bottom:0}
.house-feature-grid{grid-template-columns:repeat(2,1fr)}
.location-map-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:38px;align-items:center}
.map-frame{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:white;box-shadow:0 10px 30px rgba(20,40,30,.08)}
.map-frame iframe{display:block;width:100%;height:460px;border:0}
.map-attribution{padding:8px 12px;font-size:.72rem;color:var(--muted);border-top:1px solid var(--line);background:white}
@media(max-width:1000px){.quickfacts{grid-template-columns:repeat(3,1fr)}.three-col-info{grid-template-columns:1fr 1fr}.three-col-info>div:last-child{grid-column:1 / -1}.room-detail-grid,.location-map-grid{grid-template-columns:1fr}}
@media(max-width:700px){.three-col-info{grid-template-columns:1fr}.three-col-info>div:last-child{grid-column:auto}.house-feature-grid{grid-template-columns:1fr}.map-frame iframe{height:380px}}
@media(max-width:580px){.quickfacts{grid-template-columns:1fr 1fr}}

/* v9: local lifestyle and transport guide */
.location-cards{grid-template-columns:repeat(4,1fr)}
.lifestyle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.lifestyle-card{padding:26px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px rgba(20,40,30,.04)}
.lifestyle-card h3{margin-top:0}
.transport-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:30px}
.location-highlight{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:26px;border-radius:22px;background:var(--green);color:#fff;box-shadow:0 14px 36px rgba(20,40,30,.14)}
.location-highlight strong,.location-highlight span{display:flex;min-height:88px;align-items:center;justify-content:center;text-align:center;padding:14px;border-radius:14px;background:rgba(255,255,255,.1);font-weight:800}
.location-highlight strong{font-size:1.35rem;background:rgba(255,255,255,.18)}
@media(max-width:1000px){.location-cards,.transport-grid{grid-template-columns:1fr 1fr}.lifestyle-grid{grid-template-columns:1fr 1fr}.lifestyle-grid>div:last-child{grid-column:1 / -1}}
@media(max-width:650px){.location-cards,.transport-grid,.lifestyle-grid{grid-template-columns:1fr}.lifestyle-grid>div:last-child{grid-column:auto}.location-highlight{grid-template-columns:1fr 1fr}}

/* v14: room light, outlook and ventilation detail */
.room-outlook{margin-top:24px;padding:18px 20px;border-radius:16px;background:#f7faf7;border:1px solid var(--line)}
.room-outlook h3{margin:0 0 7px;font-size:1.03rem}
.room-outlook p{margin:0;color:var(--muted)}

/* v18: calmer homepage hierarchy — fewer repeated sections and cleaner summary elements. */
.home-highlights{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.home-highlights>div{padding:20px 24px;text-align:center;position:relative}
.home-highlights>div+div:before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--line)}
.home-highlights strong{display:block;font-size:1.02rem;letter-spacing:-.015em}
.home-highlights span{display:block;margin-top:3px;color:var(--muted);font-size:.86rem}
.home-room-section{padding-top:68px;padding-bottom:68px}
.home-room-feature{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.home-room-image img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:22px;box-shadow:0 14px 34px rgba(20,40,30,.09)}
.home-current-price{font-size:2.3rem;font-weight:850;letter-spacing:-.045em;color:var(--green);margin:6px 0 12px}
.home-current-price span{font-size:1rem;font-weight:700;letter-spacing:0;color:var(--muted)}
.home-room-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:24px}
.home-smallprint{font-size:.86rem;color:var(--muted);margin-top:16px}
.home-smallprint a{color:var(--green);font-weight:700}
.home-value-cards{grid-template-columns:repeat(3,1fr)}
.home-more{margin-top:25px}
.home-location-preview{align-items:stretch}
.home-location-preview .placeholder{min-height:360px}
@media(max-width:900px){.home-highlights{grid-template-columns:1fr 1fr}.home-highlights>div:nth-child(3):before{display:none}.home-highlights>div:nth-child(n+3){border-top:1px solid var(--line)}.home-room-feature{grid-template-columns:1fr;gap:30px}.home-value-cards{grid-template-columns:1fr 1fr}.home-value-cards>div:last-child{grid-column:1/-1}}
@media(max-width:580px){.home-highlights{grid-template-columns:1fr 1fr}.home-highlights>div{padding:17px 10px}.home-highlights strong{font-size:.94rem}.home-highlights span{font-size:.78rem}.home-value-cards{grid-template-columns:1fr}.home-value-cards>div:last-child{grid-column:auto}.home-room-section{padding-top:52px;padding-bottom:52px}.home-current-price{font-size:2rem}}

/* v19: 10-second homepage funnel — rooms first, house second, location third. */
.home-availability{padding-top:58px;padding-bottom:64px}
.home-availability-list{margin-top:24px}
.home-availability-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.home-room-feature-tight{margin-top:30px}
.home-room-feature-tight h3{font-size:clamp(1.6rem,3vw,2.25rem);margin:4px 0 4px;letter-spacing:-.03em}
@media(max-width:580px){.home-availability{padding-top:46px;padding-bottom:52px}.home-availability-actions{display:grid;grid-template-columns:1fr}.home-availability-actions .btn{text-align:center}.home-room-feature-tight{margin-top:24px}}


/* v20: homepage layout hotfix + robust cache-safe deployment. */
.hero-copy,.hero-media,.availability-row>div,.home-highlights>div{min-width:0}
.hero-photo-main{grid-column:1;grid-row:1 / 3}
.hero-photo-leafy{grid-column:2;grid-row:1}
.hero-photo-kitchen{grid-column:2;grid-row:2}
.hero-media{width:100%}
.home-highlights strong,.home-highlights span{overflow-wrap:normal;word-break:normal}
.home-availability-list .availability-row{grid-template-columns:minmax(250px,1.45fr) minmax(145px,.7fr) minmax(170px,.8fr) 72px}
.home-availability-list .status{max-width:100%;white-space:normal;line-height:1.2}
.home-availability-list .text-link{white-space:nowrap}
@media(max-width:1000px){
  .home-availability-list .availability-row{grid-template-columns:minmax(220px,1.3fr) minmax(140px,.75fr) minmax(160px,.8fr) 70px}
}
@media(max-width:900px){
  .home-availability-list .availability-row{grid-template-columns:1.25fr .75fr}
  .home-availability-list .availability-row>div:nth-child(3),.home-availability-list .availability-row>div:nth-child(4){margin-top:4px}
}
@media(max-width:580px){
  .hero-photo-main{grid-column:1 / 3;grid-row:1}
  .hero-photo-leafy{grid-column:1;grid-row:2}
  .hero-photo-kitchen{grid-column:2;grid-row:2}
  .home-availability-list .availability-row{grid-template-columns:1fr}
  .home-availability-list .availability-row>div{margin-top:0!important}
  .home-highlights strong{line-height:1.2}
}

/* v21 location photography */
.location-feature-photo{margin:0;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 18px 44px rgba(24,45,34,.12)}
.location-feature-photo img{width:100%;height:100%;min-height:390px;object-fit:cover;display:block}
.location-feature-photo figcaption{padding:12px 15px 14px;font-size:.9rem;color:var(--muted);background:#fff}
.location-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}
.location-gallery figure{margin:0;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 14px 36px rgba(24,45,34,.09)}
.location-gallery figure.location-gallery-wide{grid-column:1/-1}
.location-gallery img{width:100%;height:330px;object-fit:cover;display:block}
.location-gallery-wide img{height:460px}
.location-gallery figcaption{padding:12px 15px 15px;color:var(--muted);font-size:.92rem;line-height:1.45}
@media(max-width:760px){.location-feature-photo img{min-height:260px}.location-gallery{grid-template-columns:1fr}.location-gallery figure.location-gallery-wide{grid-column:auto}.location-gallery img,.location-gallery-wide img{height:260px}}
