
/* Brown, taupe, stone and orange sampled from the printed Razor Sharp brochure. */
:root {
  --ink: #332b22;
  --paper: #faf7f0;
  --white: #ffffff;
  --soft: #f0ebe2;
  --stone: #d4cbbb;
  --accent: #7a5e3f;
  --accent-strong: #513923;
  --brand-orange: #e27c35;
  --sand: #a99170;
  --accent-hover: #513923;
  --muted: #4b4033;
  --line: #c0b49e;
  --input-line: #88775f;
  --taupe: #c0b49e;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'DM Sans', Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 115px; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 1rem/1.75 var(--sans); }
body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; object-fit: cover; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .7; }
button, a, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
::selection { background: var(--sand); color: var(--ink); }
[hidden] { display: none !important; }
.wrap { width: min(1240px, calc(100% - 112px)); margin-inline: auto; }
.skip { position: fixed; top: 12px; left: 12px; padding: 10px 18px; background: var(--white); transform: translateY(-180%); z-index: 100; }
.skip:focus { transform: translateY(0); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
h1, h2 { line-height: 1.1; letter-spacing: -.045em; text-wrap: balance; }
h1 { font-size: clamp(3.1rem, 5.65vw, 5.25rem); margin-bottom: 30px; }
h2 { font-size: clamp(2.35rem, 3.8vw, 3.7rem); margin-bottom: 25px; }
h3 { font-size: 1.7rem; line-height: 1.25; letter-spacing: -.025em; margin-bottom: 16px; }
h1 em, h2 em { font-weight: 400; color: var(--accent); }
p { margin-bottom: 22px; }
.eyebrow { font-family: var(--sans); font-size: .7rem; font-weight: 500; letter-spacing: .16em; line-height: 1.7; text-transform: uppercase; margin-bottom: 22px; color: var(--accent); }
.lead { font-size: 1.2rem; line-height: 1.7; }
.small { font-size: .83rem !important; }
.muted { color: var(--muted); }
.text-link { display: inline-flex; align-items: center; gap: 22px; padding: 7px 0; min-height: 40px; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--accent); font-size: .9rem; font-weight: 500; line-height: 1.6; text-align: left; }
.text-link:hover { color: var(--accent-hover); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 48px; padding: 14px 25px; border: 1px solid var(--accent); border-radius: 30px; background: var(--accent); color: var(--white); font-size: .9rem; font-weight: 500; line-height: 1.6; text-align: center; transition: background .2s, border-color .2s; }
.button:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.button-small { min-height: 44px; padding: 11px 21px; gap: 20px; }
.button-outline, .button-light { color: var(--accent); background: transparent; }
.button-outline:hover, .button-light:hover { color: var(--accent-hover); background: var(--stone); }

/* Navigation and the original Instagram brand mark. */
.preview-bar { display: flex; justify-content: center; gap: 24px; padding: 6px 20px; color: var(--accent); background: var(--stone); font-size: .7rem; letter-spacing: .025em; }
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(250, 247, 240, .98); border-top: 3px solid var(--brand-orange); border-bottom: 1px solid var(--line); }
.header-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.wordmark { display: inline-flex; align-items: center; gap: 13px; flex-shrink: 0; }
.brand-logo { width: 42px; height: 42px; object-fit: contain; }
.brand-copy { display: flex; flex-direction: column; gap: 7px; }
.brand-copy>span { font: 1.9rem/.95 var(--serif); letter-spacing: -.045em; }
.brand-copy small { font-size: .55rem; letter-spacing: .29em; line-height: 1.3; padding-left: 2px; }
.site-header nav { display: flex; align-items: center; gap: 30px; }
.site-header nav>a { font-size: .85rem; }
.site-header nav>a:not(.button) { min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid transparent; }
.site-header nav>a[aria-current=page]:not(.button), .site-header nav>a:not(.button):hover { border-color: var(--brand-orange); color: var(--accent); }
.menu-toggle { display: none; }

