@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root {
  --ink: #201d1d;
  --ink-soft: #514949;
  --paper: #f2ede8;
  --paper-warm: #dfd1c8;
  --white: #fffdfa;
  --line: rgba(32, 29, 29, .14);
  --rose: #c58a80;
  --rose-dark: #965c57;
  --night: #252022;
  --display: 'Playfair Display', Georgia, serif;
  --body: 'DM Sans', Arial, sans-serif;
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 99; padding: .7rem 1rem; background: var(--ink); color: white; }
.skip-link:focus { top: 1rem; }
.site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--line); background: rgba(244, 240, 236, .92); backdrop-filter: blur(18px); }
.header-inner { width: min(var(--max), calc(100% - 3rem)); min-height: 82px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.wordmark { display: inline-flex; flex-direction: column; text-decoration: none; line-height: 1; }
.wordmark span { font: 600 1.35rem/1 var(--display); letter-spacing: -.03em; }
.wordmark small { margin-top: .35rem; font-size: .58rem; letter-spacing: .29em; text-transform: uppercase; color: var(--rose-dark); }
.wordmark-logo { display: block; width: min(280px, 30vw); height: auto; filter: brightness(0) saturate(100%); }
.main-nav { display: flex; align-items: center; gap: 1.55rem; font-size: .78rem; letter-spacing: .05em; }
.main-nav a { text-decoration: none; color: var(--ink-soft); }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--ink); }
.nav-cta { padding: .68rem 1.05rem; border: 1px solid var(--ink); color: var(--ink) !important; }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--ink); font: inherit; cursor: pointer; }
.menu-toggle span { display: block; width: 1.3rem; height: 1px; margin: .25rem 0; background: currentColor; }
.menu-toggle b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
main { overflow: hidden; }
.hero, .page-hero, .about-hero, .contact-hero, .section-grid, .services-section, .gallery-section, .feature-band, .price-strip, .pricing-grid, .policy-section, .faq-list, .simple-page, .about-details, .promise-grid, .service-mini-grid, .contact-note { width: min(var(--max), calc(100% - 3rem)); margin-right: auto; margin-left: auto; }
.hero { min-height: 690px; padding: 7rem 0 6rem; display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: clamp(3rem, 8vw, 9rem); }
.home-hero { position: relative; width: 100%; max-width: none; min-height: 760px; padding: 8rem max(1.5rem, calc((100% - var(--max)) / 2)); overflow: hidden; background: var(--night); color: white; }
.home-hero::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 24% 34%, rgba(197,138,128,.24), transparent 28%), linear-gradient(105deg, rgba(37,32,34,.98) 0%, rgba(37,32,34,.88) 40%, rgba(37,32,34,.32) 100%); }
.home-hero > * { position: relative; z-index: 1; }
.hero-copy { padding-left: clamp(0rem, 4vw, 4rem); }
.home-hero .hero-copy { padding-left: 0; }
.home-hero .eyebrow { color: #efb6ac; }
.home-hero h1 { color: white; }
.home-hero .hero-lede, .home-hero .hero-note { color: rgba(255,255,255,.76); }
.home-hero .text-link { color: white; border-color: rgba(255,255,255,.28); }
.home-hero .text-link span { color: #efb6ac; }
.eyebrow { margin: 0 0 1.1rem; color: var(--rose-dark); font-size: .68rem; font-weight: 600; letter-spacing: .18em; line-height: 1.4; text-transform: uppercase; }
h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: 500; letter-spacing: -.045em; line-height: 1.04; }
h1 { font-size: clamp(3.2rem, 7vw, 6.3rem); max-width: 800px; }
h1 em { color: var(--rose-dark); font-weight: 500; }
h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
h3 { font-size: 1.55rem; }
p { max-width: 68ch; }
.hero-lede { margin: 2rem 0 0; max-width: 31rem; color: var(--ink-soft); font-size: 1.15rem; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin-top: 2.4rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .8rem 1.25rem; border: 1px solid transparent; text-decoration: none; font: 600 .73rem/1 var(--body); letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.button-dark { background: var(--ink); color: var(--white); }
.button-dark:hover, .button-dark:focus-visible { background: var(--rose-dark); }
.button-light { border-color: rgba(255,255,255,.35); color: white; }
.button-light:hover, .button-light:focus-visible { background: white; color: var(--ink); }
.text-link { display: inline-flex; align-items: center; gap: .55rem; color: var(--ink); font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-decoration: none; border-bottom: 1px solid var(--line); padding-bottom: .35rem; }
.text-link span { color: var(--rose-dark); font-size: 1.1rem; }
.text-link:hover { border-color: var(--rose-dark); }
.hero-note { display: flex; gap: .8rem; margin-top: 4.5rem; color: var(--ink-soft); font-size: .74rem; line-height: 1.55; }
.note-mark { color: var(--rose-dark); font-size: 1.1rem; }
.hero-image-frame { position: relative; min-height: 610px; padding: 1.1rem 1.1rem 3rem; background: var(--paper-warm); transform: rotate(1.5deg); box-shadow: 0 30px 80px rgba(0,0,0,.24); }
.home-hero .hero-image-frame { min-height: 650px; border: 1px solid rgba(255,255,255,.18); background: #40383b; transform: rotate(2deg); }
.hero-image-frame img { width: 100%; height: 100%; min-height: 550px; object-fit: cover; object-position: center; filter: saturate(.84) contrast(1.04); }
.home-hero .hero-image-frame img { min-height: 590px; filter: saturate(.92) contrast(1.06); }
.home-hero .image-caption { color: rgba(255,255,255,.72); }
.image-caption { position: absolute; right: 1.2rem; bottom: .7rem; color: var(--ink-soft); font-size: .67rem; letter-spacing: .08em; text-transform: uppercase; }
.intro-section { padding: 8rem 0 7rem; grid-template-columns: .9fr 1.1fr; gap: 8rem; border-top: 1px solid var(--line); }
.home-hero + .intro-section { border-top: 0; }
.intro-section p, .copy-section p, .about-copy p { color: var(--ink-soft); }
.services-section { padding: 1rem 0 8rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.2rem; }
.section-heading h2 { max-width: 31rem; }
.section-aside { max-width: 15rem; margin: 0; color: var(--ink-soft); font-size: .85rem; }
.service-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; align-items: start; }
.service-card { position: relative; min-height: 490px; overflow: hidden; background: var(--night); color: white; text-decoration: none; }
.service-card:nth-child(2) { margin-top: 4rem; }
.service-card:nth-child(3) { margin-top: 1.5rem; }
.service-card img { width: 100%; height: 100%; object-fit: cover; opacity: .8; transition: transform .6s ease, opacity .6s ease; }
.service-card:hover img { transform: scale(1.04); opacity: .65; }
.service-card-overlay { position: absolute; inset: auto 0 0; display: flex; flex-direction: column; gap: .6rem; padding: 2rem; background: linear-gradient(transparent, rgba(22,17,19,.9) 32%); }
.service-card-overlay .eyebrow { color: #e1b0a7; margin-bottom: .2rem; }
.service-card-overlay h2 { max-width: 13rem; font: 500 2rem/1.08 var(--display); }
.service-card-overlay span:last-child { max-width: 18rem; color: rgba(255,255,255,.75); font-size: .88rem; }
.feature-band { margin-bottom: 8rem; display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; background: var(--night); color: white; box-shadow: 0 20px 60px rgba(32,29,29,.14); }
.feature-image { min-height: 570px; padding: 1rem; }
.feature-image img { width: 100%; height: 100%; min-height: 540px; object-fit: cover; opacity: .88; }
.feature-copy { padding: 4rem clamp(2rem, 6vw, 7rem) 4rem 3rem; }
.feature-copy .eyebrow { color: #e1b0a7; }
.feature-copy p:not(.eyebrow) { color: rgba(255,255,255,.73); }
.feature-copy .text-link { margin-top: 1.5rem; color: white; border-color: rgba(255,255,255,.25); }
.price-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem 6rem; padding: 4rem 0 5rem; border-top: 1px solid var(--line); }
.price-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.price-items div { padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.price-items strong { display: block; color: var(--rose-dark); font: 500 2.4rem/1 var(--display); }
.price-items span, .fine-print { display: block; margin-top: .7rem; color: var(--ink-soft); font-size: .78rem; }
.fine-print { grid-column: 2; margin-top: -2rem; }
.cta-band { width: 100%; margin-top: 2rem; padding: 5.5rem max(1.5rem, calc((100% - var(--max)) / 2)); display: flex; align-items: end; justify-content: space-between; gap: 3rem; background: linear-gradient(115deg, var(--rose-dark), #713f45); color: white; }
.cta-band > div { max-width: 35rem; }
.cta-band .eyebrow { color: #f2c7bd; }
.cta-band h2 { max-width: 31rem; }
.cta-band p:not(.eyebrow) { color: rgba(255,255,255,.82); }
.page-hero { min-height: 600px; padding: 7rem 0; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 6rem; }
.page-hero > div:first-child { max-width: 34rem; }
.page-hero p:not(.eyebrow) { margin: 1.8rem 0 2rem; color: var(--ink-soft); font-size: 1.08rem; }
.page-hero-image { min-height: 500px; padding: 1rem; background: var(--paper-warm); transform: rotate(-1.2deg); }
.page-hero-image img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; }
.compact-hero { min-height: 430px; grid-template-columns: 1.3fr .7fr; }
.compact-hero h1 { max-width: 650px; }
.price-feature, .question-mark, .area-map-card { min-height: 260px; display: flex; flex-direction: column; justify-content: end; padding: 2rem; background: var(--night); color: white; }
.price-feature span { color: #e1b0a7; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.price-feature strong { max-width: 13rem; margin-top: .5rem; font: 500 3rem/1 var(--display); }
.copy-section { padding: 6rem 0; grid-template-columns: .92fr 1.08fr; gap: 8rem; border-top: 1px solid var(--line); }
.copy-section p:first-child { margin-top: 0; }
.gallery-section { padding: 1rem 0 8rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .85rem; }
.gallery-card { position: relative; min-height: 360px; margin: 0; overflow: hidden; background: var(--paper-warm); }
.gallery-card:nth-child(3n+2) { margin-top: 3rem; }
.gallery-card img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; transition: transform .5s ease; }
.gallery-card:hover img { transform: scale(1.035); }
.gallery-card figcaption { position: absolute; right: .8rem; bottom: .75rem; left: .8rem; padding: .6rem .7rem; background: rgba(32,29,29,.74); color: white; font-size: .68rem; line-height: 1.3; opacity: 0; transition: opacity .3s ease; }
.gallery-card:hover figcaption, .gallery-card:focus-within figcaption { opacity: 1; }
.body-hero .page-hero-image { background: #171317; }
.sensitive-hero { position: relative; }
.sensitive-hero img, .sensitive-card img { filter: blur(20px) brightness(.75); transform: scale(1.04); }
.sensitive-hero.revealed img { filter: none; transform: none; }
.hero-overlay-label { position: absolute; left: 1.5rem; bottom: 1.5rem; color: white; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.consent-panel { width: min(960px, calc(100% - 3rem)); margin: 1rem auto 6rem; padding: 2.2rem; display: flex; align-items: end; justify-content: space-between; gap: 2rem; border: 1px solid var(--line); background: rgba(255,255,255,.37); }
.consent-panel h2 { max-width: 30rem; font-size: 2rem; }
.consent-panel p:not(.eyebrow) { margin-bottom: 0; color: var(--ink-soft); }
.sensitive-gallery-wrap { position: relative; }
.sensitive-gallery-wrap [data-sensitive-content] { position: relative; }
.sensitive-gallery-wrap [data-sensitive-content]::before { content: 'Gallery blurred until you choose to reveal it'; position: absolute; inset: 45% auto auto 50%; z-index: 2; transform: translate(-50%, -50%); padding: .7rem 1rem; background: rgba(32,29,29,.88); color: white; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.sensitive-gallery-wrap.revealed [data-sensitive-content]::before { display: none; }
.sensitive-gallery-wrap.revealed .sensitive-card img { filter: none; transform: none; }
.promise-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding-bottom: 8rem; }
.promise-grid > div { padding: 2rem; border-top: 1px solid var(--line); }
.promise-number { color: var(--rose-dark); font-size: .7rem; letter-spacing: .12em; }
.promise-grid h3 { margin-top: 1.3rem; }
.promise-grid p { color: var(--ink-soft); font-size: .88rem; }
.pricing-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; padding: 1rem 0 6rem; }
.pricing-grid article { min-height: 330px; padding: 3rem; background: var(--white); }
.pricing-grid h2 { margin: 1.5rem 0 1rem; color: var(--rose-dark); font-size: 4rem; }
.pricing-grid p:not(.eyebrow) { color: var(--ink-soft); }
.pricing-card-dark { background: var(--night) !important; color: white; }
.pricing-card-dark .eyebrow { color: #e1b0a7; }
.pricing-card-dark h2 { color: #f1c9c0; }
.pricing-card-dark p:not(.eyebrow) { color: rgba(255,255,255,.75); }
.text-link-light { color: white; border-color: rgba(255,255,255,.25); }
.policy-section { padding: 5rem 0 7rem; border-top: 1px solid var(--line); }
.policy-section h2 { max-width: 33rem; }
.policy-columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4rem; margin-top: 2rem; color: var(--ink-soft); }
.about-hero { min-height: 560px; padding: 7rem 0; display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: 8rem; }
.about-logo-card { padding: 1rem; background: var(--paper-warm); transform: rotate(-2deg); }
.about-logo-card img { width: 100%; min-height: 280px; object-fit: contain; background: white; }
.about-hero h1 { max-width: 680px; }
.about-copy { padding: 6rem 0; }
.about-details { padding: 4rem 0 8rem; display: grid; grid-template-columns: 1fr 1fr; gap: 8rem; border-top: 1px solid var(--line); }
.detail-list { align-self: end; }
.detail-list div { display: flex; align-items: center; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.detail-list strong { color: var(--rose-dark); font-size: .72rem; letter-spacing: .1em; }
.detail-list span { font-family: var(--display); font-size: 1.25rem; }
.faq-list { max-width: 850px; padding: 1rem 0 8rem; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; justify-content: space-between; gap: 2rem; padding: 1.5rem 0; cursor: pointer; font: 500 1.35rem/1.2 var(--display); list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--rose-dark); font-family: var(--body); font-size: 1.4rem; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: 0 0 1.7rem; color: var(--ink-soft); }
.question-mark { align-items: center; justify-content: center; font: 500 11rem/.7 var(--display); color: #e1b0a7; }
.contact-hero { min-height: 700px; padding: 7rem 0; display: grid; grid-template-columns: .9fr 1.1fr; gap: 6rem; align-items: center; }
.contact-hero h1 { max-width: 600px; }
.contact-hero > div:first-child > p:not(.eyebrow) { max-width: 30rem; margin: 1.8rem 0; color: var(--ink-soft); font-size: 1.08rem; }
.contact-facts { display: flex; flex-wrap: wrap; gap: .6rem; max-width: 29rem; }
.contact-facts span { padding: .55rem .7rem; border: 1px solid var(--line); color: var(--ink-soft); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.contact-form-wrap { min-height: 470px; padding: 2rem; background: var(--white); border: 1px solid var(--line); }
.form-placeholder { min-height: 420px; display: flex; flex-direction: column; justify-content: center; padding: 2rem; border: 1px dashed var(--line); }
.form-placeholder h2 { max-width: 25rem; font-size: 2.2rem; }
.form-placeholder p:not(.eyebrow) { color: var(--ink-soft); }
.contact-note { padding: 1.3rem 0 6rem; color: var(--ink-soft); font-size: .86rem; }
.simple-page { max-width: 850px; min-height: 600px; padding: 8rem 0; }
.simple-page h1 { max-width: 700px; }
.simple-page h2 { margin-top: 3rem; font-size: 2rem; }
.simple-page p { color: var(--ink-soft); }
.area-map-card { position: relative; align-items: flex-start; justify-content: center; padding-left: 5rem; }
.area-map-card strong { font: 500 3.2rem/1 var(--display); }
.area-map-card small { margin-top: .6rem; color: rgba(255,255,255,.68); }
.map-dot { position: absolute; left: 2.4rem; top: 50%; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #e1b0a7; box-shadow: 0 0 0 12px rgba(225,176,167,.17); }
.service-mini-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding-bottom: 8rem; }
.service-mini-grid a { min-height: 210px; display: flex; flex-direction: column; justify-content: end; gap: .55rem; padding: 1.8rem; border-top: 1px solid var(--ink); text-decoration: none; }
.service-mini-grid strong { max-width: 15rem; font: 500 1.7rem/1.1 var(--display); }
.service-mini-grid span:last-child { color: var(--ink-soft); font-size: .75rem; }
.site-footer { padding: 5rem max(1.5rem, calc((100% - var(--max)) / 2)) 1.3rem; background: var(--night); color: white; }
.footer-top { display: grid; grid-template-columns: 1.2fr .8fr; gap: 6rem; padding-bottom: 5rem; }
.footer-top h2 { max-width: 24rem; }
.footer-top p:not(.eyebrow) { max-width: 25rem; color: rgba(255,255,255,.64); }
.footer-top .eyebrow { color: #e1b0a7; }
.footer-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem 1.5rem; }
.footer-links a { color: rgba(255,255,255,.72); font-size: .82rem; text-decoration: none; }
.footer-links a:hover { color: white; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: space-between; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.48); font-size: .72rem; }
.footer-bottom a { text-decoration: none; }

@media (max-width: 900px) {
  .hero, .page-hero, .about-hero, .contact-hero { grid-template-columns: 1fr; gap: 3rem; padding-top: 5rem; padding-bottom: 5rem; }
  .home-hero { width: 100%; padding-left: 1.5rem; padding-right: 1.5rem; }
  .hero-image-frame, .page-hero-image { min-height: 420px; transform: none; }
  .hero-image-frame img, .page-hero-image img { min-height: 380px; }
  .intro-section, .copy-section, .about-details { grid-template-columns: 1fr; gap: 2rem; padding-top: 5rem; padding-bottom: 5rem; }
  .service-cards, .pricing-grid { grid-template-columns: 1fr; }
  .service-card, .service-card:nth-child(2), .service-card:nth-child(3) { min-height: 420px; margin-top: 0; }
  .feature-band { grid-template-columns: 1fr; }
  .feature-image, .feature-image img { min-height: 420px; }
  .price-strip { grid-template-columns: 1fr; }
  .fine-print { grid-column: auto; margin-top: -1rem; }
  .consent-panel { align-items: start; flex-direction: column; }
  .promise-grid, .service-mini-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-card:nth-child(3n+2) { margin-top: 0; }
  .gallery-card:nth-child(4n+1) { margin-top: 2rem; }
  .footer-top { gap: 3rem; }
}

@media (max-width: 650px) {
  .header-inner, .hero, .page-hero, .about-hero, .contact-hero, .section-grid, .services-section, .gallery-section, .feature-band, .price-strip, .pricing-grid, .policy-section, .faq-list, .simple-page, .about-details, .promise-grid, .service-mini-grid, .contact-note { width: min(var(--max), calc(100% - 2rem)); }
  .header-inner { min-height: 70px; }
  .main-nav { position: absolute; top: 70px; right: 1rem; left: 1rem; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: .5rem; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 18px 35px rgba(32,29,29,.12); }
  .main-nav.is-open { display: flex; }
  .main-nav a { padding: .8rem; }
  .nav-cta { text-align: center; }
  .menu-toggle { display: block; }
  h1 { font-size: clamp(2.75rem, 15vw, 4.3rem); }
  .hero { min-height: auto; padding-top: 4rem; }
  .hero-image-frame, .page-hero-image { min-height: 330px; padding: .65rem; }
  .hero-image-frame img, .page-hero-image img { min-height: 300px; }
  .hero-note { margin-top: 2.5rem; }
  .section-heading { display: block; }
  .section-heading .text-link { margin-top: 1.2rem; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-card, .gallery-card img { min-height: 420px; }
  .gallery-card:nth-child(4n+1) { margin-top: 0; }
  .price-items, .policy-columns { grid-template-columns: 1fr; }
  .fine-print { margin-top: 0; }
  .cta-band { display: block; padding-top: 4rem; padding-bottom: 4rem; }
  .cta-band .button { margin-top: 1rem; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-bottom { display: grid; gap: .55rem; }
}

/* Piccentric-inspired visual refinement: clean panels, softer colour and stronger photography. */
:root {
  --ink: #14244f;
  --ink-soft: #667691;
  --paper: #f6f8fc;
  --paper-warm: #e8effb;
  --white: #ffffff;
  --line: #e2e8f2;
  --rose: #e7a7b5;
  --rose-dark: #b65e78;
  --night: #081126;
  --blue: #1978ed;
  --teal: #16a085;
}

body { background: radial-gradient(circle at 85% 10%, rgba(222,236,255,.7), transparent 25rem), var(--paper); }
.site-header { border-bottom-color: #e7eaf1; background: rgba(255,255,255,.88); }
.wordmark span { color: var(--ink); }
.wordmark small { color: var(--blue); }
.main-nav a { color: #34415f; border-radius: .75rem; }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--blue); }
.nav-cta { border: 0; border-radius: .75rem; background: var(--blue); color: white !important; box-shadow: 0 12px 25px -15px rgba(25,120,237,.9); }
.nav-cta:hover, .nav-cta:focus-visible { background: #0d65d6 !important; color: white !important; }
.button { border-radius: .8rem; box-shadow: 0 12px 25px -15px rgba(20,36,79,.55); }
.button-dark { background: var(--blue); }
.button-dark:hover, .button-dark:focus-visible { background: #0d65d6; }
.hero h1, .page-hero h1, .about-hero h1, .contact-hero h1 { color: var(--ink); }
.eyebrow { color: #6a7b9d; }

.home-hero { min-height: 760px; background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(229,239,255,.78)); color: var(--ink); }
.home-hero::before { background: radial-gradient(circle at 76% 28%, rgba(25,120,237,.13), transparent 22rem), radial-gradient(circle at 18% 88%, rgba(231,167,181,.2), transparent 24rem); }
.home-hero .eyebrow { color: var(--blue); }
.home-hero h1 { color: var(--ink); }
.home-hero h1 em { color: var(--blue); }
.home-hero .hero-lede, .home-hero .hero-note { color: var(--ink-soft); }
.home-hero .text-link { color: var(--ink); border-color: #bac7dc; }
.home-hero .text-link span { color: var(--blue); }
.home-hero .hero-image-frame { border: .8rem solid rgba(255,255,255,.92); border-radius: 2rem; background: white; box-shadow: 0 30px 80px -35px rgba(20,38,75,.42); transform: rotate(1.2deg); }
.home-hero .hero-image-frame img { border-radius: 1.2rem; }
.home-hero .image-caption { color: #687794; }

.intro-section { border-color: var(--line); }
.services-section { padding-top: 4rem; }
.service-card { border: 1px solid #e4eaf3; border-radius: 1.5rem; box-shadow: 0 24px 70px -38px rgba(20,38,75,.35); }
.service-card img { opacity: .96; }
.service-card-overlay { inset: auto .75rem .75rem; border-radius: 1.15rem; padding: 1.25rem; background: rgba(255,255,255,.9); color: var(--ink); box-shadow: 0 12px 30px -18px rgba(20,38,75,.35); backdrop-filter: blur(14px); }
.service-card-overlay .eyebrow { color: var(--blue); }
.service-card-overlay h2 { color: var(--ink); }
.service-card-overlay span:last-child { color: var(--ink-soft); }
.service-card:hover img { opacity: .88; }

.feature-band { border-radius: 2rem; overflow: hidden; box-shadow: 0 24px 70px -38px rgba(20,38,75,.42); }
.feature-image { padding: .75rem; }
.feature-image img { border-radius: 1.35rem; }
.price-strip { margin-top: 1rem; padding: 3.5rem; border: 1px solid var(--line); border-radius: 2rem; background: rgba(255,255,255,.66); box-shadow: 0 24px 70px -45px rgba(20,38,75,.35); }
.price-items strong { color: var(--blue); }
.cta-band { width: min(var(--max), calc(100% - 3rem)); margin: 2rem auto; border-radius: 2rem; background: linear-gradient(120deg, #1978ed, #14244f); box-shadow: 0 24px 70px -38px rgba(20,38,75,.5); }
.cta-band .eyebrow { color: #bcd7ff; }

.page-hero-image { border-radius: 2rem; background: white; box-shadow: 0 24px 70px -38px rgba(20,38,75,.32); transform: rotate(-.8deg); }
.page-hero-image img { border-radius: 1.25rem; }
.compact-hero .question-mark, .area-map-card, .price-feature { border-radius: 1.5rem; background: linear-gradient(145deg, #14244f, #081126); }
.copy-section, .about-details, .policy-section { border-color: var(--line); }
.gallery-card { border-radius: 1.25rem; box-shadow: 0 18px 50px -32px rgba(20,38,75,.55); }
.gallery-card:hover { transform: translateY(-.35rem); box-shadow: 0 24px 60px -30px rgba(20,38,75,.55); }
.gallery-card figcaption { border-radius: .7rem; }
.consent-panel { border-color: var(--line); border-radius: 1.5rem; background: rgba(255,255,255,.72); box-shadow: 0 18px 50px -38px rgba(20,38,75,.35); }
.pricing-grid article { border: 1px solid var(--line); border-radius: 1.5rem; box-shadow: 0 22px 60px -42px rgba(20,38,75,.4); }
.pricing-grid h2 { color: var(--blue); }
.pricing-card-dark { border-color: #14244f !important; background: linear-gradient(145deg, #14244f, #081126) !important; }
.pricing-card-dark h2 { color: #bcd7ff; }
.about-logo-card { border-radius: 1.5rem; background: white; box-shadow: 0 22px 60px -42px rgba(20,38,75,.4); }
.about-logo-card img { border-radius: 1rem; }
.contact-form-wrap { border: 1px solid var(--line); border-radius: 1.5rem; box-shadow: 0 22px 60px -42px rgba(20,38,75,.35); }
.contact-facts span { border-color: #cbd8ea; border-radius: 999px; background: rgba(255,255,255,.5); }
.service-mini-grid a { border-color: #cbd8ea; border-radius: 1rem; background: rgba(255,255,255,.45); }
.site-footer { background: #081126; }

@media (max-width: 900px) {
  .home-hero { padding-left: 1.5rem; padding-right: 1.5rem; }
  .service-card, .service-card:nth-child(2), .service-card:nth-child(3) { margin-top: 0; }
  .price-strip { padding: 2rem; }
  .cta-band { width: calc(100% - 2rem); }
}

/* Portfolio-first finish: the photographs lead, while the copy stays quiet. */
:root {
  --ink: #201d1d;
  --ink-soft: #655b5b;
  --paper: #f4f0ec;
  --paper-warm: #ebe3dd;
  --white: #fffdfa;
  --line: rgba(32,29,29,.14);
  --rose: #b88178;
  --rose-dark: #8e5d58;
  --night: #252022;
  --blue: #1978ed;
}

body { background: var(--paper); }
.site-header { border-bottom-color: var(--line); background: rgba(244,240,236,.9); }
.wordmark span { color: var(--ink); }
.wordmark small { color: var(--rose-dark); }
.main-nav a { color: var(--ink-soft); border-radius: 0; }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--ink); }
.nav-cta { border: 1px solid var(--ink); border-radius: 0; background: transparent; color: var(--ink) !important; box-shadow: none; }
.nav-cta:hover, .nav-cta:focus-visible { background: var(--ink) !important; color: var(--white) !important; }
.button { border-radius: 0; box-shadow: none; }
.button-dark { background: var(--ink); }
.button-dark:hover, .button-dark:focus-visible { background: var(--rose-dark); }
.eyebrow { color: var(--rose-dark); }

.home-hero { background: var(--night); color: white; }
.home-hero::before { background: linear-gradient(105deg, rgba(37,32,34,.98) 0%, rgba(37,32,34,.82) 42%, rgba(37,32,34,.24) 100%); }
.home-hero .eyebrow { color: #e1b0a7; }
.home-hero h1 { color: white; }
.home-hero h1 em { color: #e1b0a7; }
.home-hero .hero-lede, .home-hero .hero-note { color: rgba(255,255,255,.76); }
.home-hero .text-link { color: white; border-color: rgba(255,255,255,.3); }
.home-hero .text-link span { color: #e1b0a7; }
.home-hero .hero-image-frame { border: 0; border-radius: 0; background: var(--paper-warm); box-shadow: 0 30px 80px rgba(0,0,0,.25); transform: rotate(1.2deg); }
.home-hero .hero-image-frame img { border-radius: 0; }
.home-hero .image-caption { color: rgba(255,255,255,.72); }

.service-card { border: 0; border-radius: 0; box-shadow: none; }
.service-card:nth-child(2), .service-card:nth-child(3) { margin-top: 0; }
.service-card-overlay { inset: auto 0 0; border-radius: 0; padding: 2rem; background: linear-gradient(transparent, rgba(22,17,19,.94) 34%); color: white; box-shadow: none; backdrop-filter: none; }
.service-card-overlay .eyebrow { color: #e1b0a7; }
.service-card-overlay h2 { color: white; }
.service-card-overlay span:last-child { color: rgba(255,255,255,.78); }

.feature-band { position: relative; width: 100vw; max-width: none; min-height: 78vh; margin: 0 0 8rem calc(50% - 50vw); display: block; border-radius: 0; box-shadow: none; overflow: hidden; }
.feature-band::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(22,17,19,.82), rgba(22,17,19,.08) 70%), linear-gradient(0deg, rgba(22,17,19,.7), transparent 55%); pointer-events: none; }
.feature-image { position: absolute; inset: 0; min-height: 0; padding: 0; }
.feature-image img { width: 100%; height: 100%; min-height: 78vh; border-radius: 0; object-fit: cover; opacity: .9; }
.feature-copy { position: relative; z-index: 2; width: min(var(--max), calc(100% - 3rem)); min-height: 78vh; margin: 0 auto; padding: 5rem 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; color: white; }
.feature-copy h2 { max-width: 36rem; }
.feature-copy p:not(.eyebrow) { max-width: 31rem; color: rgba(255,255,255,.78); }
.feature-copy .eyebrow { color: #e1b0a7; }
.feature-copy .text-link { color: white; border-color: rgba(255,255,255,.28); }

.photo-break { position: relative; width: 100vw; min-height: 78vh; margin: 0 0 8rem calc(50% - 50vw); overflow: hidden; background: var(--night); color: white; }
.photo-break > img { width: 100%; height: 78vh; min-height: 560px; object-fit: cover; }
.photo-break-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(22,17,19,.8), rgba(22,17,19,.08) 72%), linear-gradient(0deg, rgba(22,17,19,.65), transparent 58%); }
.photo-break-content { position: absolute; inset: auto auto 4.5rem max(1.5rem, calc((100% - var(--max)) / 2)); max-width: 35rem; }
.photo-break-content .eyebrow { color: #e1b0a7; }
.photo-break-content h2 { max-width: 34rem; }
.photo-break-content p:not(.eyebrow) { color: rgba(255,255,255,.78); }

.page-hero-image { border-radius: 0; box-shadow: none; transform: rotate(-.8deg); }
.page-hero-image img { border-radius: 0; }
.gallery-card { border-radius: 0; box-shadow: none; }
.gallery-card:hover { transform: none; box-shadow: none; }
.gallery-card figcaption { border-radius: 0; }
.pricing-grid article, .contact-form-wrap, .consent-panel, .about-logo-card { border-radius: 0; box-shadow: none; }
.contact-facts span { border-radius: 0; background: transparent; }
.service-mini-grid a { border-radius: 0; background: transparent; }
.cta-band { width: 100%; margin: 2rem 0 0; border-radius: 0; background: var(--rose-dark); box-shadow: none; }

@media (max-width: 900px) {
  .feature-band, .photo-break { width: 100vw; margin-left: calc(50% - 50vw); }
  .feature-copy { width: calc(100% - 3rem); min-height: 70vh; }
  .feature-image img, .photo-break > img { min-height: 70vh; height: 70vh; }
  .photo-break-content { left: 1.5rem; right: 1.5rem; bottom: 3rem; }
}

@media (max-width: 650px) {
  .feature-copy { width: calc(100% - 2rem); min-height: 74vh; padding-bottom: 3rem; }
  .feature-image img, .photo-break > img { min-height: 74vh; height: 74vh; }
  .photo-break-content { left: 1rem; right: 1rem; bottom: 2.5rem; }
}

/* Portfolio gallery treatment: fewer boxes, more image and rhythm. */
.copy-section { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.copy-section p:not(.eyebrow) { max-width: 52ch; font-size: .96rem; line-height: 1.55; }
.gallery-section { width: 100%; max-width: none; padding: 0 0 8rem; }
.gallery-section > .section-heading { width: min(var(--max), calc(100% - 3rem)); margin: 0 auto 2.5rem; padding-top: 4rem; }
.gallery-grid { width: 100vw; margin-left: calc(50% - 50vw); display: grid; grid-template-columns: repeat(12, 1fr); gap: .45rem; }
.gallery-card, .gallery-card img { min-height: 58vh; }
.gallery-card { grid-column: span 4; }
.gallery-card:nth-child(6n+1), .gallery-card:nth-child(6n+6) { grid-column: span 7; min-height: 72vh; }
.gallery-card:nth-child(6n+2), .gallery-card:nth-child(6n+5) { grid-column: span 5; min-height: 72vh; }
.gallery-card:nth-child(6n+3), .gallery-card:nth-child(6n+4) { grid-column: span 6; min-height: 58vh; }
.gallery-card:nth-child(3n+2) { margin-top: 0; }
.gallery-card figcaption { right: 1rem; bottom: 1rem; left: 1rem; padding: .7rem .8rem; }

@media (max-width: 900px) {
  .gallery-section > .section-heading { width: calc(100% - 3rem); }
  .gallery-card, .gallery-card:nth-child(6n+1), .gallery-card:nth-child(6n+2), .gallery-card:nth-child(6n+3), .gallery-card:nth-child(6n+4), .gallery-card:nth-child(6n+5), .gallery-card:nth-child(6n+6) { grid-column: span 6; min-height: 52vh; }
}

@media (max-width: 650px) {
  .copy-section { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .gallery-section > .section-heading { width: calc(100% - 2rem); padding-top: 3rem; }
  .gallery-grid { grid-template-columns: 1fr; gap: .35rem; }
  .gallery-card, .gallery-card img, .gallery-card:nth-child(6n+1), .gallery-card:nth-child(6n+2), .gallery-card:nth-child(6n+3), .gallery-card:nth-child(6n+4), .gallery-card:nth-child(6n+5), .gallery-card:nth-child(6n+6) { grid-column: span 1; min-height: 72vh; }
}

/* Home is an authored portfolio cover, not a conventional landing-page template. */
.home-page .site-header { position: absolute; top: 0; right: 0; left: 0; border-bottom: 0; background: transparent; color: white; }
.home-page .wordmark span, .home-page .main-nav a { color: white; }
.home-page .wordmark small, .home-page .main-nav a:hover, .home-page .main-nav a:focus-visible { color: #e1b0a7; }
.home-page .nav-cta { border-color: rgba(255,255,255,.7); color: white !important; }
.home-page .nav-cta:hover, .home-page .nav-cta:focus-visible { border-color: white; background: white !important; color: var(--ink) !important; }
.home-page .home-hero { position: relative; width: 100vw; min-height: 100svh; margin-left: calc(50% - 50vw); padding: 0; display: block; overflow: hidden; background: var(--night); }
.home-page .home-hero::before { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(20,16,18,.78), rgba(20,16,18,.18) 65%), linear-gradient(0deg, rgba(20,16,18,.76), transparent 55%); }
.home-page .hero-image-frame { position: absolute; inset: 0; z-index: 0; min-height: 100%; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; transform: none; }
.home-page .hero-image-frame img { width: 100%; height: 100%; min-height: 100svh; border-radius: 0; object-fit: cover; filter: saturate(.88) contrast(1.05); }
.home-page .hero-image-frame .image-caption { display: none; }
.home-page .hero-copy { position: relative; z-index: 2; min-height: 100svh; max-width: none; padding: 10rem max(1.5rem, calc((100% - var(--max)) / 2)) 5rem; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; }
.home-page .hero-copy h1 { max-width: 850px; font-size: clamp(4rem, 9vw, 8.5rem); color: white; }
.home-page .hero-copy .hero-lede { max-width: 34rem; margin-top: 1.5rem; color: rgba(255,255,255,.8); }
.home-page .hero-copy .hero-actions { margin-top: 1.8rem; }
.home-page .hero-note { margin-top: 2rem; color: rgba(255,255,255,.7); }
.home-page .services-section { width: 100%; max-width: none; padding-top: 7rem; }
.home-page .services-section > .section-heading { width: min(var(--max), calc(100% - 3rem)); margin-right: auto; margin-left: auto; }
.home-page .service-cards { width: 100vw; margin-left: calc(50% - 50vw); gap: .35rem; }
.home-page .service-card { min-height: 76vh; }
.home-page .service-card:nth-child(2), .home-page .service-card:nth-child(3) { margin-top: 0; }

@media (max-width: 900px) {
  .home-page .hero-copy { padding-right: 1.5rem; padding-left: 1.5rem; }
  .home-page .service-cards { grid-template-columns: 1fr; }
  .home-page .service-card { min-height: 70vh; }
}

@media (max-width: 650px) {
  .home-page .hero-copy { padding-right: 1rem; padding-left: 1rem; }
  .home-page .hero-copy h1 { font-size: clamp(3.4rem, 17vw, 5.6rem); }
  .home-page .main-nav { background: rgba(37,32,34,.95); border-color: rgba(255,255,255,.2); }
  .home-page .main-nav a { color: white; }
}

/* Gallery pages follow the supplied Jay Clapp portfolio mockup. */
.portfolio-page { background: #0d0e0f; color: #f8f5f0; }
.portfolio-page .site-header { position: absolute; top: 0; right: 0; left: 0; z-index: 50; border-bottom: 0; background: linear-gradient(rgba(0,0,0,.58), transparent); color: white; }
.portfolio-page .header-inner { min-height: 126px; width: min(100% - 4rem, 1440px); align-items: center; padding-top: 0; }
.portfolio-page .wordmark { line-height: .82; margin-top: 0; }
.portfolio-page .wordmark-logo { width: clamp(300px, 24vw, 390px); filter: none; }
@media (min-width: 901px) {
  .portfolio-page .header-inner { width: 100%; max-width: none; padding-right: clamp(1.5rem, 4vw, 5rem); padding-left: clamp(1.5rem, 4vw, 5rem); }
}
.portfolio-page .wordmark span { color: white; font: 500 clamp(2.2rem, 4.1vw, 4.9rem)/.82 var(--display); letter-spacing: .08em; text-transform: uppercase; }
.portfolio-page .wordmark small { margin-top: .75rem; color: white; font-size: .72rem; letter-spacing: .48em; text-align: center; }
.portfolio-page .main-nav { margin-top: 0; gap: clamp(.8rem, 2vw, 2.1rem); }
.portfolio-page .main-nav a { color: rgba(255,255,255,.92); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.portfolio-page .main-nav a:hover, .portfolio-page .main-nav a:focus-visible { color: #e1b0a7; }
.portfolio-page .nav-cta { border: 0; border-bottom: 1px solid rgba(255,255,255,.65); border-radius: 0; background: transparent; color: white !important; }
.portfolio-page .page-hero { position: relative; width: 100vw; max-width: none; min-height: 68vh; margin-left: calc(50% - 50vw); padding: 0; display: block; overflow: hidden; background: #121314; }
.portfolio-page .page-hero-image { position: absolute; inset: 0; min-height: 68vh; padding: 0; border-radius: 0; background: #121314; box-shadow: none; transform: none; }
.portfolio-page .page-hero-image img { width: 100%; height: 68vh; min-height: 560px; border-radius: 0; object-fit: cover; filter: saturate(.84) contrast(1.06); }
.portfolio-page .page-hero::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.14) 72%), linear-gradient(0deg, rgba(0,0,0,.72), transparent 58%); }
.portfolio-page .page-hero > div:first-child { position: relative; z-index: 2; width: min(100% - 4rem, 1440px); min-height: 68vh; margin: 0 auto; padding: 12rem 0 4.5rem; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; }
.portfolio-page .page-hero h1 { max-width: 780px; color: white; font-size: clamp(3.3rem, 6vw, 6.7rem); text-transform: uppercase; }
.portfolio-page .page-hero p:not(.eyebrow) { max-width: 38rem; margin: 1.2rem 0 1.5rem; color: rgba(255,255,255,.8); font: 1.05rem/1.5 var(--display); }
.portfolio-page .page-hero .eyebrow { color: #e1b0a7; }
.portfolio-page .page-hero .button { border: 1px solid rgba(255,255,255,.8); background: transparent; color: white; }
.portfolio-page .page-hero .button:hover, .portfolio-page .page-hero .button:focus-visible { background: white; color: var(--ink); }
.portfolio-page .copy-section { width: min(100% - 4rem, 1120px); color: #f8f5f0; border-color: rgba(255,255,255,.22); }
.portfolio-page .copy-section h2, .portfolio-page .copy-section p:not(.eyebrow) { color: #f8f5f0; }
.portfolio-page .copy-section p:not(.eyebrow) { color: rgba(255,255,255,.72); }
.portfolio-page .gallery-section { background: #0d0e0f; }
.portfolio-page .gallery-section > .section-heading { width: min(100% - 4rem, 1440px); padding-top: 4rem; }
.portfolio-page .gallery-section .section-heading h2 { color: #f8f5f0; font-size: clamp(2rem, 3.5vw, 4rem); text-transform: uppercase; }
.portfolio-page .gallery-section .section-aside { color: rgba(255,255,255,.62); }
.portfolio-page .gallery-grid { grid-template-columns: repeat(6, 1fr); gap: 1px; background: #0d0e0f; }
.portfolio-page .gallery-card, .portfolio-page .gallery-card:nth-child(6n+1), .portfolio-page .gallery-card:nth-child(6n+2), .portfolio-page .gallery-card:nth-child(6n+3), .portfolio-page .gallery-card:nth-child(6n+4), .portfolio-page .gallery-card:nth-child(6n+5), .portfolio-page .gallery-card:nth-child(6n+6) { grid-column: span 1; min-height: 280px; margin: 0; border-radius: 0; background: #171819; }
.portfolio-page .gallery-card img { min-height: 280px; }
.portfolio-page .gallery-card figcaption { border-radius: 0; background: rgba(0,0,0,.72); color: white; }
.portfolio-page .photo-break { margin-bottom: 0; }
.portfolio-page .consent-panel { width: min(100% - 4rem, 1120px); margin-top: 2rem; margin-bottom: 2rem; border-color: rgba(255,255,255,.22); border-radius: 0; background: #161718; color: white; }
.portfolio-page .consent-panel h2, .portfolio-page .consent-panel p:not(.eyebrow) { color: white; }
.portfolio-page .consent-panel p:not(.eyebrow) { color: rgba(255,255,255,.7); }
.portfolio-page .promise-grid { width: min(100% - 4rem, 1120px); color: white; }
.portfolio-page .promise-grid > div { border-color: rgba(255,255,255,.22); }
.portfolio-page .promise-grid p { color: rgba(255,255,255,.68); }
.portfolio-page .cta-band { margin-top: 0; background: #050505; }
.portfolio-page .site-footer { border-top: 1px solid rgba(255,255,255,.2); }

/* The Enquire page uses the same dark editorial treatment as the photography pages. */
.contact-page .contact-hero { position: relative; width: 100vw; min-height: 86svh; margin-left: calc(50% - 50vw); padding: 11rem max(2rem, calc((100vw - 1440px) / 2)) 5rem; grid-template-columns: .9fr 1.1fr; gap: 5rem; overflow: hidden; isolation: isolate; background: #0d0e0f; color: #f8f5f0; }
.contact-page .contact-hero::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,.86), rgba(0,0,0,.3) 68%, rgba(0,0,0,.62)), linear-gradient(0deg, rgba(0,0,0,.8), transparent 58%); }
.contact-page .contact-hero-background { position: absolute; inset: 0; z-index: 0; }
.contact-page .contact-hero-background .hero-slideshow { position: absolute; inset: 0; }
.contact-page .contact-hero-copy, .contact-page .contact-form-wrap { position: relative; z-index: 2; }
.contact-page .contact-hero h1 { max-width: 760px; color: #f8f5f0; font-size: clamp(3.3rem, 6vw, 6.7rem); line-height: .9; text-transform: uppercase; }
.contact-page .contact-hero-copy > p:not(.eyebrow) { max-width: 34rem; margin: 1.35rem 0; color: rgba(255,255,255,.76); font: 1.05rem/1.5 var(--display); }
.contact-page .contact-hero .eyebrow { color: #e1b0a7; }
.contact-page .contact-facts { max-width: 34rem; }
.contact-page .contact-facts span { border-color: rgba(255,255,255,.28); color: rgba(255,255,255,.72); }
.contact-page .contact-form-wrap { min-height: 470px; padding: 2rem; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.28); }
.contact-page .contact-form-wrap .form-placeholder { border-color: rgba(255,255,255,.3); background: transparent; }
.contact-page .contact-form-wrap .form-placeholder h2, .contact-page .contact-form-wrap .form-placeholder h3, .contact-page .contact-form-wrap .form-placeholder p:not(.eyebrow) { color: #f8f5f0; }
.contact-page .contact-note { padding-top: 1.35rem; padding-bottom: 5rem; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.68); }

@media (max-width: 900px) {
  .contact-page .contact-hero { width: 100%; min-height: 0; margin-left: 0; padding: 9rem 1rem 3.5rem; grid-template-columns: 1fr; gap: 3rem; }
  .contact-page .contact-form-wrap { min-height: 360px; padding: 1.25rem; }
  .contact-page .contact-note { width: calc(100% - 2rem); }
}

@media (max-width: 650px) {
  .contact-page .contact-hero { padding: 7rem 1rem 2.5rem; gap: 2.5rem; }
  .contact-page .contact-hero h1 { font-size: clamp(2.8rem, 12vw, 4.5rem); }
  .contact-page .contact-hero-copy > p:not(.eyebrow) { font-size: .96rem; }
  .contact-page .contact-form-wrap { min-height: 300px; padding: 1rem; }
  .contact-page .contact-note { padding-bottom: 3rem; }
}

@media (max-width: 900px) {
  .portfolio-page .header-inner { width: calc(100% - 2rem); min-height: 86px; }
  .portfolio-page .wordmark { margin-top: 0; }
  .portfolio-page .wordmark-logo { width: 250px; }
  .portfolio-page .wordmark span { font-size: 2.4rem; }
  .portfolio-page .wordmark small { font-size: .52rem; letter-spacing: .34em; }
  .portfolio-page .main-nav { margin-top: 0; }
  .portfolio-page .main-nav a { font-size: .7rem; }
  .portfolio-page .page-hero > div:first-child, .portfolio-page .gallery-section > .section-heading { width: calc(100% - 2rem); }
  .portfolio-page .page-hero, .portfolio-page .page-hero-image, .portfolio-page .page-hero-image img, .portfolio-page .page-hero > div:first-child { min-height: 72vh; }
  .portfolio-page .page-hero-image img { height: 72vh; }
  .portfolio-page .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 650px) {
  .portfolio-page .header-inner { min-height: 74px; padding-top: 0; }
  .portfolio-page .wordmark { margin-top: 0; }
  .portfolio-page .wordmark-logo { width: 190px; }
  .portfolio-page .wordmark span { font-size: 1.8rem; }
  .portfolio-page .wordmark small { margin-top: .5rem; font-size: .42rem; }
  .portfolio-page .main-nav { top: 74px; background: rgba(13,14,15,.96); border-color: rgba(255,255,255,.22); }
  .portfolio-page .main-nav a { color: white; }
  .portfolio-page .page-hero > div:first-child { width: calc(100% - 2rem); padding-bottom: 2.5rem; }
  .portfolio-page .page-hero h1 { font-size: clamp(2.8rem, 13vw, 4.5rem); }
  .portfolio-page .page-hero p:not(.eyebrow) { font-size: .96rem; }
  .portfolio-page .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .portfolio-page .gallery-card, .portfolio-page .gallery-card img { min-height: 210px; }
  .portfolio-page .copy-section, .portfolio-page .consent-panel, .portfolio-page .promise-grid { width: calc(100% - 2rem); }
}

/* Homepage motion: the hero breathes with a slow Ken Burns movement; category panels only crossfade. */
.hero-slideshow, .category-slideshow { position: absolute; inset: 0; display: block; overflow: hidden; }
.hero-slideshow img, .category-slideshow img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: cover; --image-zoom: 1; }
.hero-slideshow img { opacity: 0; animation: hero-ken-burns 40s ease-in-out infinite; animation-delay: calc(var(--slide-index) * -8s); }
.category-slideshow img { opacity: 0; animation: category-fade 30s ease-in-out infinite; animation-delay: calc(var(--slide-index) * -6s); transform: scale(var(--image-zoom)); transform-origin: center; }
@media (min-width: 651px) {
  .home-page .home-category-grid > .service-card:nth-child(2) .category-slideshow img { animation-delay: calc(var(--slide-index) * -6s - 2s); }
  .home-page .home-category-grid > .service-card:nth-child(3) .category-slideshow img { animation-delay: calc(var(--slide-index) * -6s - 4s); }
}
@keyframes hero-ken-burns {
  0% { opacity: 0; transform: scale(calc(var(--image-zoom) * 1.04)); }
  6%, 30% { opacity: 1; transform: scale(calc(var(--image-zoom) * 1.04)); }
  38% { opacity: 0; transform: scale(calc(var(--image-zoom) * 1.12)); }
  100% { opacity: 0; transform: scale(calc(var(--image-zoom) * 1.12)); }
}
@keyframes category-fade {
  0% { opacity: 0; }
  8%, 32% { opacity: 1; }
  40%, 100% { opacity: 0; }
}
.home-page .hero-slideshow img { min-height: 100svh; }
.home-page .category-slideshow img { min-height: 100%; }

@media (prefers-reduced-motion: reduce) {
  .hero-slideshow img, .category-slideshow img { animation: none; opacity: 0; }
  .hero-slideshow img:first-child, .category-slideshow img:first-child { opacity: 1; transform: none; }
}

/* Desktop front page: a complete, non-scrolling first screen. Mobile gets a natural scroll below. */
body.home-page { height: 100svh; overflow: hidden; }
body.home-page main { height: 100svh; overflow: hidden; }
body.home-page .site-footer { display: none; }
.home-page .home-hero { height: 68svh; min-height: 0; }
.home-page .hero-copy { min-height: 68svh; padding-top: 7.5rem; padding-bottom: 2.5rem; }
.home-page .hero-copy h1 { max-width: 720px; font-size: clamp(3.4rem, 7vw, 7.6rem); line-height: .9; text-transform: uppercase; }
.home-page .hero-copy .hero-lede { max-width: 31rem; margin-top: 1rem; font-size: .98rem; }
.home-page .hero-copy .hero-actions { margin-top: 1.1rem; }
@media (min-width: 901px) {
  .home-page .hero-copy { padding-left: clamp(1.5rem, 4vw, 5rem); }
}
.home-page .hero-keywords { position: absolute; right: max(1.5rem, calc((100% - var(--max)) / 2)); bottom: 2.5rem; display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; color: rgba(255,255,255,.82); font: .68rem/1.2 var(--body); letter-spacing: .15em; text-transform: uppercase; }
.home-page .home-category-strip { height: 32svh; padding: 0; background: #0d0e0f; overflow: hidden; }
.home-page .home-category-grid { height: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.home-page .home-category-grid .service-card { min-height: 0; height: 100%; margin: 0; }
.home-page .home-category-grid .service-card-overlay { padding: 1.1rem 1.25rem; gap: .25rem; }
.home-page .home-category-grid .service-card-overlay h2 { font-size: clamp(1.2rem, 2vw, 2.1rem); text-transform: uppercase; }
.home-page .home-category-grid .service-card-overlay span:last-child { display: none; }

/* Wide, shorter desktop screens need a little more room for the expanded hero copy. */
@media (min-width: 1600px) and (max-height: 1100px) {
  .home-page .home-hero { height: 72svh; }
  .home-page .hero-copy { min-height: 72svh; }
  .home-page .home-category-strip { height: 28svh; }
}

@media (max-width: 650px) {
  body.home-page { height: auto; min-height: 100svh; overflow-x: hidden; overflow-y: auto; }
  body.home-page main { height: auto; overflow: visible; }
  body.home-page .site-footer { display: block; }
  .home-page .home-hero { height: 61svh; }
  .home-page .hero-copy { min-height: 61svh; padding: 6.8rem 1rem 1.35rem; }
  .home-page .hero-copy h1 { max-width: 21rem; font-size: clamp(2.8rem, 13vw, 4.5rem); }
  .home-page .hero-copy .hero-lede { max-width: 20rem; margin-top: .75rem; font-size: .82rem; line-height: 1.35; }
  .home-page .hero-copy .hero-actions { margin-top: .8rem; }
  .home-page .hero-copy .button { padding: .7rem .9rem; font-size: .68rem; }
  .home-page .hero-keywords { right: 1rem; bottom: 1.3rem; gap: .2rem; font-size: .52rem; }
  .home-page .home-category-strip { height: auto; }
  .home-page .home-category-grid { height: auto; grid-template-columns: 1fr; grid-template-rows: repeat(3, minmax(280px, 38svh)); gap: 2px; }
  .home-page .home-category-grid .service-card { height: 100%; min-height: 0; }
  .home-page .home-category-grid .service-card-overlay { padding: 1.2rem 1rem; }
  .home-page .home-category-grid .service-card-overlay h2 { font-size: 1.15rem; }
  .home-page .home-category-grid .service-card-overlay .eyebrow { font-size: .55rem; }
}

@media (max-width: 900px) {
  .home-page .menu-toggle, .portfolio-page .menu-toggle { color: white; }
  .home-page .menu-toggle:focus-visible, .portfolio-page .menu-toggle:focus-visible { outline: 1px solid rgba(255,255,255,.85); outline-offset: .35rem; }
}

/* Individual photography pages: full-bleed hero, moving filmstrip and enquiry form. */
.portfolio-detail-page { background: #0d0e0f; color: #f8f5f0; }
.portfolio-detail-hero { position: relative; width: 100vw; min-height: 72svh; margin-left: calc(50% - 50vw); overflow: hidden; background: #121314; }
.portfolio-detail-image { position: absolute; inset: 0; z-index: 0; }
.portfolio-detail-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.14) 72%), linear-gradient(0deg, rgba(0,0,0,.76), transparent 58%); pointer-events: none; }
.portfolio-detail-copy { position: relative; z-index: 2; width: min(100% - 4rem, 1440px); min-height: 72svh; margin: 0 auto; padding: 12rem 0 4.5rem; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; }
.portfolio-detail-copy h1 { max-width: 780px; color: white; font-size: clamp(3.3rem, 6vw, 6.7rem); line-height: .9; text-transform: uppercase; }
@media (min-width: 901px) {
  .portfolio-detail-copy { width: 100%; max-width: none; padding-left: clamp(1.5rem, 4vw, 5rem); padding-right: clamp(1.5rem, 4vw, 5rem); }
}
.detail-copy-rotator { position: relative; min-height: 6.8rem; max-width: 38rem; margin-top: 1.35rem; }
.detail-copy-slide { position: absolute; inset: 0 auto auto 0; opacity: 0; animation: detail-copy-fade 40s ease-in-out infinite; animation-delay: calc(var(--slide-index) * -8s); }
.detail-copy-slide .eyebrow { color: #e1b0a7; }
.detail-copy-slide p:not(.eyebrow) { max-width: 38rem; margin-top: .65rem; color: rgba(255,255,255,.84); font: 1.05rem/1.5 var(--display); }
@keyframes detail-copy-fade {
  0% { opacity: 0; }
  3%, 20% { opacity: 1; }
  22.5%, 100% { opacity: 0; }
}
.filmstrip-section { position: relative; padding: 3rem 0 3.5rem; background: #0d0e0f; overflow: hidden; }
.filmstrip-heading { width: min(100% - 4rem, 1440px); margin: 0 auto 1.35rem; }
.filmstrip-heading h2 { color: #f8f5f0; font-size: clamp(2rem, 3.8vw, 4.2rem); text-transform: uppercase; }
.filmstrip-heading p:not(.eyebrow) { margin-top: .45rem; color: rgba(255,255,255,.62); }
.filmstrip-viewport { width: 100vw; overflow: hidden; }
.filmstrip-track { display: flex; width: max-content; gap: .55rem; animation: filmstrip-scroll var(--filmstrip-duration, 240s) linear infinite; }
.filmstrip-track:hover, .filmstrip-track:focus-within { animation-play-state: paused; }
.filmstrip-card { flex: 0 0 clamp(180px, 18vw, 300px); padding: 0; border: 0; background: #171819; color: white; cursor: pointer; text-align: left; overflow: hidden; }
.filmstrip-card img { display: block; width: 100%; height: clamp(180px, 18vw, 300px); aspect-ratio: 1/1; object-fit: cover; filter: saturate(.88) contrast(1.04); transition: filter .25s ease, transform .25s ease; }
.filmstrip-card:hover img, .filmstrip-card:focus-visible img { filter: none; transform: scale(.98); }
.filmstrip-card span { display: block; padding: .65rem .7rem .75rem; color: rgba(255,255,255,.72); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
@keyframes filmstrip-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.sensitive-gallery-wrap [data-sensitive-content] .filmstrip-card img { filter: blur(20px) brightness(.68); transform: scale(1.06); }
.sensitive-gallery-wrap.revealed [data-sensitive-content] .filmstrip-card img { filter: none; transform: none; }
.portfolio-contact { width: min(100% - 4rem, 1440px); margin: 0 auto; padding: 5.5rem 0 6rem; display: grid; grid-template-columns: .85fr 1.15fr; gap: 5rem; align-items: start; border-top: 1px solid rgba(255,255,255,.2); }
.portfolio-contact-copy h2 { max-width: 34rem; color: #f8f5f0; font-size: clamp(2.5rem, 5vw, 5.5rem); line-height: .92; text-transform: uppercase; }
.portfolio-contact-copy p:not(.eyebrow) { max-width: 28rem; margin-top: 1.25rem; color: rgba(255,255,255,.72); }
.portfolio-contact-form { min-height: 260px; color: #f8f5f0; }
.portfolio-contact-form > * { max-width: 100%; }
.portfolio-contact-form .form-placeholder { border-color: rgba(255,255,255,.3); }
.portfolio-contact-form .form-placeholder h3, .portfolio-contact-form .form-placeholder p:not(.eyebrow) { color: #f8f5f0; }
.portfolio-seo-copy { width: min(100% - 4rem, 1440px); margin: 0 auto; padding: 5.5rem 0; display: grid; grid-template-columns: .8fr 1.2fr; gap: 5rem; border-top: 1px solid rgba(255,255,255,.2); }
.portfolio-seo-copy-intro h2 { max-width: 34rem; color: #f8f5f0; font-size: clamp(2.5rem, 5vw, 5.5rem); line-height: .92; text-transform: uppercase; }
.portfolio-seo-copy-intro > p:not(.eyebrow) { max-width: 31rem; margin-top: 1.25rem; color: rgba(255,255,255,.72); }
.portfolio-seo-copy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.portfolio-seo-copy-block { padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.24); }
.portfolio-seo-copy-block h3 { color: #f8f5f0; font: 500 clamp(1.25rem, 2vw, 1.8rem)/1.05 var(--display); }
.portfolio-seo-copy-block p { margin-top: .7rem; color: rgba(255,255,255,.68); font-size: .92rem; line-height: 1.55; }
.portfolio-page .sensitive-consent { width: min(100% - 4rem, 1440px); margin: 0 auto; padding: 1.35rem 0; align-items: center; border-width: 1px 0; border-color: rgba(255,255,255,.22); background: transparent; }
.sensitive-consent > div { max-width: 58rem; }
.sensitive-consent p:not(.eyebrow) { color: rgba(255,255,255,.7); }
.sensitive-consent .button { min-height: 2.55rem; padding: .65rem 1rem; white-space: nowrap; }
.image-lightbox { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 3rem; background: rgba(0,0,0,.96); }
.image-lightbox[hidden] { display: none; }
.image-lightbox figure { max-width: min(92vw, 1400px); max-height: 90vh; margin: 0; text-align: center; }
.image-lightbox img { display: block; max-width: 100%; max-height: 82vh; object-fit: contain; }
.image-lightbox figcaption { margin-top: .75rem; color: rgba(255,255,255,.72); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.image-lightbox-close { position: absolute; top: 1.25rem; right: 1.5rem; border: 1px solid rgba(255,255,255,.65); background: transparent; color: white; width: 2.8rem; height: 2.8rem; border-radius: 50%; font-size: 1.8rem; line-height: 1; cursor: pointer; }
body.lightbox-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .detail-copy-slide { animation: none; opacity: 0; }
  .detail-copy-slide:first-child { opacity: 1; }
  .filmstrip-track { animation: none; }
}

@media (max-width: 900px) {
  .portfolio-detail-copy, .filmstrip-heading, .portfolio-contact, .portfolio-seo-copy { width: calc(100% - 2rem); }
  .portfolio-detail-hero, .portfolio-detail-copy { min-height: 76svh; }
  .portfolio-contact, .portfolio-seo-copy { grid-template-columns: 1fr; gap: 2.5rem; }
  .portfolio-seo-copy { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .portfolio-page .sensitive-consent { width: calc(100% - 2rem); }
}

@media (max-width: 650px) {
  .portfolio-detail-hero, .portfolio-detail-copy { min-height: 78svh; }
  .portfolio-detail-copy { padding: 7rem 0 2.5rem; }
  .portfolio-detail-copy h1 { font-size: clamp(2.7rem, 12vw, 4.4rem); }
  .detail-copy-rotator { min-height: 8rem; margin-top: 1rem; }
  .detail-copy-slide p:not(.eyebrow) { font-size: .9rem; line-height: 1.4; }
  .filmstrip-section { padding: 2rem 0 2.5rem; }
  .filmstrip-heading h2 { font-size: 2rem; }
  .filmstrip-card { flex-basis: 58vw; }
  .filmstrip-card img { height: 58vw; }
  .portfolio-seo-copy { padding-top: 3rem; padding-bottom: 3rem; }
  .portfolio-seo-copy-grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .portfolio-page .sensitive-consent { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .portfolio-contact { padding-bottom: 3rem; }
  .image-lightbox { padding: 1rem; }
  .image-lightbox img { max-height: 78vh; }
}

/* About page: the photographer belongs inside the same dark editorial system as the portfolio. */
.about-page .about-hero { width: 100vw; min-height: 92svh; margin-left: calc(50% - 50vw); padding: 0; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 0; background: #0d0e0f; }
.about-page .about-logo-card { position: relative; min-height: 92svh; height: 92svh; padding: 0; overflow: hidden; background: #171819; transform: none; }
.about-page .about-logo-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.58)); pointer-events: none; }
.about-page .about-logo-card img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center 30%; background: #171819; filter: saturate(.78) contrast(1.08); }
.about-page .about-hero > div:last-child { position: relative; z-index: 2; align-self: stretch; min-height: 92svh; display: flex; flex-direction: column; justify-content: flex-end; padding: 9rem max(2rem, calc((100vw - 1440px) / 2)) 5.5rem 5rem; }
.about-page .about-hero .eyebrow { color: #e1b0a7; }
.about-page .about-hero h1 { max-width: 680px; color: #f8f5f0; font-size: clamp(3.3rem, 6vw, 6.7rem); line-height: .9; text-transform: uppercase; }
.about-page .about-hero .hero-lede { max-width: 34rem; margin-top: 1.35rem; color: rgba(255,255,255,.78); font: 1.05rem/1.5 var(--display); }
.about-page .about-copy { width: min(100% - 4rem, 1120px); padding: 5.5rem 0; grid-template-columns: .8fr 1.2fr; gap: 5rem; border-top: 1px solid rgba(255,255,255,.2); }
.about-page .about-copy h2, .about-page .about-details h2 { color: #f8f5f0; }
.about-page .about-copy p { color: rgba(255,255,255,.72); }
.about-page .about-details { width: min(100% - 4rem, 1120px); padding: 5.5rem 0 7rem; gap: 5rem; border-top-color: rgba(255,255,255,.2); }
.about-page .about-details p { color: rgba(255,255,255,.72); }
.about-page .detail-list div { border-bottom-color: rgba(255,255,255,.2); }
.about-page .detail-list strong { color: #e1b0a7; }
.about-page .detail-list span { color: #f8f5f0; }

@media (max-width: 900px) {
  .about-page .about-hero { min-height: 0; grid-template-columns: 1fr; }
  .about-page .about-logo-card { height: 65svh; min-height: 520px; }
  .about-page .about-hero > div:last-child { min-height: 0; padding: 4rem 1.5rem 5rem; }
  .about-page .about-copy, .about-page .about-details { width: calc(100% - 2rem); grid-template-columns: 1fr; gap: 2.5rem; }
}

@media (max-width: 650px) {
  .about-page .about-logo-card { height: 58svh; min-height: 420px; }
  .about-page .about-hero > div:last-child { padding: 3.5rem 1rem 4rem; }
  .about-page .about-hero h1 { font-size: clamp(2.8rem, 12vw, 4.5rem); }
  .about-page .about-hero .hero-lede { font-size: .96rem; }
  .about-page .about-copy, .about-page .about-details { padding-top: 3.5rem; padding-bottom: 4rem; }
}

/* SEO copy remains part of the visual language rather than reading like a separate template. */
.home-page .hero-copy h1 { max-width: 900px; font-size: clamp(2.8rem, 6vw, 6.5rem); }
.home-page .hero-branding { margin-top: .7rem; color: #e1b0a7; font: 500 clamp(1.4rem, 2.4vw, 2.4rem)/1 var(--display); letter-spacing: .02em; }
.home-page .home-reach { max-width: 34rem; margin-top: .7rem; color: rgba(255,255,255,.72); font-size: clamp(.92rem, 1.15vw, 1.08rem); line-height: 1.35; }
.home-page .hero-lede a, .about-page .about-copy a { color: #f1c9c0; text-decoration: underline; text-decoration-color: rgba(241,201,192,.55); text-underline-offset: .2em; }
.home-page .home-reach a { color: #f1c9c0; text-decoration: underline; text-decoration-color: rgba(241,201,192,.55); text-underline-offset: .2em; }
.home-page .hero-lede a:hover, .home-page .hero-lede a:focus-visible, .about-page .about-copy a:hover, .about-page .about-copy a:focus-visible { color: white; text-decoration-color: white; }
.home-page .home-reach a:hover, .home-page .home-reach a:focus-visible { color: white; text-decoration-color: white; }
.about-page .about-supporting { max-width: 34rem; margin-top: 1.4rem; color: #e1b0a7; font: 500 clamp(1.4rem, 2.4vw, 2.3rem)/1.05 var(--display); }
.about-page .about-hero .hero-lede + .hero-lede { margin-top: .8rem; }
.portfolio-related-links { width: min(100% - 4rem, 1440px); margin: 0 auto; padding: 3.5rem 0; border-top: 1px solid rgba(255,255,255,.2); }
.portfolio-related-links-list { display: flex; flex-wrap: wrap; gap: .65rem 1.6rem; margin-top: 1rem; }
.portfolio-related-links-list a { display: inline-flex; align-items: center; gap: .55rem; color: rgba(255,255,255,.78); font: 500 1rem/1.2 var(--display); text-decoration: none; }
.portfolio-related-links-list a span { color: #e1b0a7; font-family: var(--body); }
.portfolio-related-links-list a:hover, .portfolio-related-links-list a:focus-visible { color: white; }

/* Pricing page: carry the same dark editorial treatment through from the portfolio pages. */
.pricing-page { background: #0d0e0f; color: #f8f5f0; }
.pricing-page .page-hero { position: relative; width: 100vw; max-width: none; min-height: 68vh; margin-left: calc(50% - 50vw); padding: 0 clamp(1.5rem, 4vw, 5rem) 5rem; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(240px, .75fr); align-items: end; gap: 5rem; overflow: hidden; background: radial-gradient(circle at 78% 38%, rgba(197,138,128,.2), transparent 34%), linear-gradient(120deg, #171416, #0d0e0f 68%); }
.pricing-page .page-hero::after { display: none; }
.pricing-page .page-hero > div:first-child { position: relative; z-index: 2; width: auto; min-height: 0; margin: 0; padding: 12rem 0 0; display: block; }
.pricing-page .page-hero > div:last-child { position: relative; z-index: 2; }
.pricing-page .price-feature { min-height: 250px; border-top: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.05); }
.pricing-page .pricing-grid { width: 100%; max-width: none; margin: 0; padding: 5rem clamp(1.5rem, 4vw, 5rem) 7rem; background: #0d0e0f; gap: 1px; }
.pricing-page .pricing-grid article { min-height: 360px; padding: 3.5rem; border-top: 1px solid rgba(255,255,255,.22); background: #171819; color: #f8f5f0; }
.pricing-page .pricing-grid .pricing-card-dark { background: #242022 !important; }
.pricing-page .pricing-grid h2 { color: #f1c9c0; font-size: clamp(3.3rem, 5vw, 5.5rem); }
.pricing-page .pricing-grid p:not(.eyebrow) { color: rgba(255,255,255,.72); }
.pricing-page .pricing-grid .eyebrow, .pricing-page .policy-section .eyebrow { color: #e1b0a7; }
.pricing-page .policy-section { width: min(100% - 4rem, 1120px); padding: 5rem 0 7rem; border-top-color: rgba(255,255,255,.22); color: #f8f5f0; }
.pricing-page .policy-section h2 { color: #f8f5f0; }
.pricing-page .policy-columns { color: rgba(255,255,255,.72); }

@media (max-width: 900px) {
  .pricing-page .page-hero { width: 100%; min-height: 0; margin-left: 0; padding: 9rem 1rem 3.5rem; grid-template-columns: 1fr; gap: 2.5rem; }
  .pricing-page .page-hero > div:first-child { padding: 0; }
  .pricing-page .pricing-grid { padding: 3.5rem 1rem 5rem; }
  .pricing-page .pricing-grid article { min-height: 0; padding: 2.5rem; }
  .pricing-page .policy-section { width: calc(100% - 2rem); padding: 3.5rem 0 5rem; }
}

@media (max-width: 650px) {
  .pricing-page .page-hero { padding: 7rem 1rem 2.5rem; }
  .pricing-page .pricing-grid article { padding: 2rem; }
}

@media (max-width: 900px) {
  .portfolio-related-links { width: calc(100% - 2rem); }
}

@media (max-width: 650px) {
  .home-page .hero-copy h1 { max-width: 21rem; font-size: clamp(2.35rem, 10.5vw, 4.1rem); }
  .home-page .hero-branding { font-size: 1.35rem; }
  .home-page .home-reach { margin-top: .55rem; font-size: .9rem; }
  .portfolio-related-links { padding: 2.5rem 0; }
  .portfolio-related-links-list { display: grid; gap: .9rem; }
  .portfolio-related-links-list a { font-size: .95rem; }
}

/* Utility pages use the same full-bleed, dark editorial system as the main pages. */
.utility-page { background: #0d0e0f; color: #f8f5f0; }
.utility-page .page-hero { position: relative; width: 100vw; max-width: none; min-height: 68vh; margin-left: calc(50% - 50vw); padding: 0 clamp(1.5rem, 4vw, 5rem) 5rem; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr); align-items: end; gap: 5rem; overflow: hidden; background: radial-gradient(circle at 78% 38%, rgba(197,138,128,.2), transparent 34%), linear-gradient(120deg, #171416, #0d0e0f 68%); }
.utility-page .page-hero::after { display: none; }
.utility-page .page-hero > div:first-child { position: relative; z-index: 2; width: auto; min-height: 0; margin: 0; padding: 12rem 0 0; display: block; }
.utility-page .page-hero > div:last-child { position: relative; z-index: 2; }
.utility-page .page-hero h1 { color: #f8f5f0; }
.utility-page .page-hero p:not(.eyebrow) { color: rgba(255,255,255,.72); }
.utility-page .page-hero .eyebrow { color: #e1b0a7; }
.utility-page .question-mark, .utility-page .area-map-card { min-height: 250px; border-top: 1px solid rgba(255,255,255,.28); border-radius: 0; background: rgba(255,255,255,.05); color: #f8f5f0; }
.utility-page .question-mark { color: #f1c9c0; }
.utility-page .area-map-card small { color: rgba(255,255,255,.68); }
.utility-page .faq-list { width: min(100% - 4rem, 1120px); max-width: none; padding: 5rem 0 7rem; color: #f8f5f0; }
.utility-page .faq-list details { border-color: rgba(255,255,255,.22); }
.utility-page .faq-list summary { color: #f8f5f0; }
.utility-page .faq-list summary span { color: #e1b0a7; }
.utility-page .faq-list details p { color: rgba(255,255,255,.72); }
.utility-page .simple-page { width: min(100% - 4rem, 1120px); max-width: none; min-height: 68vh; padding: 12rem 0 7rem; color: #f8f5f0; }
.utility-page .simple-page h1, .utility-page .simple-page h2 { color: #f8f5f0; }
.utility-page .simple-page p { color: rgba(255,255,255,.72); }
.utility-page .simple-page .eyebrow { color: #e1b0a7; }
.utility-page .copy-section { color: #f8f5f0; border-color: rgba(255,255,255,.22); }
.utility-page .copy-section h2 { color: #f8f5f0; }
.utility-page .copy-section p:not(.eyebrow) { color: rgba(255,255,255,.72); }
.utility-page .service-mini-grid a { border-color: rgba(255,255,255,.22); background: transparent; color: #f8f5f0; }
.utility-page .service-mini-grid strong { color: #f8f5f0; }
.utility-page .service-mini-grid span:last-child { color: rgba(255,255,255,.68); }
.utility-page .service-mini-grid .eyebrow { color: #e1b0a7; }

@media (max-width: 900px) {
  .utility-page .page-hero { width: 100%; min-height: 0; margin-left: 0; padding: 9rem 1rem 3.5rem; grid-template-columns: 1fr; gap: 2.5rem; }
  .utility-page .page-hero > div:first-child { width: auto; min-height: 0; padding: 0; }
  .utility-page .faq-list, .utility-page .simple-page, .utility-page .copy-section, .utility-page .service-mini-grid { width: calc(100% - 2rem); }
  .utility-page .simple-page { min-height: 0; padding: 4rem 0 5rem; }
}

@media (max-width: 650px) {
  .utility-page .page-hero { padding: 7rem 1rem 2.5rem; }
  .utility-page .faq-list { padding: 3.5rem 0 5rem; }
  .utility-page .simple-page { padding: 3.5rem 0 4rem; }
}

/* Social links sit beside the mark so they remain part of the brand lockup. */
.header-brand { display: flex; align-items: center; min-width: 0; gap: 1.1rem; }
.header-socials { display: flex; flex-direction: column; align-items: center; gap: .2rem; }
.header-socials a { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; color: var(--ink-soft); text-decoration: none; }
.header-socials svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.header-socials .social-icon-fill { fill: currentColor; stroke: none; }
.header-socials a:hover, .header-socials a:focus-visible { color: var(--rose-dark); }
.portfolio-page .header-socials a, .home-page .header-socials a { color: rgba(255,255,255,.9); }
.portfolio-page .header-socials a:hover, .portfolio-page .header-socials a:focus-visible, .home-page .header-socials a:hover, .home-page .header-socials a:focus-visible { color: #e1b0a7; }

@media (max-width: 650px) {
  .header-brand { gap: .55rem; }
  .header-socials { gap: .1rem; }
  .header-socials a { width: 1.5rem; height: 1.5rem; }
  .header-socials svg { width: 1rem; height: 1rem; }
}
