:root {
  --ink: #11110f;
  --ink-soft: #363631;
  --paper: #f6f4ef;
  --paper-2: #ece8df;
  --white: #fffdf9;
  --line: rgba(17, 17, 15, .16);
  --accent: #c94f36;
  --accent-deep: #9d3928;
  --max: 1440px;
  --pad: clamp(20px, 4vw, 64px);
  --radius: 3px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }

.skip-link {
  position: fixed; left: 1rem; top: -100px; z-index: 9999;
  background: var(--ink); color: white; padding: .65rem 1rem;
}
.skip-link:focus { top: 1rem; }

.site-header {
  width: 100%; height: 84px; padding: 0 var(--pad);
  display: flex; align-items: center; justify-content: space-between;
  position: fixed; top: 0; left: 0; z-index: 1000;
  border-bottom: 1px solid transparent;
  transition: background .25s ease, border-color .25s ease, height .25s ease;
}
.site-header.scrolled {
  height: 70px; background: rgba(246,244,239,.93); backdrop-filter: blur(16px);
  border-bottom-color: var(--line);
}
.brand { display: inline-flex; align-items: baseline; gap: .45rem; letter-spacing: -.03em; }
.brand-main { font: 700 1.35rem/1 Arial, Helvetica, sans-serif; }
.brand-sub { font: 600 .72rem/1 Arial, Helvetica, sans-serif; letter-spacing: .18em; }
.site-nav { display: flex; align-items: center; gap: 2rem; font-size: .9rem; font-weight: 500; }
.site-nav > a:not(.nav-cta) { position: relative; }
.site-nav > a:not(.nav-cta)::after { content:""; position:absolute; left:0; bottom:-5px; width:100%; height:1px; background:var(--ink); transform:scaleX(0); transform-origin:right; transition:.25s; }
.site-nav > a:not(.nav-cta):hover::after { transform:scaleX(1); transform-origin:left; }
.nav-cta { border: 1px solid var(--ink); padding: .65rem 1rem; transition: .2s; }
.nav-cta:hover { background: var(--ink); color: var(--white); }
.menu-toggle { display:none; border:0; background:transparent; padding:.5rem; }