/* Homepage: a centred opening, an aligned photographic spread, then a journal. */
.editorial-hero { padding-top: 62px; }
.editorial-heading { max-width: 810px; margin: 0 auto; text-align: center; }
.editorial-heading h1 { font-size: clamp(3.4rem, 6.3vw, 6rem); line-height: 1.02; margin-bottom: 26px; }
.editorial-heading>.eyebrow { margin-bottom: 25px; }
.editorial-heading>p:not(.eyebrow) { max-width: 540px; margin: 0 auto; color: var(--muted); font-size: 1.03rem; }
.editorial-heading>p.hero-budget { margin-top: 12px; }
.hero-budget a { text-decoration: underline; text-underline-offset: 3px; }
.bathroom-pricing { background: var(--stone); scroll-margin-top: 110px; }
.bathroom-pricing .planning-panel { background: var(--paper, #faf7f0); }
.project-snapshot { border-bottom: 1px solid var(--line); padding-bottom: 24px; margin-bottom: 30px; }
.project-snapshot ul { padding-left: 20px; }
.project-snapshot li { margin-bottom: 10px; }
.editorial-actions { display: flex; justify-content: center; align-items: center; gap: 30px; margin-top: 30px; }
.hero-spread { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 40px; max-width: 940px; margin: 50px auto 0; }
.hero-spread figure, .rooms-photo { margin: 0; min-width: 0; }
.hero-spread figure>a { display: block; overflow: hidden; }
.spread-main img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.spread-detail { padding-top: 0; }
.spread-detail>a { border-radius: 0; }
.spread-detail img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.hero-spread figcaption { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 17px; font-size: .8rem; }
.hero-spread figcaption>span { font-size: .63rem; letter-spacing: .1em; color: var(--muted); }
.hero-spread figcaption a { display: inline-flex; gap: 20px; align-items: center; color: var(--accent); }
.home-footnote { border-bottom: 1px solid var(--line); margin-top: 38px; padding-bottom: 24px; display: flex; justify-content: space-between; gap: 25px; font-size: .77rem; color: var(--muted); }
.home-footnote a { color: var(--accent); }
.section { padding-block: 105px; }
.home-introduction { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; }
.introduction-copy { padding-top: 4px; }
.introduction-copy>p:not(.lead) { color: var(--muted); }
.home-introduction h2 { max-width: 520px; }
.rooms-section { padding-block: 85px; background: var(--soft); }
.rooms-layout { display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 10%; }
.room-index { margin-top: 36px; }
.room-index>a { display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: start; gap: 18px; padding-block: 22px; border-top: 1px solid var(--line); }
.room-index>a:last-child { border-bottom: 1px solid var(--line); }
.room-index h3 { font-size: 2rem; margin-bottom: 6px; }
.room-index p { font-size: .88rem; color: var(--muted); margin-bottom: 0; max-width: 310px; }
.room-arrow { color: var(--accent); font-size: 1.35rem; padding-top: 4px; }
.room-index a:hover h3 { color: var(--accent); }
.rooms-photo img { width: 100%; max-width: 460px; height: auto; aspect-ratio: auto; object-fit: contain; }
.rooms-photo figcaption { display: flex; justify-content: space-between; padding-top: 15px; font-size: .8rem; color: var(--muted); }
.rooms-photo figcaption a { padding-inline: 15px; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 35px; margin-bottom: 50px; }
.section-heading h2 { margin-bottom: 0; }
.section-heading>.text-link { flex-shrink: 0; margin-bottom: 7px; }
.section-heading>p { color: var(--muted); margin-bottom: 5px; font-size: .95rem; }
.journal-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 9%; align-items: start; }
.journal-story:nth-child(2) { padding-top: 120px; }
.journal-image { overflow: hidden; max-width: 500px; }
.journal-image img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.journal-story:nth-child(2) .journal-image img { height: auto; aspect-ratio: auto; object-fit: contain; }
.journal-copy { padding-top: 26px; max-width: 470px; }
.journal-copy .eyebrow { margin-bottom: 12px; }
.journal-copy h3 { font-size: 2.25rem; }
.journal-copy>p:not(.eyebrow) { color: var(--muted); font-size: .95rem; }
.journal-note { margin: 42px 0 0; font-size: .78rem; color: var(--muted); }
.home-approach { padding-block: 90px; background: var(--stone); }
.approach-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 11%; align-items: center; }
.approach-intro>p:not(.eyebrow) { color: var(--muted); max-width: 470px; }
.approach-flexibility { margin-top: 32px; }
.approach-flexibility h3 { font-size: 1.5rem; margin-bottom: 12px; }
.approach-flexibility p { color: var(--muted); font-size: .93rem; }
.approach-steps { list-style: none; padding: 0; margin: 0; }
.approach-steps li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; padding-block: 30px; border-top: 1px solid var(--sand); }
.approach-steps li:last-child { border-bottom: 1px solid var(--sand); }
.approach-steps h3 { font-size: 1.65rem; margin-bottom: 13px; }
.approach-steps p { margin-bottom: 0; font-size: .93rem; color: var(--muted); }
.approach-steps p a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.home-film { display: grid; grid-template-columns: 1fr 1fr; gap: 11%; align-items: center; }
.film-feature-image { position: relative; display: block; width: 85%; margin-left: 7%; }
.film-feature-image>img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.film-play { position: absolute; bottom: 24px; left: 24px; right: 24px; padding: 12px 17px; border-radius: 40px; background: var(--white); color: var(--accent); display: flex; align-items: center; justify-content: center; gap: 13px; font-size: .83rem; }
.film-feature-copy>p:not(.eyebrow) { color: var(--muted); max-width: 410px; }
.home-display-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.home-display { display: grid; grid-template-columns: .9fr 1fr; align-items: center; gap: 25px; }
.home-display img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.home-display .eyebrow { margin-bottom: 12px; }
.home-display h3 { font-size: 1.75rem; }
.home-display .text-link { font-size: .8rem; }

/* Shared page layouts. */
.page-hero { padding-block: 80px 65px; }
.page-hero>p:not(.eyebrow) { color: var(--muted); font-size: 1.1rem; max-width: 630px; margin-bottom: 0; }
.page-hero h1 { max-width: 1050px; }
.page-hero>.button { margin-top: 28px; }
.back-link { display: inline-block; margin-bottom: 30px; color: var(--accent); font-size: .85rem; }
.service-feature, .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; align-items: center; }
.service-feature { padding-bottom: 35px; }
.service-feature>div:first-child { height: 620px; }
.service-feature img { width: 100%; height: 100%; object-position: 50% 58%; }
.service-copy>p:not(.eyebrow), .about-grid p:not(.eyebrow) { color: var(--muted); }
.service-copy .button { margin-top: 10px; }
.process-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 45px; }
.process-columns article { padding-top: 25px; border-top: 1px solid var(--line); }
.process-columns h3 { font-size: 1.65rem; }
.process-columns p { color: var(--muted); font-size: .93rem; overflow-wrap: anywhere; }
.process-columns p a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.service-link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.service-link-grid>a { border-top: 1px solid var(--line); padding-top: 24px; }
.service-link-grid h3 { font-size: 1.8rem; }
.service-link-grid p { color: var(--muted); font-size: .95rem; }
.service-link-grid b { color: var(--accent); font-weight: 500; font-size: .85rem; border-bottom: 1px solid currentColor; padding-bottom: 7px; }
.flexible-section { background: var(--stone); }
.flexible-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: start; }
.flexible-grid>div:last-child>p { color: var(--muted); }
.service-detail { display: grid; grid-template-columns: 1.2fr 1fr; gap: 10%; padding-bottom: 90px; align-items: start; }
.service-detail>div>p:not(.eyebrow) { color: var(--muted); }
.planning-panel { background: var(--soft); padding: 38px; }
.planning-panel h3 { font-size: 1.8rem; }
.planning-panel ul { padding-left: 20px; color: var(--muted); }
.planning-panel li { padding-bottom: 12px; }
.planning-panel p { color: var(--muted); font-size: .95rem; }
.service-related { display: flex; gap: 28px; flex-wrap: wrap; align-items: center; padding-bottom: 80px; }
.service-related p { margin: 0; }
.faq-section { background: var(--soft); }
.faq-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 10%; }
.faqs details { border-top: 1px solid var(--line); }
.faqs details:last-child { border-bottom: 1px solid var(--line); }
.faqs summary { list-style: none; position: relative; padding: 23px 32px 23px 0; cursor: pointer; font-size: 1rem; }
.faqs summary::-webkit-details-marker { display: none; }
.faqs summary:after { content: '+'; position: absolute; right: 4px; top: 16px; color: var(--accent); font-size: 1.5rem; }
.faqs details[open] summary:after { content: '−'; }
.faqs details p { color: var(--muted); padding-right: 32px; font-size: .95rem; }
.about-feature { background: var(--soft); padding-block: 70px; }
.about-photo { height: 680px; }
.about-photo img { width: 100%; height: 100%; object-position: 50% 55%; border-radius: 45% 45% 0 0; }
.about-bottom { max-width: 800px; text-align: center; }
.about-bottom>p:not(.eyebrow) { color: var(--muted); max-width: 520px; margin-inline: auto; }

