@import url('https://fonts.bunny.net/css?family=barlow-condensed:500,600,700,800|public-sans:400,500,600,700&display=swap');
:root{--ink:#142938;--orange:#f47a3e;--paper:#f5f4ee;--line:#c4cbc7;--muted:#4c5b62;--soft:#e1e9df;--white:#fff;--max:1320px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Public Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-underline-offset:5px}a:hover{text-decoration-thickness:2px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}a:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ab3c0a;outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3,.display,.wordmark{font-family:'Barlow Condensed',sans-serif;font-weight:700;line-height:.98}h1{font-size:clamp(64px,7.1vw,108px);letter-spacing:-.015em;text-transform:uppercase}h2{font-size:clamp(42px,4.5vw,64px);text-transform:uppercase}h3{font-size:34px}p+p{margin-top:16px}svg{display:block} .wrap{max-width:var(--max);margin:auto;width:calc(100% - 96px)}.skip{position:absolute;top:-100px;left:20px;z-index:10;padding:12px;background:white}.skip:focus{top:10px}.topline{background:var(--ink);color:var(--paper);font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;padding:9px 0}.topline .wrap{display:flex;justify-content:space-between;gap:12px}.header{border-bottom:1px solid var(--ink)}.header-inner{min-height:105px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand svg{width:44px;height:44px}.wordmark{font-size:29px;line-height:.85;letter-spacing:.015em}.wordmark span{display:block}.brand-meta{font-family:'Public Sans',sans-serif;font-size:9px;letter-spacing:.19em;font-weight:600;line-height:1.4;margin-top:7px}nav{display:flex;gap:28px;align-items:center;font-size:14px;font-weight:600}nav a{text-decoration:none;padding:10px 0;border-bottom:2px solid transparent}nav a:hover,nav a[aria-current=page]{border-color:var(--ink)}nav .visit-link{border:1px solid var(--ink);padding:10px 18px}.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:20px}.eyebrow:before{content:'';width:8px;height:8px;background:var(--orange);display:inline-block;margin-right:10px}.hero{padding:54px 0 42px}.home-hero{display:grid;grid-template-columns:1.5fr .7fr;gap:60px;align-items:end}.home-hero h1{max-width:900px}.hero-aside{padding-bottom:6px}.hero-aside p{font-size:18px;max-width:330px}.small-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}.hero-aside .small-label{display:block;margin-top:26px}.arrow{font-family:Arial,sans-serif;font-weight:400}.worlds{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-bottom:64px}.world{border:1px solid var(--ink);position:relative;display:flex;flex-direction:column;min-width:0}.world-body{padding:25px 26px 27px;display:flex;flex-direction:column;flex:1}.world-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.world h2{font-size:62px}.world p{margin:16px 0 28px;font-size:15px;max-width:310px}.world .button{margin-top:auto}.world.urban{background:var(--orange)}.world.gravel{background:var(--ink);color:var(--paper)}.world.adaptive{background:var(--soft)}.photo{position:relative;min-height:260px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:repeating-linear-gradient(135deg,transparent,transparent 20px,#14293805 20px,#14293805 21px),#e8e9e3;color:var(--muted);text-align:center;padding:35px}.photo:before,.photo:after{content:'+';position:absolute;font-size:19px;font-weight:400;line-height:1}.photo:before{top:12px;left:14px}.photo:after{bottom:12px;right:14px}.photo figcaption{font-size:12px;max-width:270px}.photo .photo-index{display:block;margin-bottom:13px;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.world .photo{min-height:190px;margin:0;border-width:0 0 1px;border-color:var(--ink)}.world.gravel .photo{background:repeating-linear-gradient(135deg,transparent,transparent 20px,#ffffff05 20px,#ffffff05 21px),#263c49;color:#ccd5d8}.world.adaptive .photo{background-color:#d4dfd2}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;text-decoration:none;border:1px solid var(--ink);background:var(--ink);color:white;min-height:50px;padding:12px 18px;font-size:14px;font-weight:600;line-height:1.4}.button:hover{background:#29485a}.button.light{background:var(--paper);color:var(--ink)}.button.outline{background:transparent;color:var(--ink)}.button.outline:hover{background:#1429380b}.unavailable{border:1px solid #778791;padding:13px 17px;min-height:50px;display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-top:auto;gap:12px}.unavailable span:last-child{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.section{padding:70px 0;border-top:1px solid var(--ink)}.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}.story h2{max-width:570px}.story .story-text{padding-top:37px;max-width:525px;font-size:18px}.story-sign{display:block;margin-top:25px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}.trust{display:flex;align-items:center;justify-content:space-between;gap:35px;border:1px solid var(--ink);padding:26px 30px;margin-top:45px}.trust strong{font-family:'Barlow Condensed',sans-serif;font-size:32px;text-transform:uppercase;line-height:1.1}.trust p{font-size:14px;max-width:520px}.trust .stamp{border:2px solid var(--ink);border-radius:50%;width:62px;height:62px;display:grid;place-items:center;font-size:29px;flex-shrink:0}.workshop{margin:26px 0 0;min-height:340px}.photo-foot{display:flex;justify-content:space-between;gap:20px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin-top:10px}.visit{background:var(--ink);color:var(--paper)}.visit .eyebrow{color:#c7d2d7}.visit-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px}.visit h2{font-size:66px}.visit .address{font-size:21px;margin-top:27px}.visit dl{margin:28px 0;display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;max-width:420px;font-size:14px}.visit dt,.visit dd{margin:0}.map{min-height:290px;border:1px solid #72828c;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(0deg,transparent,transparent 47px,#ffffff07 47px,#ffffff07 48px),repeating-linear-gradient(90deg,transparent,transparent 47px,#ffffff07 47px,#ffffff07 48px);text-align:center;padding:30px}.map p{font-size:13px}.map strong{display:block;font-family:'Barlow Condensed',sans-serif;font-size:32px;margin:12px 0}.map .pin{display:block;font-size:30px;color:var(--orange)}.newsletter{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:42px 0}.newsletter h2{font-size:36px;margin-bottom:12px}.newsletter p{font-size:14px;max-width:520px}.pending-box{border:1px dashed #73828a;padding:18px 22px;font-size:13px}.pending-box strong{display:block;margin-bottom:5px}.footer{border-top:1px solid var(--ink);padding:29px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:11px}.footer-links{display:flex;gap:22px}.page-hero{padding:44px 0 50px}.breadcrumbs{display:flex;gap:12px;font-size:11px;margin-bottom:34px}.page-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:55px;align-items:center}.page-intro h1{font-size:clamp(66px,7vw,102px)}.page-intro p{margin-top:24px;max-width:540px;font-size:18px}.page-intro .photo{margin:0;min-height:350px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.urban-hero{background:var(--orange);border-bottom:1px solid var(--ink)}.urban-hero .eyebrow:before{background:var(--ink)}.urban-hero .photo{background-color:#e5b18e;border-color:#975f3e}.subnav{border-bottom:1px solid var(--ink)}.subnav .wrap{display:flex;flex-wrap:wrap;gap:20px 38px;padding-top:17px;padding-bottom:17px;font-size:13px;font-weight:600}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:32px}.section-heading p{max-width:440px;font-size:15px}.catalogue{display:grid;grid-template-columns:1fr 1fr;gap:25px}.catalogue article{border:1px solid var(--ink)}.catalogue .photo{margin:0;min-height:225px;border:0;border-bottom:1px solid var(--ink)}.catalogue-body{padding:28px}.catalogue h3{font-size:37px;margin-bottom:14px}.catalogue p{font-size:15px}.status{font-size:12px;color:var(--muted);margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.text-link{display:inline-block;margin-top:22px;font-size:14px;font-weight:700}.service{background:var(--ink);color:var(--paper)}.service .section-heading p{color:#d4dde0}.service-list{border-top:1px solid #6e808b}.service-row{display:grid;grid-template-columns:1fr 2fr .55fr .6fr;gap:25px;align-items:center;border-bottom:1px solid #6e808b;padding:26px 0}.service-row h3{font-size:31px}.service-row p{font-size:14px;color:#d4dde0}.service-row .duration{font-size:13px}.service-row .price{font-family:'Barlow Condensed',sans-serif;font-size:42px;text-align:right}.service-bottom{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-top:28px}.service-bottom p{font-size:13px;max-width:520px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.info-grid h2{font-size:44px;margin-bottom:23px}.info-grid p{max-width:520px}.simple-list{padding-left:20px;margin:22px 0 0}.simple-list li{padding-left:5px;margin:9px 0}.bulk{background:var(--soft)}.bulk .split{align-items:center}.bulk p{margin-top:20px}.contact-card{border:1px solid var(--ink);padding:30px;background:var(--paper)}.contact-card h3{margin-bottom:16px}.contact-card a{overflow-wrap:anywhere}.facebook-note{font-size:12px;margin-top:25px;padding-top:18px;border-top:1px solid var(--line)}.adaptive-hero{background:var(--soft)}.adaptive-hero .photo{background-color:#cedccc;border-color:#849780;min-height:410px}.adaptive-hero h1{font-size:clamp(65px,6.7vw,96px)}.adaptive-intro{max-width:700px}.adaptive-intro p{font-size:19px;margin-top:26px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:42px}.step{border-top:1px solid var(--ink);padding-top:24px}.step-number{font-family:'Barlow Condensed',sans-serif;font-size:50px;color:#485e48;display:block;margin-bottom:35px}.step h3{font-size:35px;margin-bottom:17px}.step p{font-size:16px}.range-panel{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:52px;border:1px solid var(--ink);padding:28px}.range-panel .photo{margin:0;min-height:255px}.range-panel h3{font-size:40px;margin-bottom:20px}.range-panel .status{max-width:470px}.stories{background:var(--soft)}.stories .split{align-items:center}.stories h2{margin-bottom:25px}.stories .photo{margin:0;min-height:310px;background-color:#cfdbcc;border-color:#8b9b85}.stories p{max-width:530px}.stories .consent-note{font-size:13px;border-top:1px solid #96a58f;padding-top:18px;margin-top:25px}.talk{background:#e8ece5}.talk-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:85px}.talk-intro p{margin-top:24px}.talk-intro a{overflow-wrap:anywhere}.form{padding:32px;background:var(--paper);border:1px solid var(--ink)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:block;margin-bottom:22px}.field>span{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.field input,.field textarea,.field select{display:block;width:100%;padding:12px;border:1px solid #6c7c83;background:white;color:var(--ink);border-radius:0;min-height:49px}.field textarea{min-height:145px;resize:vertical}.form-note{font-size:12px;color:var(--muted);margin-bottom:20px}.form button{cursor:pointer;width:100%}.form .form-grid .field{margin-bottom:0}.form .form-grid{margin-bottom:22px}.direct-email{font-size:13px;margin-top:17px}.direct-email a{overflow-wrap:anywhere}.callout{border-left:3px solid var(--orange);padding-left:20px;margin-top:30px;font-size:14px}.end-nav{display:flex;justify-content:space-between;padding:28px 0;gap:20px;font-size:14px;font-weight:600}
@media(min-width:1500px){.wrap{width:calc(100% - 120px)}}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}nav{gap:18px}.home-hero{gap:30px;grid-template-columns:1.5fr 1fr}.world-body{padding:22px 19px}.world h2{font-size:51px}.world .photo{min-height:165px}.split,.visit-layout,.info-grid,.talk-layout{gap:40px}.page-intro{gap:30px}.service-row{grid-template-columns:1fr 1.4fr .55fr .65fr;gap:18px}.range-panel{gap:28px}.world .button{gap:12px}}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.topline{font-size:9px;letter-spacing:.07em}.topline .wrap span:last-child{display:none}.header-inner{padding:20px 0 13px;align-items:start;gap:20px;flex-wrap:wrap}.brand svg{width:35px;height:35px}.wordmark{font-size:25px}.brand-meta{font-size:8px}.header nav{width:100%;gap:0;justify-content:space-between;font-size:12px}.header nav .visit-link{padding:7px 12px}h1{font-size:64px}h2{font-size:43px}.hero{padding:34px 0 30px}.home-hero{display:block}.hero-aside{margin-top:24px}.hero-aside p{font-size:16px;max-width:100%}.hero-aside .small-label{margin-top:20px}.eyebrow{font-size:10px;margin-bottom:16px}.worlds{grid-template-columns:1fr;gap:20px;padding-bottom:40px}.world h2{font-size:57px}.world-body{padding:23px}.world-top{margin-bottom:12px}.world p{max-width:100%;margin:15px 0 23px}.world .photo{min-height:180px}.section{padding:42px 0}.split,.visit-layout,.info-grid,.newsletter,.page-intro,.catalogue,.talk-layout{grid-template-columns:1fr;gap:30px}.story .story-text{padding-top:0;font-size:16px}.trust{padding:22px;align-items:start;gap:18px;flex-wrap:wrap;margin-top:28px}.trust strong{flex:1;font-size:29px}.trust p{width:100%}.trust .stamp{width:47px;height:47px;font-size:24px}.workshop{min-height:245px}.photo-foot{font-size:9px}.visit h2{font-size:52px}.map{min-height:230px}.newsletter{padding:33px 0}.footer-inner{align-items:start;flex-direction:column;gap:17px}.footer-links{flex-wrap:wrap;gap:18px}.page-hero{padding:25px 0 35px}.breadcrumbs{margin-bottom:28px}.page-intro h1,.adaptive-hero h1{font-size:64px}.page-intro p{font-size:16px;margin-top:20px}.page-intro .photo,.adaptive-hero .photo{min-height:260px}.actions{gap:10px;margin-top:24px}.actions .button{gap:18px}.subnav .wrap{gap:12px 25px;font-size:12px}.section-heading{display:block;margin-bottom:27px}.section-heading p{margin-top:20px}.catalogue-body{padding:24px}.catalogue .photo{min-height:205px}.service-row{grid-template-columns:1fr auto;gap:10px 20px;padding:23px 0}.service-row p{grid-column:1;grid-row:2}.service-row .price{grid-column:2;grid-row:1 / 3;font-size:38px}.service-row .duration{grid-column:1;grid-row:3}.service-bottom{align-items:start;flex-direction:column;gap:20px}.info-grid{gap:40px}.info-grid h2{font-size:39px}.contact-card{padding:24px}.adaptive-intro p{font-size:17px}.steps{grid-template-columns:1fr;gap:25px;margin-top:30px}.step-number{font-size:36px;margin-bottom:16px}.step{padding-top:18px}.step h3{font-size:32px}.range-panel{grid-template-columns:1fr;gap:25px;padding:20px;margin-top:35px}.range-panel h3{font-size:35px}.range-panel .photo{min-height:220px}.stories .photo{min-height:250px}.talk-layout{gap:30px}.form{padding:22px}.form-grid{grid-template-columns:1fr;gap:20px}.end-nav{font-size:12px;gap:25px}.photo{padding:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---- Bench photographs: added AFTER the build, identically on every site. ----
   Each picture fills the frame the design drew, cropped from the centre; the frame keeps
   the size the design gave it (its label is hidden, not removed). */
[data-bench-frame="static"] { position: relative; }
[data-bench-frame] { isolation: isolate; overflow: hidden; }
[data-bench-frame] > .bench-photo { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; z-index: -1; margin: 0; border: 0; }
[data-bench-frame]:not([data-bench-over]) .bench-label { visibility: hidden; }
[data-bench-frame][data-bench-frame]:not([data-bench-over])::before,
[data-bench-frame][data-bench-frame]:not([data-bench-over])::after { visibility: hidden; }  /* hidden, not removed: some designs size the frame with a pseudo-element */
[data-bench-over] .bench-label { display: none; }
[data-bench-over] > .bench-scrim { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, var(--bench-scrim) 0%, color-mix(in srgb, var(--bench-scrim) 88%, transparent) 42%, color-mix(in srgb, var(--bench-scrim) 35%, transparent) 72%, transparent 100%); }
@media (max-width: 700px) { [data-bench-over] > .bench-scrim { background: color-mix(in srgb, var(--bench-scrim) 82%, transparent); } }
