/* By Her Measure — site styles
   Design system: cream / butter-yellow / mulberry (lighter-mulberry) */
:root{--cream:#fbf6e9;--paper:#fffdf7;--butter:#f3dc80;--mulberry:#914b69;--berry:#6f304b;--ink:#281e20;--line:#d9cdbf;--soft:#ead5dc}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}
a{color:inherit}
img{max-width:100%;display:block}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:.98;letter-spacing:-.04em}
h1{font-size:clamp(3.7rem,8vw,8.2rem)}
h2{font-size:clamp(2.5rem,5vw,5rem)}
h3{font-size:1.2rem}
.section-pad{padding:clamp(5rem,10vw,9rem) max(6vw,24px)}
.centered{text-align:center}
.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.19em;text-transform:uppercase;color:var(--berry);margin-bottom:1.3rem}

/* Skip link */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--cream);padding:1rem 1.4rem;z-index:100;text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}
.skip-link:focus{left:1rem;top:1rem}

/* Header */
.site-header{height:86px;padding:0 max(4vw,20px);display:flex;align-items:center;gap:2rem;border-bottom:1px solid var(--line);position:relative;z-index:20;background:var(--cream)}
.wordmark{text-decoration:none;display:flex;align-items:center;gap:.7rem;margin-right:auto}
.wordmark img{height:38px;width:auto}
.wordmark span{font-size:.65rem;letter-spacing:.2em;font-weight:700}
.site-header nav{display:flex;gap:1.8rem}
.site-header nav a,.nav-cta{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;font-weight:700}
.site-header nav a[aria-current="page"]{color:var(--berry);text-decoration:underline;text-underline-offset:.3em}
.nav-cta{border:1px solid var(--ink);padding:.65rem 1rem;white-space:nowrap}
.nav-toggle{display:none;border:1px solid var(--ink);background:transparent;padding:.55rem .7rem;cursor:pointer;margin-left:auto}
.nav-toggle span,.nav-toggle span:before,.nav-toggle span:after{content:"";display:block;width:20px;height:2px;background:var(--ink)}
.nav-toggle span{position:relative}
.nav-toggle span:before{position:absolute;top:-6px}
.nav-toggle span:after{position:absolute;top:6px}

/* Hero */
.hero{min-height:calc(100vh - 86px);padding:max(8vw,70px) max(6vw,24px);display:grid;grid-template-columns:1.3fr .7fr;align-items:center;gap:4rem;overflow:hidden}
.hero h1 em,.intro h2 em{color:var(--mulberry);font-weight:400;font-style:normal}
.hero .lede{font-size:1.2rem;max-width:560px}
.button-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.button{display:inline-flex;align-items:center;gap:1.8rem;background:var(--berry);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.11em;font-weight:700;font-size:.72rem;padding:1rem 1.25rem;border:1px solid var(--berry);margin-top:1rem}
.button-secondary{background:transparent;color:var(--ink);border-color:var(--ink)}
.hero-mark{aspect-ratio:4/5;background:var(--paper);color:var(--berry);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;box-shadow:28px 28px 0 var(--butter);padding:2rem}
.hero-mark img{max-width:72%;height:auto}

/* Intro */
.intro{background:var(--paper)}
.intro p{max-width:760px;margin:auto;font-size:1.15rem}

/* Services preview */
.services-preview{background:var(--soft)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem}
.section-heading h2{max-width:700px}
.three-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.three-cards article{background:var(--paper);padding:1.2rem 1.2rem 2rem}
.three-cards article>a{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.service-art{height:240px;background:#57073c;position:relative;overflow:hidden}
.service-art img{width:100%;height:100%;object-fit:contain}
.service-art span{position:absolute;top:1rem;left:1rem;font:700 .7rem Arial;letter-spacing:.15em;color:#fff;background:rgba(40,30,32,.55);padding:.3rem .55rem;z-index:1}

/* Split / story */
.split-section,.story-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,9rem);align-items:center}
.portrait-photo{min-height:600px;box-shadow:-24px 24px 0 var(--butter);overflow:hidden}
.portrait-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;min-height:600px}
.portrait-photo.tall img{min-height:680px}