/* Portfolio browsing, albums, films and source-backed comments. */
.archive-summary { font-size: .8rem !important; margin-top: 22px; color: var(--muted); }
.archive-section { padding-bottom: 90px; }
.archive-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 25px; margin-bottom: 36px; padding-block: 20px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.archive-toolbar>p { margin: 0; font-size: .8rem; color: var(--muted); }
.archive-filters { display: flex; gap: 12px; }
.archive-filters button { border: 1px solid transparent; background: transparent; border-radius: 24px; padding: 10px 21px; min-height: 44px; font-size: .88rem; color: var(--accent); }
.archive-filters button[aria-pressed=true] { background: var(--accent); color: var(--white); }
.archive-filters button:hover:not([aria-pressed=true]) { background: var(--stone); }
.archive-grid { columns: 3; column-gap: 28px; }
.archive-card { display: inline-block; width: 100%; min-width: 0; margin-bottom: 36px; break-inside: avoid; vertical-align: top; }
.archive-cover { position: relative; overflow: hidden; }
.archive-cover>img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.media-badge { position: absolute; bottom: 15px; left: 15px; background: var(--white); color: var(--ink); border-radius: 20px; padding: 5px 12px; font-size: .7rem; }
.play-symbol { position: absolute; inset: 0; margin: auto; width: 55px; height: 55px; display: grid; place-items: center; border-radius: 50%; background: var(--white); color: var(--accent); font-size: 1.1rem; padding-left: 3px; }
.archive-meta { display: flex; justify-content: space-between; align-items: center; font-size: .7rem; color: var(--muted); padding-top: 16px; }
.archive-card h3 { font-size: 1.55rem; margin: 6px 0 0; }
.archive-card a:hover h3 { color: var(--accent); }
.archive-more { text-align: center; margin-top: 50px; }
.album-hero h1 { max-width: 960px; }
.album-meta { display: flex; flex-wrap: wrap; gap: 20px; color: var(--muted); font-size: .85rem; margin-bottom: 22px; }
.post-caption { max-width: 720px !important; font-size: 1rem !important; }
.album-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gallery-photo { position: relative; padding: 0; border: 0; background: var(--soft); overflow: hidden; width: 100%; display: block; aspect-ratio: 3/4; }
.gallery-photo>img { width: 100%; height: 100%; }
.gallery-photo .enlarge { position: absolute; right: 14px; bottom: 14px; width: 38px; height: 38px; display: grid; place-items: center; background: var(--white); color: var(--accent); font-size: 1.5rem; border-radius: 50%; }
.gallery-photo:hover .enlarge { background: var(--stone); }
.album-source { padding-top: 32px; font-size: .85rem; color: var(--muted); }
.album-source p { max-width: 650px; margin-bottom: 12px; }
.more-work { padding-block: 45px 80px; }
.mixed-film { margin-top: 70px; }
.video-shell { max-width: 620px; margin-inline: auto; }
.video-poster { position: relative; background: var(--soft); }
.video-poster>img { width: 100%; max-height: 700px; object-fit: contain; }
.video-load { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 36px); background: var(--white); color: var(--accent); border-color: var(--white); }
.video-load:hover { background: var(--stone); color: var(--accent); border-color: var(--stone); }
.video-help, .video-status { color: var(--muted); font-size: .85rem; margin-top: 16px; }
.video-help a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.instagram-player { overflow: hidden; }
.instagram-player .instagram-media, .instagram-player iframe { min-width: 0 !important; width: 100% !important; max-width: 100% !important; }
.feedback-section { background: var(--soft); }
.feedback-section .section-heading { align-items: center; }
.review-status { max-width: 370px; font-size: .8rem !important; color: var(--muted); }
.testimonials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 70px; }
.testimonial { margin: 0; padding-top: 28px; border-top: 1px solid var(--line); }
.testimonial blockquote { font: italic 1.8rem/1.5 var(--serif); letter-spacing: -.02em; margin: 0 0 24px; }
.testimonial figcaption { font-size: .76rem; color: var(--accent); overflow-wrap: anywhere; }

/* Local project stories retain their explicit owner-review notes. */
.story-index { padding-bottom: 100px; }
.story-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 60px 7%; }
.story-card { min-width: 0; }
.story-card>a>img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.story-card:nth-child(even) { padding-top: 65px; }
.story-card-copy { padding-top: 26px; }
.story-card-copy>.eyebrow { margin-bottom: 12px; }
.story-card h3 { font-size: 2rem; }
.story-card-copy>p:not(.eyebrow) { color: var(--muted); }
.story-draft-note { max-width: 780px; padding: 18px 23px; margin-top: 30px; border-left: 2px solid var(--accent); background: var(--stone); font-size: .85rem; }
.story-draft-note strong { font-weight: 500; }
.story-draft-note p { margin: 6px 0 0; color: var(--muted); }
.story-heading h1 { max-width: 990px; }
.story-hero-photo>img { width: 100%; height: 640px; object-position: 50% 55%; }
.story-layout { display: grid; grid-template-columns: 1.45fr 1fr; gap: 9%; padding-block: 65px; align-items: start; }
.story-narrative>section { margin-bottom: 38px; }
.story-narrative h2 { font-size: 2rem; letter-spacing: -.025em; margin-bottom: 17px; }
.story-narrative p { color: var(--muted); }
.proposed-brief { padding: 25px 28px; background: var(--soft); }
.proposed-brief .eyebrow { color: var(--accent); margin-bottom: 13px; font-size: .68rem; }
.proposed-brief p:last-child { margin-bottom: 0; }
.story-evidence { background: var(--stone); padding: 30px; font-size: .88rem; }
.story-evidence h2 { font-size: 1.65rem; letter-spacing: -.025em; }
.story-evidence ul { padding-left: 18px; }
.story-evidence li { padding-bottom: 12px; }
.story-evidence a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.ray-review { border-top: 1px solid var(--sand); padding-top: 20px; }
.ray-review summary { color: var(--accent); cursor: pointer; font-weight: 500; }
.ray-review ul { margin-top: 22px; }
.ray-review p { font-size: .8rem; }
.story-feedback { padding: 25px 0; border-block: 1px solid var(--line); margin: 0; }
.story-feedback blockquote { margin: 0 0 18px; font: italic 1.8rem/1.4 var(--serif); }
.story-feedback figcaption { font-size: .8rem; }
.story-feedback figcaption>p { margin-top: 12px; }
.story-comparison { padding-bottom: 70px; }
.story-comparison>h2 { font-size: 2.5rem; }
.story-comparison>p:not(.eyebrow) { color: var(--muted); }
.comparison-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 35px; }
.comparison-pair figure { margin: 0; }
.comparison-pair img { width: 100%; height: 530px; }
.comparison-pair figcaption { padding-top: 15px; font-size: .85rem; color: var(--muted); }
.story-gallery { padding-block: 30px 65px; }
.story-next, .story-gallery-link { display: flex; align-items: center; justify-content: space-between; gap: 50px; padding-block: 30px 80px; }
.story-next p, .story-gallery-link p { max-width: 660px; color: var(--muted); margin: 0; }
.story-next .button, .story-gallery-link .button { flex-shrink: 0; }
.story-archive-intro { padding: 35px 40px; margin-bottom: 45px; background: var(--stone); }
.story-archive-intro h2 { font-size: 2rem; margin-bottom: 14px; }
.story-archive-intro p { max-width: 750px; color: var(--muted); }