.hero {
  min-height: 100svh; max-width: var(--max); margin: 0 auto;
  padding: 118px var(--pad) 48px;
  display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(350px, .78fr); gap: clamp(42px, 7vw, 110px); align-items: center;
  position: relative;
}
.hero-copy { max-width: 780px; }
.eyebrow, .section-kicker { margin:0 0 1rem; font: 600 .72rem/1.2 Arial, Helvetica, sans-serif; letter-spacing:.18em; text-transform:uppercase; }
.eyebrow { color: var(--accent-deep); }
.hero h1 {
  margin: 0; font: 600 clamp(3.8rem, 7vw, 7.3rem)/.94 Arial, Helvetica, sans-serif;
  letter-spacing: -.065em; max-width: 900px;
}
.hero h1 em { font-family:Georgia, "Times New Roman", serif; font-weight:500; letter-spacing:-.035em; }
.hero-text { max-width: 650px; margin: 2rem 0 0; font-size: clamp(1.05rem, 1.5vw, 1.25rem); color:var(--ink-soft); }
.hero-actions { display:flex; align-items:center; gap:1.5rem; margin-top:2.25rem; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:.8rem 1.2rem; border:1px solid var(--ink); cursor:pointer; transition:.2s ease; }
.button-dark { background:var(--ink); color:var(--white); }
.button-dark:hover { background:var(--accent); border-color:var(--accent); }
.text-link { font-size:.92rem; font-weight:600; border-bottom:1px solid var(--ink); padding-bottom:3px; }
.hero-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:3rem; }
.hero-tags span { border:1px solid var(--line); border-radius:99px; padding:.42rem .72rem; font-size:.76rem; background:rgba(255,255,255,.2); }
.hero-image { margin:0; align-self:stretch; min-height:620px; max-height:820px; position:relative; overflow:hidden; background:#ddd8cf; }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.hero-image figcaption { position:absolute; left:16px; bottom:14px; background:rgba(17,17,15,.82); color:white; padding:.45rem .6rem; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
.hero-scroll { position:absolute; bottom:20px; left:var(--pad); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; display:flex; align-items:center; gap:.8rem; }
.hero-scroll span { display:block; width:46px; height:1px; background:var(--ink); }

.section-pad { max-width: var(--max); margin:0 auto; padding: clamp(90px, 10vw, 150px) var(--pad); }
.statement { border-top:1px solid var(--line); }
.statement-grid { display:grid; grid-template-columns:1.5fr .72fr; gap:clamp(35px, 9vw, 140px); align-items:start; }
.statement h2, .section-heading h2, .about h2, .contact h2 {
  margin:0; font:600 clamp(2.35rem, 4.6vw, 5rem)/1.02 Arial, Helvetica, sans-serif; letter-spacing:-.055em;
}
.statement-grid > div > p { margin:0 0 1rem; font-size:1.08rem; }
.muted { color:#65645e; }
.section-heading { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(240px,.55fr); gap:3rem; align-items:end; margin-bottom:3.5rem; }
.section-heading > p { margin:0; color:#5f5e58; max-width:480px; justify-self:end; }

.work { padding-top: 105px; }
.portfolio-filter { display:flex; gap:.5rem; flex-wrap:wrap; margin:-1rem 0 2rem; }
.filter-button { appearance:none; border:1px solid var(--line); background:transparent; padding:.55rem .9rem; border-radius:99px; cursor:pointer; font-size:.82rem; }
.filter-button:hover, .filter-button.active { color:white; background:var(--ink); border-color:var(--ink); }
.portfolio-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:12px; grid-auto-flow:dense; }
.portfolio-item {
  grid-column:span 4; height:480px; padding:0; border:0; background:#ddd; overflow:hidden; position:relative; cursor:zoom-in; text-align:left;
  transition: opacity .35s ease, transform .35s ease;
}
.portfolio-item.wide { grid-column:span 8; height:550px; }
.portfolio-item.tall { height:650px; }
.portfolio-item.is-hidden { display:none; }
.portfolio-item img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.22,.61,.36,1); }
.portfolio-item[data-title="Graduation Portraits"] img { object-position:center 38%; }
.portfolio-item[data-title="UCL Graduation Portraits"] img { object-position:center 42%; }
.portfolio-item[data-title="Tennis Coaching Campaign"] img { object-position:center 48%; }
.portfolio-item[data-title="Proposal & Celebration"] img { object-position:center 45%; }
.portfolio-item[data-title="Coastal Portraits"] img { object-position:center 36%; }
.portfolio-item:hover img { transform:scale(1.025); }
.portfolio-overlay { position:absolute; inset:auto 0 0; padding:3.2rem 1.1rem 1.1rem; color:white; background:linear-gradient(transparent,rgba(0,0,0,.64)); display:flex; flex-direction:column; gap:.15rem; transform:translateY(5px); transition:.25s; }
.portfolio-item:hover .portfolio-overlay { transform:none; }
.portfolio-overlay strong { font:600 1rem/1.2 Arial, Helvetica, sans-serif; }
.portfolio-overlay small { opacity:.82; }

