@font-face { font-family: League; src: url('assets/league-gothic.woff') format('woff'); font-display: swap; }

:root { --ink:#151713; --paper:#e9e5dc; --mist:#c7c3b9; --moss:#465446; --olive:#1d261e; --brass:#b89a62; --line:rgba(21,23,19,.22); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; font-size:16px; line-height:1.45; }
body::selection { background:var(--brass); color:var(--ink); }
.grain { position:fixed; inset:0; pointer-events:none; opacity:.14; z-index:8; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); mix-blend-mode:multiply; }
.wrap { width:min(1180px, calc(100% - 64px)); margin:auto; }
.site-header { height:88px; padding:0 32px; position:absolute; top:0; left:0; width:100%; z-index:4; color:#f5f2eb; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.18); }
.brand { color:inherit; text-decoration:none; display:flex; gap:10px; align-items:center; letter-spacing:.13em; }
.brand img { width:44px; height:44px; border-radius:50%; object-fit:cover; mix-blend-mode:screen; }
.brand span { display:grid; gap:2px; font-size:11px; }
.brand b { font-size:12px; letter-spacing:.14em; }
.brand small { font-size:8px; letter-spacing:.17em; opacity:.72; }
nav { display:flex; align-items:center; gap:28px; }
nav a { color:inherit; text-decoration:none; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.nav-cta { border:1px solid rgba(255,255,255,.48); padding:11px 14px; }
.nav-cta span { color:var(--brass); }
.menu-toggle { display:none; }
.hero { height:min(780px, 100svh); min-height:640px; background:#111; position:relative; color:white; overflow:hidden; }
.hero-image { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; object-position:center; filter:saturate(.7) contrast(1.04); }
.hero-wash { position:absolute; inset:0; background:linear-gradient(90deg, rgba(13,15,13,.83) 0%, rgba(14,14,12,.61) 34%, rgba(15,16,14,.08) 74%),linear-gradient(0deg,rgba(0,0,0,.48),transparent 45%); }
.hero-content { position:relative; z-index:1; padding-top:220px; }
.eyebrow { margin:0 0 22px; letter-spacing:.18em; color:#cbb993; font-size:10px; font-weight:bold; }
.eyebrow span { display:inline-block; width:30px; height:1px; vertical-align:middle; margin:0 10px; background:#cbb993; }
.eyebrow.dark { color:#757166; }
h1,h2,h3 { font-weight:400; margin:0; letter-spacing:-.03em; }
h1 { max-width:790px; font-family:Georgia, 'Times New Roman', serif; font-size:clamp(65px, 8.4vw, 134px); line-height:.87; }
h1 em,h2 em { font-weight:400; color:var(--brass); }
.hero-copy { max-width:400px; margin:34px 0; font-size:17px; color:#e3dfd7; line-height:1.5; }
.button { display:inline-flex; align-items:center; gap:34px; padding:15px 17px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; font-weight:bold; transition:transform .2s ease, background .2s ease; }
.button:hover { transform:translateY(-3px); }
.button-light { background:#eeeae1; color:var(--ink); }
.button span { color:var(--brass); font-size:16px; }
.hero-side { position:absolute; right:24px; bottom:26px; margin:0; writing-mode:vertical-rl; letter-spacing:.18em; font-size:9px; color:#dfd9cc; }
.manifesto { min-height:570px; padding:142px 0 105px; display:grid; grid-template-columns:100px minmax(300px, 600px) 1fr; gap:28px; align-items:start; }
.number { font-family:Georgia,serif; color:var(--brass); font-size:20px; }
h2 { font-family:Georgia, 'Times New Roman', serif; font-size:clamp(46px,5.5vw,78px); line-height:.94; }
.lead { max-width:590px; font-size:24px; line-height:1.36; margin:34px 0 0; }
.manifesto-note { max-width:220px; margin:88px 0 0 auto; color:#56584f; font-size:13px; }
.ritual { background:var(--olive); color:#f0ede6; padding:105px 0 96px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; }
.section-heading h2 { text-align:right; }
.ritual-grid { margin-top:100px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.22); }
.ritual article { min-height:260px; padding:25px 32px 0; border-left:1px solid rgba(255,255,255,.22); }
.ritual article:first-child { border-left:none; padding-left:0; }
.ritual article span { color:var(--brass); font-size:11px; }
.ritual h3 { margin:58px 0 14px; font-size:32px; font-family:Georgia,serif; }
.ritual article p { max-width:285px; font-size:14px; color:#cacac0; }
.values { padding:130px 0; }
.values-list { margin-top:54px; border-top:1px solid var(--line); }
.values-list p { margin:0; padding:24px 0; display:grid; grid-template-columns:90px minmax(200px, 1fr) 1.5fr; gap:20px; align-items:baseline; border-bottom:1px solid var(--line); }
.values-list span { color:#777368; font-size:11px; }
.values-list b { font-family:Georgia,serif; font-weight:400; font-size:31px; }
.values-list i { font-style:normal; color:#66675f; font-size:14px; }
.about { min-height:720px; background:#d8d2c5; display:grid; grid-template-columns:1fr 1fr; }
.about-image { min-height:660px; overflow:hidden; background:#c7c1b5; }
.about-image img { width:100%; height:100%; object-fit:cover; object-position:50% 25%; filter:grayscale(1) contrast(1.1); mix-blend-mode:multiply; }
.about-copy { padding:112px clamp(36px,7vw,128px); align-self:center; }
.about-copy p:not(.eyebrow) { font-size:15px; max-width:450px; color:#494b43; }
.about-copy p:nth-of-type(2) { margin-top:28px; }
.text-link { display:inline-flex; margin-top:23px; align-items:center; gap:24px; padding-bottom:6px; text-transform:uppercase; border-bottom:1px solid var(--ink); color:var(--ink); text-decoration:none; letter-spacing:.11em; font-size:10px; font-weight:bold; }
.text-link span { color:#967a48; font-size:16px; }
.questions { padding:130px 0; display:grid; grid-template-columns:1fr 2fr; gap:60px; }
.question-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); }
summary { cursor:pointer; padding:22px 0; list-style:none; display:flex; justify-content:space-between; gap:20px; font-family:Georgia,serif; font-size:26px; }
summary::-webkit-details-marker { display:none; }
summary span { font-family:Arial,sans-serif; font-size:23px; font-weight:normal; color:#766b55; transition:transform .15s; }
details[open] summary span { transform:rotate(45deg); }
details p { max-width:600px; color:#5f6159; margin:0 45px 25px 0; font-size:15px; }
.enquire { padding:140px 0; background:var(--moss); color:#f0ede6; position:relative; overflow:hidden; }
.enquire::after { content:'B&B'; position:absolute; right:-36px; bottom:-78px; color:rgba(255,255,255,.055); font-family:Georgia,serif; font-size:360px; line-height:1; }
.enquire-inner { position:relative; z-index:1; }
.enquire h2 { font-size:clamp(57px,7vw,100px); }
.enquire-copy { max-width:470px; margin:30px 0; color:#e5e2dc; font-size:17px; }
.contact-actions { display:flex; align-items:center; gap:30px; }
.text-link.light { color:#f0ede6; border-color:#f0ede6; }
footer { padding:38px 0 30px; display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:30px; align-items:end; color:#4e5048; font-size:12px; }
.footer-name { letter-spacing:.13em; margin:0 0 7px; font-size:12px; font-weight:bold; color:var(--ink); }.footer-note { margin:0; max-width:280px; }.copyright { margin:0; text-align:right; }
.footer-nav { display:flex; flex-wrap:wrap; gap:12px 18px; }.footer-nav a { color:inherit; font-size:10px; }
.page-header { background:var(--ink); color:#f1eee7; min-height:440px; padding:170px 0 70px; position:relative; overflow:hidden; }.page-header::after { content:''; position:absolute; right:-80px; top:-160px; width:540px; height:540px; border:1px solid rgba(184,154,98,.28); border-radius:50%; }.page-header .wrap { position:relative; z-index:1; }.page-header h1 { font-size:clamp(65px,8vw,118px); max-width:850px; }.page-header .intro { max-width:520px; margin:28px 0 0; color:#d2cfc7; font-size:18px; }.page-main { min-height:45vh; }.page-section { padding:112px 0; }.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,9vw,150px); }.split h2 { max-width:500px; }.body-copy { max-width:560px; color:#505149; font-size:16px; }.body-copy p:first-child { margin-top:0; }.statement { margin:0; color:var(--brass); font-family:Georgia,serif; font-size:clamp(35px,4.5vw,65px); line-height:1.05; }.dark-section { background:var(--olive); color:#f1eee7; }.dark-section .body-copy { color:#d2d0c8; }.dark-section .eyebrow { color:#cbb993; }.service-list { border-top:1px solid rgba(255,255,255,.26); margin-top:75px; }.service-card { display:grid; grid-template-columns:80px minmax(190px,1fr) 2fr auto; gap:24px; align-items:start; padding:32px 0; border-bottom:1px solid rgba(255,255,255,.26); }.service-card span { color:var(--brass); font-size:11px; }.service-card h3 { font-family:Georgia,serif; font-size:29px; }.service-card p { margin:0; color:#cac9c0; max-width:470px; font-size:14px; }.service-card strong { color:#e9e5db; white-space:nowrap; font-size:13px; font-weight:normal; }.service-note { color:#5e625a; max-width:640px; margin:37px 0 0 auto; font-size:14px; }.aside-image { min-height:420px; background:#b5b1a8; overflow:hidden; }.aside-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 15%; filter:grayscale(1) contrast(1.08); mix-blend-mode:multiply; }.faq-page { max-width:780px; margin-left:auto; }.faq-page details p { font-size:15px; }.contact-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(50px,10vw,155px); }.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.contact-form label { display:grid; gap:7px; font-size:10px; letter-spacing:.13em; text-transform:uppercase; font-weight:bold; color:#575951; }.contact-form label.full { grid-column:1/-1; }.contact-form input,.contact-form select,.contact-form textarea { background:transparent; color:var(--ink); border:0; border-bottom:1px solid var(--line); border-radius:0; padding:12px 0; font:15px Arial,sans-serif; outline:none; }.contact-form textarea { resize:vertical; min-height:104px; }.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--brass); }.contact-form option { color:var(--ink); }.contact-form .button { border:0; cursor:pointer; justify-self:start; }.contact-aside { padding:30px; background:#d7d1c4; align-self:start; }.contact-aside h2 { font-size:46px; }.contact-aside p { color:#53554d; }.contact-aside a { display:inline-flex; margin-top:18px; }.privacy-copy { max-width:760px; }.privacy-copy h2 { font-size:42px; margin:65px 0 17px; }.privacy-copy p,.privacy-copy li { color:#51534b; }.privacy-copy ul { padding-left:20px; }.not-found { min-height:100vh; display:grid; place-items:center; padding:40px; background:var(--ink); color:#f1eee7; text-align:center; }.not-found h1 { font-size:clamp(86px,15vw,210px); }.not-found p { max-width:420px; margin:26px auto; color:#cac8c1; }
@media (max-width:760px) { .wrap { width:min(100% - 40px, 600px); }.site-header { height:76px; padding:0 20px; }.brand img { width:38px;height:38px; }.brand b { font-size:10px; }.menu-toggle { display:flex; align-items:center; gap:8px; color:white; background:none; border:0; padding:8px; text-transform:uppercase; letter-spacing:.1em; font-size:10px; }.menu-toggle i,.menu-toggle i::before { display:block; width:16px; height:1px; background:currentColor; content:''; }.menu-toggle i::before { transform:translateY(-5px); }nav { display:none; position:absolute; top:76px; right:0; left:0; padding:18px 20px 23px; background:#1b1e19; flex-direction:column; align-items:stretch; gap:18px; }nav.open { display:flex; }.hero { min-height:650px; height:100svh; }.hero-image { object-position:64% center; }.hero-wash { background:linear-gradient(90deg,rgba(8,10,8,.87),rgba(8,10,8,.26)),linear-gradient(0deg,rgba(0,0,0,.48),transparent 45%); }.hero-content { padding-top:200px; }.hero-copy { font-size:15px; max-width:320px; }.hero-side { right:10px; bottom:18px; }.manifesto { min-height:auto; padding:85px 0; grid-template-columns:40px 1fr; gap:12px; }.manifesto-note { grid-column:2; margin:25px 0 0; }.lead { font-size:20px; }.section-heading { display:block; }.section-heading h2 { text-align:left; }.ritual { padding:78px 0 44px; }.ritual-grid { margin-top:60px; display:block; }.ritual article,.ritual article:first-child { min-height:0; padding:24px 0 32px; border:0; border-bottom:1px solid rgba(255,255,255,.22); }.ritual h3 { margin:24px 0 10px; }.values { padding:82px 0; }.values-list p { grid-template-columns:35px 1fr; gap:8px; }.values-list i { grid-column:2; }.about { grid-template-columns:1fr; }.about-image { min-height:430px; max-height:520px; }.about-copy { padding:76px 20px; }.questions { padding:84px 0; grid-template-columns:1fr; gap:30px; }summary { font-size:22px; }.enquire { padding:90px 0; }.contact-actions { flex-direction:column; align-items:flex-start; gap:10px; }footer { padding:35px 0; grid-template-columns:1fr; gap:16px; }.copyright { text-align:left; }.page-header { min-height:360px; padding:138px 0 60px; }.page-header .intro { font-size:16px; }.page-section { padding:76px 0; }.split,.contact-layout { grid-template-columns:1fr; gap:40px; }.service-list { margin-top:42px; }.service-card { grid-template-columns:34px 1fr; gap:9px; }.service-card p,.service-card strong { grid-column:2; }.service-card h3 { font-size:26px; }.service-note { margin:28px 0 0; }.contact-form { grid-template-columns:1fr; }.contact-form label.full { grid-column:auto; }.contact-aside { padding:24px; }.footer-nav { display:flex; position:static; padding:0; background:none; flex-direction:row; }.footer-nav a { font-size:10px; } }
/* CMS multiline fields */
[data-cms-key$="_copy"],[data-cms-key$="_lead"],[data-cms-key$="_note"],[data-cms-key$="_p1"],[data-cms-key$="_p2"],[data-cms-key$=".text"]{white-space:pre-line}
[data-cms-key="about.intro"],[data-cms-key="services.intro"],[data-cms-key="faq.intro"]{white-space:pre-line}
[data-cms-key="contact.intro"],[data-cms-key="privacy.intro"],[data-cms-key="about.statement"],[data-cms-key="about.person_title"]{white-space:pre-line}
[data-cms-services] p,[data-cms-home-questions] details p,[data-cms-faqs] details p,[data-cms-privacy-sections] p{white-space:pre-line}
.body-copy{--cms-p:19.2px}.about-copy{--cms-p:18px}p[data-cms-key$=_p1],p[data-cms-key$=_p2]{font-size:var(--cms-p)}