/* Displays. */
.display-photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding-bottom: 60px; }
.display-photo-pair img { width: 100%; height: 490px; }
.display-photo-pair span { display: block; padding-top: 15px; font-size: .85rem; color: var(--accent); }
.location { display: grid; grid-template-columns: 1.2fr 1fr; gap: 35px; padding-block: 65px; border-top: 1px solid var(--line); scroll-margin-top: 115px; }
.location h2 { font-size: 2.8rem; }
.location-main>p:not(.eyebrow) { color: var(--muted); max-width: 430px; }
.location-details { border-left: 1px solid var(--line); padding-left: 40px; }
.location-details h3 { font-size: 1.55rem; }
.location-details address { font-style: normal; margin-bottom: 22px; }
.location-details p { font-size: .9rem; }
.location-details .button { font-size: .8rem; padding: 13px 20px; }
.display-bottom { border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 40px; padding-block: 35px 80px; }
.display-bottom p { max-width: 600px; margin: 0; color: var(--muted); }

/* The enquiry is intentionally optional throughout. */
.contact-direct { display: flex; align-items: center; flex-wrap: wrap; gap: 30px; margin-top: 30px; }
.contact-direct .text-link { overflow-wrap: anywhere; }
.contact-grid { display: grid; grid-template-columns: .75fr 1.4fr; gap: 9%; padding-bottom: 100px; align-items: start; }
.contact-grid>aside>h2 { font-size: 2.4rem; }
.contact-grid>aside>p { color: var(--muted); font-size: .95rem; }
.contact-fact { padding-top: 28px; margin-top: 28px; border-top: 1px solid var(--line); }
.contact-fact .eyebrow { margin-bottom: 12px; }
.contact-fact>p:not(.eyebrow) { color: var(--muted); font-size: .9rem; }
.form-panel { padding: 40px; background: var(--white); border-radius: 8px; min-width: 0; }
.form-notice { margin: -40px -40px 35px; padding: 30px 40px; background: var(--stone); border-radius: 8px 8px 0 0; }
.form-notice strong { font: 1.7rem var(--serif); }
.form-notice p { color: var(--muted); font-size: .87rem; margin: 12px 0 0; }
.form-panel fieldset { border: 0; padding: 0; margin: 0 0 36px; min-width: 0; }
.form-panel fieldset>legend { display: block; width: 100%; padding: 0 0 20px; margin-bottom: 24px; border-bottom: 1px solid var(--line); font: 1.5rem/1.35 var(--serif); letter-spacing: -.02em; }
.fieldset-help { color: var(--muted); font-size: .87rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.enquiry-field { min-width: 0; }
.form-panel label { display: block; margin-bottom: 9px; font-size: .88rem; font-weight: 500; }
.form-panel input, .form-panel textarea, .form-panel select { display: block; width: 100%; max-width: 100%; margin: 0 0 25px; padding: 12px 14px; min-height: 48px; border: 1px solid var(--input-line); border-radius: 5px; color: var(--ink); background: var(--white); font-size: 1rem; }
.form-panel select { padding-right: 28px; }
.form-panel textarea { min-height: 125px; resize: vertical; }
.form-panel ::placeholder { color: var(--muted); opacity: 1; font-size: .88rem; }
.form-panel .room-choices { margin-bottom: 25px; }
.form-panel .room-choices>legend { border: 0; font: 500 .88rem var(--sans); margin: 0; padding-bottom: 14px; letter-spacing: normal; }
.form-panel .room-choices label { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin: 0 22px 0 0; font-size: .92rem; }
.form-panel .room-choices input { width: 20px; min-height: 20px; height: 20px; margin: 0; accent-color: var(--accent); }
#enquiry-form>.button { width: 100%; }
.form-footnote { margin: 18px 0 0; color: var(--muted); font-size: .79rem; }
.enquiry-review { padding: 0; overflow-wrap: anywhere; }
.enquiry-review h2 { font-size: 2.1rem; }
.enquiry-review>p { font-size: .92rem; }
.review-warning { padding: 18px 22px; border-left: 2px solid var(--accent); background: var(--stone); }
.enquiry-review textarea { min-height: 300px; font-size: .9rem; }
.enquiry-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.enquiry-actions .button { font-size: .85rem; }
.enquiry-actions .text-link { font-size: .83rem; }
#enquiry-status { color: var(--muted); margin-top: 20px; }

/* A gentle, consistent close to every page. */
.cta { padding-block: 75px; background: var(--taupe); border-top: 2px solid var(--brand-orange); }
.cta-inner { display: block; text-align: center; }
.cta h2 { margin-bottom: 25px; }
.cta .eyebrow { margin-bottom: 24px; }
.cta-inner>div>p:not(.eyebrow) { color: var(--muted); max-width: 490px; margin-inline: auto; }
.cta-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 30px; margin-top: 30px; }
footer { padding: 60px 0 25px; background: var(--paper); }
.footer-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 45px; padding-bottom: 45px; }
.footer-contact>p { color: var(--muted); font-size: .88rem; margin-bottom: 16px; }
.footer-contact>a { display: block; color: var(--accent); font-size: .85rem; margin-bottom: 7px; }
.footer-services { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 18px; font-size: .8rem; }
.footer-social { display: flex; flex-direction: column; gap: 12px; font-size: .85rem; color: var(--accent); }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; border-top: 1px solid var(--line); padding-top: 24px; font-size: .73rem; color: var(--muted); }
footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
footer .wordmark:hover { text-decoration: none; }

/* Photo viewer: unobtrusive controls, full photograph, keyboard navigation. */
.lightbox { padding: 0; border: 0; background: var(--paper); color: var(--ink); max-width: 95vw; width: auto; max-height: 95dvh; overflow: auto; box-shadow: 0 20px 100px #0004; }
.lightbox::backdrop { background: rgba(45, 42, 36, .84); }
.lightbox>img { height: auto; width: auto; max-height: 80dvh; max-width: 90vw; object-fit: contain; }
.lightbox-close { position: absolute; right: 12px; top: 12px; border: 0; background: var(--white); color: var(--accent); font-size: 2rem; width: 44px; height: 44px; display: grid; place-items: center; line-height: 1; border-radius: 50%; }
.lightbox-nav { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 13px 18px; }
.lightbox-nav p { margin: 0; font-size: .85rem; text-align: center; max-width: 660px; }
.lightbox-nav button { flex-shrink: 0; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--white); color: var(--accent); font-size: 1.4rem; }

