/* Interspaces: Belleza's distinctive, relaxed lettering. Licence beside the font. */
@font-face {
  font-family: 'Belleza';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/belleza-latin-regular.woff2') format('woff2');
}
:root {
  --sans: 'Belleza', 'Trebuchet MS', sans-serif;
  --serif: 'Belleza', 'Trebuchet MS', sans-serif;
  --sage: #f8f7f2;
}
/* A quieter photographic palette, retaining the original banner and lettering. */
.banner-frame img { filter: saturate(.76) brightness(1.04) contrast(.97); }
body { font-size: 18px; line-height: 1.5; font-weight: 400; }
h1, h2, h3, .tab-title {
  font-family: var(--sans);
  font-weight: 400;
  letter-spacing: .005em;
  line-height: 1.12;
}
h1 em, h2 em { font-style: normal; }
.hero #hero-heading, .setup-hero h1 {
  font-size: clamp(44px, 5vw, 64px);
  font-weight: 400;
  letter-spacing: .005em;
  line-height: 1.06;
}
h2, .section-heading h2, .questions h2, .new-home-copy h2, .setup-page h2 {
  font-size: clamp(32px, 3.5vw, 43px);
  line-height: 1.12;
  letter-spacing: .005em;
}
.enquiry-intro h2 { font-size: clamp(30px, 3vw, 40px); }
.header nav, .header-cta, .back-home { font-size: 15px; }
.header nav { gap: clamp(12px, 2vw, 25px); }
.eyebrow, .section-label { font-size: 12px; font-weight: 400; letter-spacing: .13em; }
.hero-aside p { font-size: 19px; line-height: 1.5; }
.hero-caption { font-size: 13px; }
.button, .service-panel .text-button { font-size: 16px; }
.about-copy .lead { font-size: 19px; line-height: 1.35; }
.about-copy > p:not(.lead), .new-home-copy > p:not(.eyebrow),
.setup-scope > div > p:not(.eyebrow), .setup-intro > div > p,
.setup-quote > p:not(.eyebrow), .enquiry-intro > p:not(.eyebrow),
.contact-card > p:not(.eyebrow) { font-size: 17px; line-height: 1.5; }
.signature { font-size: 30px; }
.signature span { font-size: 13px; }
.new-home-copy .new-home-lead { font-size: 25px!important; line-height: 1.35!important; }
.new-home-copy .new-home-detail { font-size: 14px!important; }
.new-home-feature .new-home-grid { row-gap: 24px; }
.new-home-copy h2 { font-size: clamp(25px, 2.55vw, 34px); }
.new-home-copy h2 > span { white-space: nowrap; }
.new-home-copy > p:not(.eyebrow), .new-home-service-line { font-size: 19px; line-height: 1.35; }
.new-home-service-line { grid-column: 1 / -1; margin: 0; text-align: right; color: var(--muted); }
.footer-instagram-only { justify-content: center; }
.footer-instagram-only .footer-social { margin: 0; }
.services-surface, .new-home-feature, .setup-example, .enquiry-surface, .service-tab:hover, .service-tab:focus-visible { background: var(--paper); }
.service-tab[aria-selected=true], .service-tab[aria-selected=true]:hover { background: var(--paper); }
.service-tab[aria-selected=true]:after { background: var(--ink); }
.button, .button:hover { background: var(--paper); color: var(--ink); border-color: var(--line); }
.button:hover { border-color: var(--ink); }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline-color: var(--ink); }
.enquiry-intro h2 { color: var(--ink); }
.enquiry-intro h2 em { color: var(--ink); }
.enquiry-intro > p:not(.eyebrow) { color: var(--muted); }
.new-home-photo span, .section-heading > p { font-size: 14px; }
.tab-title { font-size: 29px; }
.tab-description { font-size: 14px; }
.service-panel h3, .steps h3 { font-size: 29px; letter-spacing: .005em; }
.service-panel .eyebrow { font-size: 11px; }
.service-panel li, .steps p, summary, details p { font-size: 16px; }
.steps li > span { font-size: 19px; font-variant-numeric: lining-nums; }
.gentle-note { font-size: 21px; }
.project-card h2 { font-size: 35px; }
.project-card > p { font-size: 17px; }
.photo-label, .gallery-expand { font-size: 12px; }
.setup-intro > p { font-size: 28px; }
.setup-inclusions h3 { font-size: 29px; }
.setup-inclusions strong { font-size: 18px; }
.setup-inclusions span { font-size: 16px; }
.contact-number { font-size: 28px; font-variant-numeric: lining-nums; letter-spacing: .01em; }
.contact-card .contact-detail { font-size: 14px!important; }
.footer .wordmark { font-family: var(--sans); font-size: 21px; }
.footer > div > p { font-size: 18px; font-style: normal; }
.footer > p, .footer > p span, .footer-social { font-size: 14px; }
/* Closer leading and heading spacing throughout the page. */
.header { min-height: 80px; padding-block: 14px; }
.hero .banner-frame { margin-bottom: clamp(22px, 3vw, 36px); }
.hero .hero-top { margin-bottom: 12px; }
.hero-aside { padding-top: 12px; }
.little-line { margin-bottom: 16px; }
.eyebrow, .section-heading .eyebrow, .questions .eyebrow { margin-bottom: 12px; }
.section, .approach-surface .section { padding-block: 64px; }
.approach-surface { background: var(--paper); color: var(--ink); }
.approach-surface .eyebrow, .approach-surface .section-heading > p, .approach-surface .steps p { color: var(--muted); }
.approach-surface .steps li { border-color: var(--line); }
.approach-surface .steps li > span { color: var(--muted); }
.about { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.7fr); gap: 44px; align-items: center; }
.about-copy { width: 100%; max-width: none; text-align: right; }
.about-copy h2 { margin-bottom: 16px; font-size: clamp(26px, 3.1vw, 39px); white-space: nowrap; text-align: right; }
.about-copy > p:not(.lead) { max-width: none; font-size: 19px; line-height: 1.35; margin-top: 16px; }
.about-hello { align-self: center; text-align: center; padding-top: 27px; }
.about-portrait { display: block; width: 200px; max-width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; margin: 18px auto 0; }
.section-heading { margin-bottom: 26px; }
.section-heading > p, .tab-description, .steps p, details p { line-height: 1.5; }
.new-home-copy > p:not(.eyebrow), .enquiry-intro > p:not(.eyebrow),
.setup-scope > div > p:not(.eyebrow) { margin-top: 16px; }
.new-home-copy .button, .hero-aside .button { margin-top: 20px; }
.setup-intro { margin-top: 24px; margin-bottom: 32px; }
.setup-quote > p:not(.eyebrow) { margin-top: 18px; }
.service-panel h3 { margin-bottom: 12px; }
.service-tab > span:not(.tab-arrow) { min-width: 0; }
#tab-shed .tab-title { white-space: normal; overflow-wrap: normal; text-wrap: balance; }
@media (max-width: 760px) {
  .header { min-height: 0; padding-block: 13px; gap: 4px 18px; }
  .header nav { width: 100%; font-size: 13px; gap: 2px 16px; }
  .header nav a { padding-block: 4px; }
  .header-cta { margin-left: auto; padding-block: 4px; font-size: 13px; }
  .hero #hero-heading, .setup-hero h1 { font-size: clamp(40px, 10.5vw, 56px); }
  .hero-aside p { font-size: 18px; }
  .hero-caption { font-size: 11px; }
  .eyebrow, .section-label { font-size: 11px; }
  .about-copy .lead, .about-copy > p:not(.lead) { font-size: 18px; line-height: 1.35; }
  .new-home-copy > p:not(.eyebrow), .new-home-service-line { font-size: 18px; line-height: 1.35; }
  .new-home-service-line { text-align: left; }
  .new-home-copy h2 { font-size: clamp(23px, 5.8vw, 34px); }
  .new-home-copy h2 > span { white-space: normal; }
  .new-home-copy h2 br:last-child { display: initial; }
  .service-tab, .service-tab:not(:first-child) { padding-inline: 8px; }
  .tab-title { font-size: clamp(17px, 5vw, 23px); white-space: nowrap; }
  .section-heading > p { font-size: 15px; }
  .service-panel li, .steps p, summary, details p { font-size: 16px; }
  .gentle-note { font-size: 20px; }
  .project-card h2 { font-size: 30px; }
  .project-card > p { font-size: 17px; }
  .gallery-expand { font-size: 11px; }
  .contact-number { font-size: 26px; }
  .footer > p, .footer > p span { font-size: 14px; }
  .section, .approach-surface .section { padding-block: 44px; }
  .hero .hero-top { gap: 20px; }
  .section-heading { margin-bottom: 22px; }
  .section-heading > p { margin-top: 12px; }
  .about { grid-template-columns: 1fr; gap: 28px; }
  .about-hello { padding-top: 16.5px; }
  .about-copy h2 { margin-bottom: 16px; font-size: clamp(28px, 6.5vw, 36px); white-space: normal; }
  .about-portrait { width: 164px; margin-top: 14px; }
  .service-panel { gap: 16px; }
}
@media (max-width: 370px) {
  .contact-number { font-size: 25px; }
}
.enquiry-email { display: block; font-size: 23px; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.contact-card .contact-number { display: block; margin-top: 10px; font-size: 22px; }
.contact-card .enquiry-link { margin-top: 24px; }