/* Gallery */
.gallery{background:var(--paper)}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:1rem}
.gallery-tile{position:relative;display:flex;align-items:end;padding:1rem;color:white;overflow:hidden;background:linear-gradient(135deg,#6f304b,#bb7892)}
.gallery-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.gallery-tile span{font-size:.6rem;letter-spacing:.2em;position:relative;z-index:1}
.gallery-tile.is-placeholder{background:linear-gradient(135deg,#3c292e,#914b69);opacity:.55}
.g01,.g04{grid-row:span 2}
.g03.is-placeholder{background:linear-gradient(135deg,#d9b64d,#f3dc80)}
.g03.is-placeholder span{color:var(--ink)}

/* Final CTA */
.final-cta{background:var(--butter)}
.final-cta>p{font-size:1.15rem}
.cta-pair{max-width:900px;margin:3rem auto 0;display:grid;grid-template-columns:1fr 1fr;text-align:left;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.cta-pair>div{padding:2rem}
.cta-pair>div+div{border-left:1px solid var(--ink)}

/* Footer */
footer{background:var(--ink);color:var(--cream);padding:5rem max(6vw,24px) 2rem;display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem}
footer a{display:block;text-decoration:none;margin:.45rem 0}
footer h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em}
.footer-brand img{height:56px;width:auto;margin-bottom:.75rem;filter:brightness(0) invert(1)}
.footer-brand h2{font-size:2rem;margin:.5rem 0}
.footer-bottom{grid-column:1/-1;border-top:1px solid #665b5d;padding-top:1.5rem;display:flex;justify-content:space-between}
.footer-bottom em{font-family:Georgia,serif;color:var(--butter);font-style:italic}

/* Page hero */
.page-hero{background:var(--soft);min-height:520px;display:grid;grid-template-columns:1.3fr .7fr;align-content:center;column-gap:4rem}
.page-hero .eyebrow{grid-column:1/-1}
.page-hero h1{font-size:clamp(3.8rem,7vw,7rem)}
.page-hero-copy{font-size:1.15rem;align-self:end}
.jump-links{display:flex;gap:1rem;margin-top:2rem;text-transform:uppercase;font-size:.75rem;font-weight:800;letter-spacing:.12em}

/* Services page */
.service-section{display:grid;grid-template-columns:320px 1fr;gap:4rem}
.service-section>.service-art{grid-row:span 3;height:430px}
.service-intro h2{margin-bottom:1.5rem}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.price-grid.two{grid-template-columns:repeat(2,1fr)}
.price-grid.one{grid-template-columns:1fr}
.price-card{background:var(--paper);border:1px solid var(--line);padding:2rem;display:flex;flex-direction:column}
.price-card .price{font-family:Georgia,serif;font-size:1.55rem;color:var(--berry);margin-bottom:1.5rem;display:block}
.price-card .button{margin-top:auto;align-self:start}
.service-section.alt{background:var(--soft)}
.explain-box{grid-column:2;padding:2.5rem;border:1px solid var(--mulberry);margin-top:1rem}
.before-book{background:var(--butter)}
.mini-grid,.three-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}

/* About page */
.training{background:var(--soft);padding-left:max(18vw,24px);padding-right:max(18vw,24px)}
.training p{font-size:1.25rem}
.training small{display:block;border-top:1px solid var(--mulberry);padding-top:1.2rem}
.approach{background:var(--paper)}
.approach>p{max-width:800px}
.three-principles{margin-top:4rem}
.three-principles>div{border-top:2px solid var(--mulberry);padding-top:1rem}
.three-principles b{text-transform:uppercase;letter-spacing:.15em;color:var(--berry)}
.human{background:var(--mulberry);color:var(--cream);padding-left:max(18vw,24px);padding-right:max(18vw,24px)}
.human .eyebrow{color:var(--butter)}
.human p{font-size:1.2rem}

/* Process page */
.process-overview{display:flex;justify-content:space-between;background:var(--ink);color:var(--cream);flex-wrap:wrap}
.process-overview a{text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}
.process-overview span{display:block;color:var(--butter);font:2rem Georgia;margin-bottom:.5rem}
.steps article{display:grid;grid-template-columns:180px 1fr;gap:3rem;padding:5rem 0;border-top:1px solid var(--line);scroll-margin-top:30px}
.steps article>div:last-child{max-width:760px}
.step-number{font:italic 5rem Georgia;color:var(--mulberry)}
.step-note{background:var(--soft);padding:1rem 1.3rem;font-weight:700}
.steps blockquote{font:italic 1.4rem Georgia;border-left:3px solid var(--butter);margin:2rem 0;padding-left:1.5rem}
.loc-change{background:var(--paper)}
.loc-change>p{max-width:700px}
.phase-line{display:flex;align-items:center;gap:1rem;margin-top:3rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}
.phase-line i{height:1px;flex:1;background:var(--mulberry)}

/* FAQ / policies */
.accordion-section{max-width:1000px;margin:auto}
.accordion-section details,.policy-list details{border-top:1px solid var(--line)}
details summary{list-style:none;cursor:pointer;padding:1.5rem 0;font-weight:700;display:flex;justify-content:space-between;gap:1rem}
details summary::-webkit-details-marker{display:none}
details summary span{color:var(--mulberry);font-size:1.5rem}
details[open] summary span{transform:rotate(45deg)}
details>p{max-width:780px;padding-bottom:1.5rem}
.policies{background:var(--ink);color:var(--cream)}
.policies .eyebrow{color:var(--butter)}
.policy-list{margin-top:3rem}
.policy-list details{border-color:#5d5052}
.policy-signoff{text-align:center;padding-top:5rem}
.policy-signoff h3{font:italic 2.5rem Georgia;color:var(--butter);font-style:italic}

/* Contact */
.contact-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:6rem}
.contact-layout form{margin-top:2rem}
.contact-layout label,.contact-layout legend{display:block;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.3rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
input,select,textarea{display:block;width:100%;border:1px solid var(--line);background:var(--paper);padding:1rem;margin-top:.5rem;font:inherit;color:var(--ink);font-size:1rem}
input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--berry);outline-offset:2px}
textarea{resize:vertical}
fieldset{border:0;padding:0;margin:0}
.radio-row{display:flex;flex-wrap:wrap;gap:1.5rem}
.radio-row label{display:flex;align-items:center;gap:.5rem;text-transform:none;letter-spacing:0;font-weight:400}
.radio-row input{width:auto;margin:0}
.submit{cursor:pointer;border:1px solid var(--berry);background:var(--berry)}
.submit[disabled]{opacity:.6;cursor:progress}
.submit.button-secondary{background:transparent;color:var(--ink)}
.form-note{font-size:.78rem;color:#6d6264;margin-top:1rem}
.form-error{font-size:.85rem;color:#8a1f2b;margin-top:1rem;display:none}
.form-error.is-visible{display:block}
.contact-layout aside>div{border-top:1px solid var(--line);padding:1.5rem 0}
.contact-layout aside a{color:var(--berry);font-weight:700}
.aside-note{background:var(--butter);padding:1.5rem}
.book-now{border:1px solid var(--mulberry);padding:2.5rem;margin-bottom:3rem}
.book-now h3{margin-bottom:.75rem}
.book-now p{margin-bottom:0}
.book-now .button{margin-top:1.5rem}
.success{background:var(--paper);border:1px solid var(--line);padding:3rem}
.success span{font-size:2rem;color:var(--mulberry)}
.hp-field{position:absolute;left:-9999px;top:-9999px}

@media(max-width:900px){
  .site-header{height:auto;padding-top:1rem;padding-bottom:1rem;flex-wrap:wrap}
  .site-header nav{order:3;width:100%;overflow:auto;gap:1.2rem;padding-top:.5rem}
  .site-header nav a{white-space:nowrap}
  .hero,.page-hero,.split-section,.story-grid,.contact-layout{grid-template-columns:1fr}
  .hero{min-height:auto}
  .hero-mark{max-width:520px}
  .three-cards,.price-grid,.price-grid.two{grid-template-columns:1fr}
  .service-section{grid-template-columns:1fr}
  .service-section>.service-art{grid-row:auto;height:260px}
  .explain-box{grid-column:auto}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .mini-grid,.three-principles{grid-template-columns:1fr}
  .page-hero{min-height:auto}
  .page-hero .eyebrow{grid-column:auto}
  .process-overview{overflow:auto;gap:3rem}
  .process-overview a{min-width:100px}
  .contact-layout{gap:3rem}
}
@media(max-width:600px){
  h1{font-size:3.6rem}
  .section-pad{padding:4rem 20px}
  .wordmark span{display:none}
  .nav-toggle{display:block}
  .site-header nav{display:none;flex-direction:column;align-items:flex-start;gap:1rem}
  .site-header nav.is-open{display:flex}
  .hero{padding-top:4rem}
  .hero-mark{box-shadow:14px 14px 0 var(--butter)}
  .section-heading{display:block}
  .gallery-grid{grid-auto-rows:160px}
  .cta-pair{grid-template-columns:1fr}
  .cta-pair>div+div{border-left:0;border-top:1px solid var(--ink)}
  footer{grid-template-columns:1fr}
  .footer-bottom{display:block}
  .footer-bottom span{display:block;margin-top:1rem}
  .steps article{grid-template-columns:1fr;gap:1rem}
  .step-number{font-size:3rem}
  .field-row{grid-template-columns:1fr}
  .radio-row{display:block}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