@media (min-width: 1600px) {
  .wrap { width: min(1340px, calc(100% - 140px)); }
}
@media (max-width: 1150px) {
  .wrap { width: calc(100% - 72px); }
  .header-inner { min-height: 90px; }
  .site-header nav { gap: 22px; }
  .brand-copy>span { font-size: 1.7rem; }
  .brand-logo { width: 38px; height: 38px; }
  .hero-spread { gap: 6%; }
  .home-introduction, .rooms-layout, .approach-layout, .home-film, .service-feature, .about-grid, .flexible-grid, .service-detail, .faq-grid, .story-layout, .contact-grid { gap: 6%; }
  .home-display-grid { gap: 30px; }
  .home-display { gap: 20px; }
  .home-display h3 { font-size: 1.5rem; }
  .journal-copy h3 { font-size: 2rem; }
  .form-panel { padding: 30px; }
  .form-notice { margin: -30px -30px 30px; padding: 28px 30px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .location { grid-template-columns: 1.1fr 1fr; gap: 25px; }
  .location-details { padding-left: 25px; }
  .location h2 { font-size: 2.3rem; }
  .story-evidence { padding: 25px; }
  .story-next { gap: 30px; }
}
@media (max-width: 900px) {
  .wrap { width: calc(100% - 56px); }
  .site-header nav { gap: 17px; }
  .site-header nav>a { font-size: .8rem; }
  .site-header nav .button { padding: 10px 16px; gap: 14px; }
  .brand-copy>span { font-size: 1.6rem; }
  .brand-copy small { font-size: .5rem; }
  .wordmark { gap: 10px; }
  .section { padding-block: 80px; }
  .hero-spread figcaption { align-items: flex-start; flex-direction: column; gap: 4px; }
  .spread-detail { padding-top: 0; }
  .home-display { display: block; }
  .home-display img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .home-display>div { padding-top: 22px; }
  .home-display h3 { font-size: 1.75rem; }
  .process-columns, .service-link-grid { gap: 25px; }
  .process-columns h3 { font-size: 1.45rem; }
  .service-link-grid h3 { font-size: 1.6rem; }
  .about-photo { height: 620px; }
  .approach-steps li { gap: 16px; grid-template-columns: minmax(0, 1fr); }
  .approach-steps h3 { font-size: 1.5rem; }
  .story-layout { grid-template-columns: 1.2fr 1fr; }
  .story-next, .story-gallery-link { flex-direction: column; align-items: flex-start; gap: 25px; }
  .story-next p, .story-gallery-link p { max-width: 100%; }
  .contact-grid { grid-template-columns: .7fr 1.3fr; }
  .contact-grid>aside>h2 { font-size: 2rem; }
  .form-panel { padding: 24px; }
  .form-notice { margin: -24px -24px 28px; padding: 24px; }
  .location { grid-template-columns: 1fr; }
  .location-details { grid-column: 1; padding-left: 0; border-left: 0; }
  .footer-top { gap: 30px; flex-wrap: wrap; }
  .footer-contact { flex: 1; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 90px; }
  .wrap { width: calc(100% - 40px); }
  .preview-bar { flex-wrap: wrap; column-gap: 12px; row-gap: 0; padding: 6px 12px; font-size: .62rem; }
  .header-inner { min-height: 78px; }
  .brand-logo { width: 36px; height: 36px; }
  .brand-copy>span { font-size: 1.65rem; }
  .brand-copy small { font-size: .5rem; }
  .menu-toggle { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; background: transparent; border: 0; padding: 8px 0 8px 12px; color: var(--accent); font-size: .85rem; }
  .menu-toggle span { font-size: 1.1rem; }
  .site-header nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 16px 20px 24px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 12px 20px #3d383210; }
  .site-header nav.is-open { display: flex; align-items: stretch; flex-direction: column; gap: 3px; }
  .site-header nav>a { font-size: 1rem; }
  .site-header nav>a:not(.button) { padding-block: 10px; }
  .site-header nav .button { margin-top: 13px; font-size: .9rem; }
  h1 { font-size: clamp(2.8rem, 9.5vw, 4rem); }
  h2 { font-size: clamp(2.2rem, 7.4vw, 3.1rem); }
  .eyebrow { font-size: .65rem; letter-spacing: .13em; }
  .button { padding: 13px 23px; gap: 18px; }
  .text-link { font-size: .86rem; }
  .editorial-hero { padding-top: 42px; }
  .editorial-heading h1 { font-size: clamp(3.05rem, 10.7vw, 5rem); margin-bottom: 23px; }
  .editorial-heading>.eyebrow { max-width: 340px; margin-inline: auto; }
  .editorial-heading>p:not(.eyebrow) { max-width: 440px; font-size: .96rem; }
  .editorial-actions { gap: 15px 25px; flex-wrap: wrap; margin-top: 25px; }
  .hero-spread { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 40px; }
  .spread-main img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .spread-detail { padding-top: 0; }
  .spread-detail img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .hero-spread figcaption { font-size: .73rem; }
  .hero-spread figcaption>span { font-size: .55rem; letter-spacing: .07em; }
  .hero-spread figcaption a { gap: 12px; }
  .home-footnote { margin-top: 27px; font-size: .7rem; gap: 20px; }
  .home-footnote>span { max-width: 160px; }
  .home-footnote>a { max-width: 160px; text-align: right; }
  .section { padding-block: 65px; }
  .home-introduction, .rooms-layout, .approach-layout, .home-film, .service-feature, .about-grid, .flexible-grid, .service-detail, .faq-grid, .story-layout, .contact-grid { grid-template-columns: 1fr; gap: 30px; }
  .home-introduction h2 { margin-bottom: 0; }
  .introduction-copy { padding-top: 0; }
  .lead { font-size: 1.12rem; }
  .rooms-section, .home-approach { padding-block: 60px; }
  .rooms-layout { gap: 40px; }
  .room-index { margin-top: 30px; }
  .room-index h3 { font-size: 1.85rem; }
  .rooms-photo { width: 88%; margin-left: auto; }
  .rooms-photo img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 25px; margin-bottom: 32px; }
  .section-heading>.text-link { margin-bottom: 0; }
  .journal-layout { gap: 24px; grid-template-columns: 1fr 1fr; }
  .journal-story:nth-child(2) { padding-top: 70px; }
  .journal-image img, .journal-story:nth-child(2) .journal-image img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .journal-copy { padding-top: 19px; }
  .journal-copy .eyebrow { font-size: .57rem; }
  .journal-copy h3 { font-size: 1.65rem; }
  .journal-copy>p:not(.eyebrow) { font-size: .85rem; }
  .journal-copy .text-link { font-size: .8rem; }
  .journal-note { margin-top: 32px; }
  .approach-layout { gap: 35px; }
  .approach-steps h3 { font-size: 1.7rem; }
  .approach-steps li { padding-block: 25px; gap: 23px; }
  .home-film { gap: 38px; }
  .film-feature-image { width: 80%; max-width: 450px; margin-inline: auto; }
  .home-display-grid { gap: 25px; }
  .home-display img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .home-display h3 { font-size: 1.55rem; }
  .home-display .eyebrow { font-size: .6rem; }
  .page-hero { padding-block: 50px 42px; }
  .page-hero>p:not(.eyebrow) { font-size: 1rem; }
  .service-feature>div:first-child { height: 520px; }
  .service-copy { padding-top: 5px; }
  .process-columns, .service-link-grid { grid-template-columns: 1fr; gap: 25px; }
  .process-columns h3 { font-size: 1.7rem; }
  .process-columns p { font-size: .95rem; }
  .service-link-grid h3 { font-size: 1.85rem; }
  .service-link-grid>a { padding-bottom: 12px; }
  .service-detail { padding-bottom: 65px; }
  .planning-panel { padding: 28px; }
  .service-related { gap: 20px; padding-bottom: 60px; }
  .service-related p { width: 100%; }
  .about-feature { padding-block: 45px; }
  .about-photo { height: 550px; max-width: 500px; width: 90%; margin-inline: auto; }
  .about-grid>div:last-child { padding-top: 10px; }
  .faq-grid { gap: 25px; }
  .faq-grid h2 { margin-bottom: 0; }
  .archive-toolbar { flex-wrap: wrap; gap: 15px; }
  .archive-filters { gap: 7px; }
  .archive-filters button { font-size: .85rem; padding-inline: 17px; }
  .archive-grid { columns: 2; column-gap: 20px; }
  .archive-card h3 { font-size: 1.45rem; }
  .media-badge { left: 10px; bottom: 10px; padding: 4px 9px; font-size: .64rem; }
  .archive-section { padding-bottom: 65px; }
  .album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .album-source { padding-top: 25px; }
  .video-load { font-size: .85rem; }
  .testimonials { gap: 30px; }
  .feedback-section .section-heading { align-items: flex-start; }
  .testimonial blockquote { font-size: 1.6rem; }
  .story-cards { gap: 40px 25px; }
  .story-card h3 { font-size: 1.7rem; }
  .story-card:nth-child(even) { padding-top: 55px; }
  .story-card-copy>p:not(.eyebrow) { font-size: .9rem; }
  .story-draft-note { padding: 16px 20px; font-size: .8rem; }
  .story-hero-photo>img { height: 490px; }
  .story-layout { padding-block: 40px; }
  .story-evidence { padding: 27px; }
  .story-comparison>h2 { font-size: 2rem; }
  .comparison-pair { gap: 20px; }
  .comparison-pair img { height: 350px; }
  .comparison-pair figcaption { font-size: .8rem; }
  .story-next, .story-gallery-link { padding-bottom: 55px; }
  .story-archive-intro { padding: 27px; }
  .story-archive-intro h2 { font-size: 1.8rem; }
  .display-photo-pair { gap: 25px; padding-bottom: 40px; }
  .display-photo-pair img { height: 360px; }
  .display-photo-pair span { font-size: .8rem; }
  .location { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-block: 40px; }
  .location h2 { font-size: 2.2rem; }
  .display-bottom { flex-direction: column; align-items: flex-start; gap: 22px; padding-bottom: 60px; }
  .contact-direct { gap: 20px; }
  .contact-grid { padding-bottom: 65px; gap: 35px; }
  .contact-grid>aside { display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; }
  .contact-grid>aside>h2, .contact-grid>aside>p { grid-column: 1/-1; }
  .contact-grid>aside>h2 { font-size: 2.3rem; }
  .contact-fact { margin-top: 10px; padding-top: 22px; }
  .form-panel { padding: 28px; }
  .form-notice { margin: -28px -28px 28px; padding: 26px 28px; }
  .form-row { grid-template-columns: 1fr 1fr; gap: 20px; }
  .cta { padding-block: 60px; }
  .cta-actions { flex-direction: column; gap: 20px; }
  .footer-top { display: grid; grid-template-columns: 1fr 1fr; gap: 35px 25px; }
  .footer-top>.wordmark { grid-column: 1/-1; }
  .footer-contact { min-width: 0; }
  .footer-contact>a { overflow-wrap: anywhere; }
  .footer-bottom { flex-direction: column; gap: 12px; }
}
@media (max-width: 480px) {
  .editorial-actions { flex-direction: column; gap: 10px; }
  .editorial-actions .button { max-width: 100%; }
  .hero-spread { gap: 15px; }
  .spread-main img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .spread-detail { padding-top: 0; }
  .spread-detail img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .hero-spread figcaption>span { font-size: .5rem; }
  .hero-spread figcaption a { gap: 8px; font-size: .69rem; }
  .journal-layout { grid-template-columns: 1fr; gap: 40px; }
  .journal-story:nth-child(2) { padding-top: 0; width: 88%; margin-left: auto; }
  .journal-image img, .journal-story:nth-child(2) .journal-image img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .journal-copy h3 { font-size: 2rem; }
  .journal-copy>p:not(.eyebrow) { font-size: .95rem; }
  .journal-copy .eyebrow { font-size: .65rem; }
  .journal-copy .text-link { font-size: .86rem; }
  .home-display-grid { grid-template-columns: 1fr; gap: 35px; }
  .home-display { display: grid; grid-template-columns: .8fr 1fr; gap: 22px; }
  .home-display img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .home-display>div { padding-top: 0; }
  .home-display h3 { font-size: 1.5rem; }
  .archive-grid { column-gap: 15px; }
  .archive-card h3 { font-size: 1.25rem; }
  .archive-meta { font-size: .65rem; }
  .archive-filters button { padding-inline: 16px; }
  .testimonials { grid-template-columns: 1fr; gap: 30px; }
  .testimonial blockquote { font-size: 1.7rem; }
  .story-cards { grid-template-columns: 1fr; gap: 40px; }
  .story-card:nth-child(even) { padding-top: 0; }
  .story-card h3 { font-size: 2rem; }
  .story-hero-photo>img { height: 420px; }
  .comparison-pair { grid-template-columns: 1fr; gap: 25px; }
  .comparison-pair img { height: 440px; }
  .display-photo-pair { grid-template-columns: 1fr; gap: 30px; }
  .display-photo-pair img { height: 430px; }
  .service-feature>div:first-child { height: 440px; }
  .about-photo { height: 460px; }
  .contact-grid>aside { grid-template-columns: 1fr; gap: 0; }
  .form-panel { padding: 22px; }
  .form-notice { margin: -22px -22px 28px; padding: 25px 22px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .form-panel fieldset>legend { font-size: 1.35rem; }
  .enquiry-review h2 { font-size: 1.9rem; }
  .enquiry-actions { flex-direction: column; align-items: stretch; }
  .enquiry-actions .text-link { align-self: flex-start; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-top>.wordmark { grid-column: auto; }
  .footer-social { flex-direction: row; gap: 25px; }
  .lightbox-nav { gap: 10px; padding: 10px; }
  .lightbox-nav p { font-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.enquiry-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.enquiry-actions button:disabled{opacity:.65;cursor:wait}

/* Optional photos and analytics preferences. */
#enquiry-photos{max-width:100%;font:inherit;padding:12px 0}
#photo-status,#review-photos{overflow-wrap:anywhere}
.analytics-notice{position:fixed;z-index:100;bottom:16px;left:16px;right:16px;max-width:780px;margin:auto;padding:22px;background:var(--paper);color:var(--ink);box-shadow:0 4px 30px #0003;border:1px solid var(--line)}
.analytics-notice[hidden]{display:none}
.analytics-notice p{font-size:14px;line-height:1.55;margin:0 0 14px}
.analytics-notice a{text-decoration:underline}
.analytics-notice>div{display:flex;gap:12px;flex-wrap:wrap}
.analytics-preferences{display:block;margin:16px auto;font:inherit;font-size:13px;color:inherit;background:none;border:0;cursor:pointer}

.privacy-content{max-width:850px;padding-bottom:80px}.privacy-content h2{font-size:28px;margin-top:36px}.privacy-content a{text-decoration:underline}

/* Keep brochure colour blocks readable for links and small text. */
.home-approach, .flexible-section, .cta, .form-notice, .story-draft-note, .story-evidence, .story-archive-intro, .review-warning { --accent: var(--accent-strong); }
.footer-contact { max-width: 420px; }

/* Clear service choices and the owner-led team. */
.room-index>a { grid-template-columns: minmax(0, 1fr); }
.service-link-label { display: inline-block; margin-top: 12px; font-size: .9rem; color: var(--accent); text-decoration: underline; text-underline-offset: 4px; }
.service-link-grid>a { display: flex; flex-direction: column; align-items: flex-start; }
.service-link-grid img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; margin-bottom: 24px; }
.service-link-grid b { margin-top: auto; }
.service-link-grid>a:hover h3 { color: var(--accent); }
.service-page-photo { margin-block: 0 55px; max-width: 720px; }
.service-page-photo img { width: 100%; height: auto; }
.service-page-photo figcaption, .team-photo figcaption { margin-top: 14px; font-size: .9rem; color: var(--muted); }
.service-page-photo a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.team-intro { max-width: 740px; margin-bottom: 38px; }
.team-summary, .why-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px; }
.team-summary article, .why-grid article { border-top: 1px solid var(--line); padding-top: 24px; }
.team-summary h3 { margin-bottom: 8px; font-size: 2rem; }
.team-summary p, .why-grid p { color: var(--muted); font-size: 1rem; margin-bottom: 0; }
.team-summary .team-role { color: var(--accent); font-size: .9rem; font-weight: 500; margin-bottom: 16px; }
.why-section { background: var(--soft); }
.why-grid { row-gap: 38px; }
.why-grid h3 { font-size: 1.7rem; }
.team-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; align-items: start; }
.team-photo { margin: 0; }
.team-photo-frame { aspect-ratio: 709 / 566; overflow: hidden; }
.team-photo-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.team-bios article + article { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--line); }
.team-bios h3 { font-size: 1.9rem; }
.team-bios p { color: var(--muted); }
.client-services, .promise-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; }
.client-services h2 { font-size: clamp(2rem, 3.4vw, 3.2rem); }
.client-services p, .promise-grid p { color: var(--muted); }
.promise-section { background: var(--soft); }
.promise-grid .promise-finish { font: italic 1.8rem/1.4 var(--serif); color: var(--accent); margin-bottom: 0; }
.lightbox-nav button { width: auto; min-width: 70px; padding-inline: 12px; font-size: 1rem; }
@media (max-width: 760px) {
  .team-summary, .why-grid { grid-template-columns: 1fr; gap: 28px; }
  .team-feature, .client-services, .promise-grid { grid-template-columns: 1fr; gap: 32px; }
  .team-photo { max-width: 580px; }
  .service-link-grid img { max-height: 470px; object-fit: cover; }
  .client-services h2, .promise-grid h2 { margin-bottom: 0; }
  .service-page-photo { margin-bottom: 40px; }
}