.services { border-top:1px solid var(--line); }
.service-list { border-top:1px solid var(--line); }
.service-row { display:grid; grid-template-columns:70px minmax(190px,.7fr) 1.25fr auto; gap:clamp(20px,4vw,65px); padding:2rem 0; border-bottom:1px solid var(--line); align-items:start; }
.service-number { color:#77766f; font-size:.75rem; }
.service-row h3 { margin:0; font:600 clamp(1.35rem,2vw,2rem)/1.1 Arial, Helvetica, sans-serif; letter-spacing:-.035em; }
.service-row p { margin:0; color:#5e5d57; max-width:650px; }
.service-row a { white-space:nowrap; font-size:.86rem; border-bottom:1px solid var(--ink); }

.feature-strip { max-width:var(--max); margin:0 auto; display:grid; grid-template-columns:1fr .8fr 1fr; min-height:560px; background:var(--ink); color:white; }
.feature-strip figure { margin:0; overflow:hidden; min-height:560px; }
.feature-strip img { width:100%; height:100%; object-fit:cover; }
.feature-strip figure:first-child img { object-position:center 45%; }
.feature-strip figure:last-child img { object-position:center; }
.feature-quote { padding:clamp(36px,5vw,74px); display:flex; flex-direction:column; justify-content:center; }
.feature-quote blockquote { margin:0 0 2rem; font:500 clamp(2.4rem,4vw,4.3rem)/1.05 Georgia,"Times New Roman",serif; }
.feature-quote > p:last-child { margin:0; color:rgba(255,255,255,.7); }

.about { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(45px,9vw,130px); align-items:center; }
.about-collage { min-height:720px; position:relative; }
.about-img-main { width:75%; height:84%; object-fit:cover; position:absolute; left:0; top:0; }
.about-img-small { width:48%; height:45%; object-fit:cover; position:absolute; right:0; bottom:0; border:10px solid var(--paper); }
.about-copy p:not(.section-kicker) { color:#55544f; font-size:1.04rem; max-width:720px; }
.about-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding-top:2rem; margin-top:2rem; border-top:1px solid var(--line); }
.about-facts div { display:flex; flex-direction:column; gap:.25rem; }
.about-facts dt { font-size:.7rem; text-transform:uppercase; letter-spacing:.13em; color:#74736d; }
.about-facts dd { margin:0; font-weight:600; }

.pricing { background:var(--paper-2); max-width:none; padding-left:max(var(--pad),calc((100vw - var(--max))/2 + var(--pad))); padding-right:max(var(--pad),calc((100vw - var(--max))/2 + var(--pad))); }
.pricing .section-heading, .pricing .pricing-grid, .pricing .pricing-note { max-width:calc(var(--max) - 2 * var(--pad)); margin-left:auto; margin-right:auto; }
.pricing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.price-card { background:var(--white); padding:2rem; min-height:300px; display:flex; flex-direction:column; border:1px solid transparent; }
.price-card.featured { background:var(--ink); color:white; }
.price-category { margin:0; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; }
.price { margin:1.8rem 0 1.2rem; font-size:1rem; }
.price strong { display:block; margin-top:.1rem; font:600 clamp(2.6rem,4vw,4.5rem)/1 Arial, Helvetica, sans-serif; letter-spacing:-.06em; }
.price-card > p:nth-of-type(3) { color:#67665f; margin:0 0 2rem; }
.price-card.featured > p:nth-of-type(3) { color:rgba(255,255,255,.72); }
.price-card a { margin-top:auto; font-size:.85rem; font-weight:600; }
.pricing-note { margin-top:1.2rem; font-size:.78rem; color:#696862; }

.process { border-top:1px solid var(--line); }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.process-grid > div { padding:2rem 2rem 0 0; border-right:1px solid var(--line); min-height:230px; }
.process-grid > div:not(:first-child) { padding-left:2rem; }
.process-grid > div:last-child { border-right:0; }
.process-grid span { font-size:.72rem; color:#77766f; }
.process-grid h3 { margin:2.8rem 0 .7rem; font:600 1.25rem/1.1 Arial, Helvetica, sans-serif; }
.process-grid p { margin:0; color:#63625c; font-size:.91rem; }

.contact { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(45px,9vw,130px); border-top:1px solid var(--line); }
.contact-copy > p:not(.section-kicker) { color:#5c5b55; max-width:580px; }
.contact-details { margin-top:3rem; display:grid; gap:1.5rem; }
.contact-details > div { display:grid; gap:.35rem; }
.contact-details span { font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:#73726c; }
.contact-details a { font-size:1.05rem; font-weight:600; }
.contact-details address { font-style:normal; }
.appointment-note { margin:0!important; font-size:.78rem!important; }
.contact-form { border-top:1px solid var(--ink); padding-top:1.2rem; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.contact-form label { display:grid; gap:.5rem; font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; margin-bottom:1rem; }
.contact-form input, .contact-form textarea, .contact-form select { width:100%; border:1px solid var(--line); background:rgba(255,255,255,.45); color:var(--ink); padding:.9rem; outline:none; border-radius:0; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color:var(--ink); }
.contact-form textarea { resize:vertical; min-height:150px; }
.contact-form .button { width:100%; }
.form-note { font-size:.72rem; color:#7b7a74; margin:.7rem 0 0; }

.site-footer { background:var(--ink); color:white; padding:70px var(--pad) 32px; display:grid; grid-template-columns:1.2fr 1fr .7fr; gap:3rem; align-items:start; }
.brand-light { color:white; }
.footer-brand p, .footer-contact p { color:rgba(255,255,255,.58); font-size:.84rem; }
.footer-contact a { font-weight:600; }
.footer-links { display:grid; gap:.55rem; justify-content:start; font-size:.86rem; }
.footer-links a:hover { color:#d57460; }
.copyright { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.15); padding-top:1.4rem; margin:2rem 0 0; color:rgba(255,255,255,.45); font-size:.75rem; }

.lightbox { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:rgba(9,9,8,.94); color:white; }
.lightbox::backdrop { background:rgba(0,0,0,.88); }
.lightbox-close { position:fixed; right:22px; top:18px; z-index:2; width:44px; height:44px; border:1px solid rgba(255,255,255,.35); border-radius:50%; background:rgba(0,0,0,.25); color:white; font-size:1.6rem; cursor:pointer; }
.lightbox-inner { height:100%; padding:56px 40px 26px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.lightbox-inner img { max-width:min(92vw,1400px); max-height:calc(100dvh - 130px); width:auto; height:auto; object-fit:contain; }
.lightbox-caption { width:min(92vw,1400px); display:flex; justify-content:space-between; gap:1rem; padding-top:.8rem; font-size:.82rem; }
.lightbox-caption span { color:rgba(255,255,255,.6); }

.reveal { opacity:0; transform:translateY(16px); transition:opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1050px) {
  .hero { grid-template-columns:1fr .72fr; gap:40px; }
  .hero h1 { font-size:clamp(3.6rem,7.6vw,5.8rem); }
  .portfolio-item { grid-column:span 6; }
  .portfolio-item.wide { grid-column:span 6; }
  .feature-strip { grid-template-columns:1fr 1fr; }
  .feature-strip figure:last-child { display:none; }
  .pricing-grid { grid-template-columns:repeat(2,1fr); }
  .service-row { grid-template-columns:55px .75fr 1.15fr; }
  .service-row a { grid-column:3; justify-self:start; }
}

@media (max-width: 760px) {
  :root { --pad: 20px; }
  .site-header { height:68px; }
  .menu-toggle { display:block; position:relative; z-index:1002; cursor:pointer; }
  .site-nav { position:fixed; inset:0; background:var(--paper); padding:110px var(--pad) 50px; flex-direction:column; align-items:flex-start; gap:1.35rem; font:600 1.8rem/1.1 Arial, Helvetica, sans-serif; transform:translateX(100%); transition:transform .3s ease; z-index:1001; }
  .site-nav.open { transform:none; }
  .nav-cta { font-size:1rem; margin-top:1rem; }
  .hero { min-height:auto; padding-top:100px; grid-template-columns:1fr; gap:42px; }
  .hero h1 { font-size:clamp(3.2rem,15vw,5rem); }
  .hero-text { font-size:1rem; }
  .hero-image { min-height:610px; max-height:none; }
  .hero-scroll { display:none; }
  .statement-grid, .section-heading, .about, .contact { grid-template-columns:1fr; }
  .section-heading { gap:1.2rem; margin-bottom:2.2rem; }
  .section-heading > p { justify-self:start; }
  .portfolio-grid { grid-template-columns:1fr 1fr; gap:8px; }
  .portfolio-item, .portfolio-item.wide { grid-column:span 1; height:390px; }
  .portfolio-item.tall { height:510px; }
  .portfolio-item[data-title="Proposal & Celebration"] { grid-column:1/-1; height:310px; }
  .portfolio-item[data-title="Coastal Portraits"] { grid-column:1/-1; height:460px; }
  .service-row { grid-template-columns:42px 1fr; gap:14px 18px; }
  .service-row p, .service-row a { grid-column:2; }
  .feature-strip { grid-template-columns:1fr; min-height:auto; }
  .feature-strip figure { min-height:500px; }
  .feature-quote { min-height:470px; }
  .about-collage { min-height:570px; }
  .pricing-grid { grid-template-columns:1fr; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .process-grid > div { border-bottom:1px solid var(--line); min-height:220px; }
  .process-grid > div:nth-child(2) { border-right:0; }
  .process-grid > div:nth-child(3) { padding-left:0; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .site-footer { grid-template-columns:1fr; gap:1.6rem; }
  .lightbox-inner { padding:65px 16px 24px; }
  .lightbox-caption { flex-direction:column; gap:.15rem; }
}

@media (max-width: 470px) {
  .hero-tags { display:none; }
  .hero-image { min-height:520px; }
  .portfolio-grid { display:block; }
  .portfolio-item, .portfolio-item.wide, .portfolio-item.tall { width:100%; height:520px; margin-bottom:8px; }
  .portfolio-item[data-title="Proposal & Celebration"] { height:330px; }
  .portfolio-item[data-title="Live Performance"] { height:330px; }
  .about-facts { grid-template-columns:1fr; }
  .process-grid { grid-template-columns:1fr; }
  .process-grid > div { border-right:0; padding-left:0!important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
  .reveal { opacity:1; transform:none; }
}


/* Production multi-page additions */
.site-header .brand { flex-shrink:0; }
.site-nav a[aria-current="page"] { border-bottom:1px solid currentColor; }
.page-hero { padding:clamp(140px,18vw,220px) var(--pad) clamp(75px,9vw,120px); border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr .8fr; gap:clamp(40px,8vw,120px); align-items:end; }
.page-hero h1 { margin:.15em 0 .25em; font:600 clamp(3.6rem,8vw,8rem)/.87 Georgia,"Times New Roman",serif; letter-spacing:-.055em; }
.page-hero h1 em { font-weight:400; }
.page-hero p:not(.section-kicker) { max-width:620px; color:#5f5e58; font-size:1.02rem; line-height:1.65; }
.page-hero-media { min-height:480px; max-height:720px; overflow:hidden; }
.page-hero-media img { width:100%; height:100%; object-fit:cover; }
.page-intro { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(45px,8vw,130px); }
.page-intro h2 { margin:0; font:600 clamp(2.2rem,4vw,4.5rem)/1 Georgia,"Times New Roman",serif; letter-spacing:-.035em; }
.page-intro-copy { max-width:780px; color:#5d5c56; font-size:1rem; }
.page-intro-copy p:first-child { margin-top:0; }
.page-intro-copy .button { margin-top:1.2rem; }
.compact-work .portfolio-grid { margin-top:2rem; }
.compact-work .portfolio-item { min-height:430px; }
.home-video { display:grid; grid-template-columns:1.2fr .8fr; min-height:650px; background:#11110f; color:#fff; }
.home-video-media { position:relative; overflow:hidden; }
.home-video video { width:100%; height:100%; object-fit:cover; display:block; }
.home-video-copy { padding:clamp(45px,8vw,110px); display:flex; flex-direction:column; justify-content:center; }
.home-video-copy .section-kicker { color:rgba(255,255,255,.58); }
.home-video-copy h2 { font:600 clamp(2.7rem,5.3vw,6rem)/.96 Georgia,"Times New Roman",serif; letter-spacing:-.045em; margin:.1em 0 .35em; }
.home-video-copy p { color:rgba(255,255,255,.68); line-height:1.7; }
.home-video-copy .button { margin-top:1.5rem; align-self:flex-start; border-color:#fff; background:#fff; color:#11110f; }
.home-video-copy .button:hover { background:transparent; color:#fff; }
.home-pricing { border-top:1px solid var(--line); }
.home-price-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.home-price-grid article { padding:2rem 2rem 2.2rem 0; border-right:1px solid var(--line); margin-right:2rem; }
.home-price-grid article:last-child { border-right:0; margin-right:0; }
.home-price-grid strong { font:600 2.2rem/1 Georgia,"Times New Roman",serif; }
.home-price-grid p { color:#65645e; font-size:.9rem; }
.cta-band { background:#d26e58; color:#11110f; display:grid; grid-template-columns:1fr auto; align-items:center; gap:2rem; padding:clamp(55px,8vw,110px) var(--pad); }
.cta-band h2 { margin:0; max-width:980px; font:600 clamp(2.7rem,5vw,5.8rem)/.95 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.cta-band .button { white-space:nowrap; }
.service-detail-list { border-top:1px solid var(--line); }
.service-detail { display:grid; grid-template-columns:160px .85fr 1.15fr; gap:2rem; padding:2.2rem 0; border-bottom:1px solid var(--line); }
.service-detail .service-number { color:#8b8980; font-size:.72rem; }
.service-detail h3 { margin:0; font:600 clamp(1.8rem,3vw,3rem)/1.05 Georgia,"Times New Roman",serif; }
.service-detail > div:last-child { color:#5d5c56; }
.service-detail ul { padding-left:1.1rem; }
.service-detail li { margin:.35rem 0; }
.full-video { padding:0 var(--pad) clamp(75px,10vw,150px); }
.full-video-frame { position:relative; aspect-ratio:16/9; background:#111; overflow:hidden; }
.full-video video { width:100%; height:100%; object-fit:cover; display:block; }
.full-video-caption { display:flex; justify-content:space-between; gap:2rem; padding-top:.9rem; font-size:.82rem; color:#6e6d66; }
.gallery-note { max-width:720px; color:#66645e; }
.legal-page { max-width:960px; margin:0 auto; padding:clamp(140px,16vw,200px) var(--pad) 110px; }
.legal-page h1 { font:600 clamp(3rem,7vw,6.5rem)/.95 Georgia,"Times New Roman",serif; letter-spacing:-.05em; margin:.15em 0 .25em; }
.legal-page h2 { font:600 1.55rem/1.2 Arial,Helvetica,sans-serif; margin:2.7rem 0 .7rem; }
.legal-page h3 { font:600 1.05rem/1.3 Arial,Helvetica,sans-serif; margin:1.6rem 0 .5rem; }
.legal-page p, .legal-page li { color:#52514c; line-height:1.75; }
.legal-page a { text-decoration:underline; text-underline-offset:3px; }
.legal-meta { margin-bottom:2.2rem; color:#77756f!important; font-size:.84rem; }
.legal-callout { border:1px solid var(--line); padding:1.2rem 1.4rem; background:#f2f0e8; }
.contact-page-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(45px,8vw,120px); align-items:start; }
.contact-panel { position:sticky; top:120px; }
.contact-panel h2 { font:600 clamp(2.6rem,5vw,5.5rem)/.95 Georgia,"Times New Roman",serif; letter-spacing:-.045em; margin:.2em 0 .3em; }
.contact-panel p { color:#62615b; }
.contact-panel .contact-details { margin-top:2.4rem; }
.contact-form .privacy-line { font-size:.76rem; color:#6b6a63; letter-spacing:0; text-transform:none; margin:.4rem 0 1.2rem; }
.contact-form .privacy-line a { text-decoration:underline; }
.hidden-field { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.success-card { max-width:800px; margin:0 auto; padding:clamp(170px,20vw,250px) var(--pad) 130px; text-align:center; }
.success-card h1 { font:600 clamp(3rem,7vw,6rem)/.95 Georgia,"Times New Roman",serif; letter-spacing:-.05em; }
.success-card p { color:#5e5d57; max-width:620px; margin:0 auto 2rem; }
.footer-legal { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.15); padding-top:1.3rem; display:flex; flex-wrap:wrap; gap:.45rem 1.2rem; color:rgba(255,255,255,.48); font-size:.72rem; line-height:1.6; }
.footer-legal a { text-decoration:underline; text-underline-offset:2px; }
.copyright { margin:0; }
@media (max-width: 900px) {
  .page-hero, .page-intro, .home-video, .contact-page-grid { grid-template-columns:1fr; }
  .page-hero-media { min-height:520px; }
  .home-video-media { min-height:520px; }
  .home-price-grid { grid-template-columns:1fr; }
  .home-price-grid article { border-right:0; margin-right:0; border-bottom:1px solid var(--line); }
  .service-detail { grid-template-columns:60px 1fr; }
  .service-detail > div:last-child { grid-column:2; }
  .contact-panel { position:static; }
  .cta-band { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  .page-hero { padding-top:110px; }
  .page-hero-media { min-height:430px; }
  .home-video-media { min-height:360px; }
  .full-video { padding-left:0; padding-right:0; }
  .full-video-caption { padding-left:var(--pad); padding-right:var(--pad); flex-direction:column; gap:.2rem; }
  .footer-legal { display:block; }
  .footer-legal span, .footer-legal a { display:block; margin:.25rem 0; }
}

.section-action{margin-top:2rem}.contact-page-section{padding-top:clamp(145px,17vw,210px)}.contact-page-span{grid-column:1/-1}