/* Individual team photos: crop original photos without altering faces. */
.team-members{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.team-members h3{font-size:1.9rem;margin-top:24px}
.team-members p{color:var(--muted)}
.team-members .team-photo{max-width:none}
.team-portrait{position:relative;overflow:hidden;background:var(--line);aspect-ratio:4/5}
.team-portrait img{position:absolute;width:100%;height:auto;max-width:none;left:0}
.ray-portrait img{top:-42%}
.alex-portrait img{width:172%;left:-9%;top:-85%}
@media(max-width:700px){.team-members{grid-template-columns:1fr;gap:40px}.team-portrait{max-width:480px}}
/* A more visual opening and a shorter, personal homepage. */
.editorial-hero{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center;padding-block:44px 55px}
.editorial-heading{max-width:none;text-align:left;margin:0}
.editorial-heading h1{font-size:clamp(2.7rem,4.5vw,4.5rem);line-height:1.07;margin-bottom:24px}
.editorial-heading>.eyebrow{margin-bottom:22px}
.editorial-heading>p:not(.eyebrow){margin-left:0;max-width:470px}
.editorial-actions{justify-content:flex-start;gap:20px;flex-wrap:wrap;margin-top:25px}
.home-hero-photo{margin:0;min-width:0}
.home-hero-photo>a{display:block}
.home-hero-photo img{width:100%;height:600px;object-fit:cover;object-position:50% 55%}
.home-hero-photo figcaption{font-size:.8rem;color:var(--muted);margin-top:14px}
.home-hero-photo figcaption a{text-decoration:underline;text-underline-offset:3px}
body[data-page="home"] .section{padding-block:72px}
body[data-page="home"] .home-journal{border-top:1px solid var(--line)}
body[data-page="home"] .journal-story:nth-child(2){padding-top:55px}
body[data-page="home"] .home-approach{padding-block:65px}
.home-team-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;max-width:920px}
.home-team-grid .team-portrait{max-width:400px;aspect-ratio:4/5;margin-bottom:22px}
.home-team-grid h3{font-size:2rem;margin-bottom:4px}
.home-team-grid p{max-width:400px;color:var(--muted)}
.home-team-grid .team-role{color:var(--accent);margin-bottom:12px}
.home-haley{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:center;gap:25px;border-top:1px solid var(--line);margin-top:35px;padding-top:26px}
.home-haley h3,.home-haley p{margin:0}
.home-haley h3{font-size:1.5rem}
.home-budget{background:var(--stone)}
.home-budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}
.home-budget-grid h2{margin-bottom:0}
.home-area{max-width:900px}
.mobile-contact{display:none}
#enquire{scroll-margin-top:110px}
body[data-page="contact"] .page-hero{padding-block:45px 35px}
body[data-page="contact"] .page-hero h1{font-size:clamp(2.6rem,4.8vw,4.5rem)}
body[data-page="contact"] .page-hero>p:not(.eyebrow){max-width:750px}
@media(max-width:900px){.editorial-hero{gap:5%}.home-hero-photo img{height:510px}.editorial-heading h1{font-size:3.1rem}.editorial-actions{gap:16px}.home-haley{grid-template-columns:1fr 1.5fr}.home-haley>a{grid-column:2}}
@media(max-width:760px){
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .editorial-hero{grid-template-columns:1fr;padding-block:28px 35px;gap:30px}
  .editorial-heading h1{font-size:clamp(2.4rem,9vw,3.5rem);margin-bottom:16px;max-width:550px}
  .editorial-heading>.eyebrow{font-size:.62rem;margin-bottom:14px}
  .editorial-heading>p:not(.eyebrow){font-size:.96rem;line-height:1.6}
  .editorial-actions{margin-top:20px;gap:14px}
  .editorial-actions .text-link{font-size:.83rem}
  .home-hero-photo img{height:auto;aspect-ratio:4/5;object-fit:cover}
  body[data-page="home"] .section{padding-block:45px}
  body[data-page="home"] .home-approach{padding-block:45px}
  .home-team-grid{gap:22px}
  .home-team-grid .team-portrait{margin-bottom:16px}
  .home-team-grid h3{font-size:1.7rem}
  .home-team-grid p{font-size:.9rem}
  .home-haley{grid-template-columns:1fr;gap:12px;margin-top:25px}
  .home-haley>a{grid-column:auto;justify-self:start}
  .home-budget-grid{grid-template-columns:1fr;gap:22px}
  .mobile-contact{display:flex;position:fixed;z-index:30;bottom:0;left:0;right:0;align-items:center;gap:12px;padding:10px 20px calc(10px + env(safe-area-inset-bottom,0px));background:var(--paper,#faf7f0);border-top:1px solid var(--line);box-shadow:0 -3px 18px #00000009}
  .mobile-contact>a{flex:1;text-align:center;min-height:44px;display:flex;justify-content:center;align-items:center;font-size:.9rem}
  .mobile-contact .button{padding:12px 16px}
  .analytics-notice{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  .enquiry-layout{display:flex;flex-direction:column;gap:30px}
  .enquiry-layout>.form-panel{order:-1;width:100%;min-width:0}
  .enquiry-layout>aside{width:100%}
  body[data-page="contact"] .page-hero{padding-block:28px}
  body[data-page="contact"] .page-hero h1{font-size:2.7rem}
  #enquire{scroll-margin-top:95px}
}
@media(max-width:760px){
  .editorial-hero{gap:16px}
  .editorial-heading{display:contents}
  .editorial-heading>.eyebrow{order:0;margin:0}
  .editorial-heading h1{order:1;margin:0}
  .home-hero-photo{order:2;margin-block:6px 8px}
  .home-hero-photo img{aspect-ratio:1/1.08}
  .editorial-heading>p:not(.eyebrow){order:3;margin:0}
  .editorial-heading>p.hero-budget{order:4;margin:0}
  .editorial-actions{order:5;justify-content:flex-start;margin-top:5px}
  .home-team-grid .team-portrait{aspect-ratio:4/5}
}
#home-team-heading{scroll-margin-top:105px}
/* Quick first enquiries, with the full planning questions available on request. */
.enquiry-extra{border:1px solid var(--line);margin:4px 0 26px;padding:0 24px;border-radius:3px}
.enquiry-extra>summary{cursor:pointer;font-weight:600;color:var(--accent);padding:20px 0;min-height:48px}
.enquiry-extra>summary span{font-weight:400;color:var(--muted);font-size:.9em}
.enquiry-extra[open]>summary{border-bottom:1px solid var(--line);margin-bottom:20px}
.enquiry-extra fieldset:last-child{border-bottom:0;margin-bottom:0}
.enquiry-extra .fieldset-help{margin-bottom:20px}
.editorial-heading .hero-budget,.bathroom-hero .hero-budget{color:var(--accent);font-size:.95rem;line-height:1.6}
.bathroom-hero{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center;padding-block:44px 65px}
.bathroom-hero h1{font-size:clamp(2.7rem,4.5vw,4.5rem);line-height:1.07;margin-bottom:24px}
.bathroom-hero-copy>p:not(.eyebrow){max-width:460px;color:var(--muted)}
.bathroom-hero-copy .contact-direct{gap:20px;flex-wrap:wrap}
.bathroom-hero-photo{margin:0;min-width:0}
.bathroom-hero-photo img{width:100%;height:600px;object-fit:cover;object-position:50% 55%}
.bathroom-hero-photo figcaption{font-size:.8rem;color:var(--muted);margin-top:14px}
.bathroom-hero-photo figcaption a{text-decoration:underline;text-underline-offset:3px}
.home-team-grid{max-width:none;gap:60px}
.home-team-grid article{display:grid;grid-template-columns:180px 1fr;column-gap:24px;align-content:start}
.home-team-grid article>.team-portrait{grid-row:1/4;margin:0}
.home-team-grid article>h3{align-self:end}
.home-team-grid article>p{font-size:.95rem}
@media(max-width:1100px){.home-team-grid{gap:30px}.home-team-grid article{grid-template-columns:130px 1fr;column-gap:20px}}
@media(max-width:760px){
 .editorial-heading>p.hero-budget{order:2;font-size:.83rem;margin:0;color:var(--accent)}
 .home-hero-photo{order:3}
 .editorial-heading>p:not(.eyebrow):not(.hero-budget){order:4}
 .editorial-actions{order:5}
 .bathroom-hero{grid-template-columns:1fr;gap:16px;padding-block:28px 40px}
 .bathroom-hero-copy{display:contents}
 .bathroom-hero .eyebrow{order:0;margin:0;font-size:.62rem}
 .bathroom-hero h1{order:1;font-size:clamp(2.4rem,9vw,3.5rem);margin:0}
 .bathroom-hero-copy>.hero-budget{order:2;font-size:.83rem;margin:0;color:var(--accent)}
 .bathroom-hero-photo{order:3;margin-block:6px 8px}
 .bathroom-hero-photo img{height:auto;aspect-ratio:1/1.08;object-fit:cover}
 .bathroom-hero-copy>p:not(.eyebrow):not(.hero-budget){order:4;margin:0;font-size:.96rem;line-height:1.6}
 .bathroom-hero-copy>.contact-direct{order:5;margin-top:5px}
 .home-team-grid{gap:22px}
 .home-team-grid article{display:block}
 .home-team-grid article>.team-portrait{margin-bottom:16px}
 .home-team-grid article>p{font-size:.9rem}
 .enquiry-extra{padding-inline:18px}
}
