/*
Theme Name: Studio Freyja Portraits
Theme URI: https://studiofreyja.com
Author: Studio Freyja
Description: Block theme for Studio Freyja Portraits: maternity, motherhood and women's empowerment portraits in Anoka, MN. Layered, overlapping layouts with scroll motion, built from the Claude Design prototype. Fonts are included (Tenor Sans, Cormorant Garamond Italic, Questrial).
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 7.4
Version: 2.7.1
License: GPL-2.0-or-later
Text Domain: studio-freyja-portraits
*/
/* ==========================================================================
   Studio Freyja Portraits: layout system ported from the Claude Design prototype.
   Tokens: linen #F2F1EC, blush #EADDD7, charcoal #2A2629, slate #5A6270, deep copper #8E5444,
   midnight #1E2633, walnut #4A3429, mauve #6B3F45, copper rose #C9968B.
   Fonts: Tenor Sans (caps), Cormorant Garamond Italic (display), Questrial (body). One weight each.
   Motion: transform and opacity only, switched off for prefers-reduced-motion.
   ========================================================================== */
:root{
  --linen:#F2F1EC;--blush:#EADDD7;--charcoal:#2A2629;--slate:#5A6270;--copper:#8E5444;
  --midnight:#1E2633;--walnut:#4A3429;--mauve:#6B3F45;--rose:#C9968B;
  --tenor:'Tenor Sans',sans-serif;--corm:'Cormorant Garamond',serif;--body:'Questrial',sans-serif;
  --pad:clamp(20px,5vw,64px);--sec:clamp(80px,9vw,140px);--ease:cubic-bezier(.22,.61,.36,1);
  --stripe:repeating-linear-gradient(135deg,#BDB4AC 0 14px,#B6ADA5 14px 28px);
  --slat:repeating-linear-gradient(90deg,rgba(201,150,139,.09) 0 1px,transparent 1px 34px);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--linen)}
body{font-family:var(--body);color:var(--charcoal);-webkit-font-smoothing:antialiased;overflow-x:clip;font-size:16px;line-height:1.75}
a{color:var(--copper)}
a:hover{color:var(--mauve)}
.wp-site-blocks{padding:0}
.wp-site-blocks>*{margin-block:0}
:where(.wp-block-post-content>*,main .wp-block-group>*,footer .wp-block-group>*,.sf-header .wp-block-group>*){margin-block-start:0;margin-block-end:0}
:where(.wp-block-group){gap:0}
main,.wp-block-post-content{margin:0;padding:0}
:focus-visible{outline:2px solid var(--copper);outline-offset:3px}
.sf-dark :focus-visible,.sf-header :focus-visible,.wp-block-navigation__responsive-container.is-menu-open :focus-visible{outline-color:var(--rose)}
summary::-webkit-details-marker{display:none}

/* ---------- type ---------- */
.sf-eyebrow{margin:0;font-family:var(--body);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--copper);line-height:1.6}
.sf-dark .sf-eyebrow,.sf-eyebrow--rose{color:var(--rose)}
.sf-eyebrow--blush{color:var(--blush)}
.sf-eyebrow--linen{color:var(--linen)}
.sf-eyebrow--slate{color:var(--slate)}
.sf-h2,.wp-block-heading.sf-h2{margin:0;font-family:var(--tenor);font-weight:400;font-size:clamp(26px,1.9vw + 14px,40px);line-height:1.22;letter-spacing:.08em;text-transform:uppercase;text-wrap:balance;color:inherit}
.sf-h2 em{font-family:var(--corm);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;font-size:1.2em;color:var(--copper)}
.sf-dark .sf-h2 em{color:var(--rose)}
.sf-h2--sm{font-size:clamp(26px,1.2vw + 16px,34px)}
.sf-h2--cta{line-height:1.25}
.sf-h2--cta em{font-size:1.3em}
.sf-h2--pose em{font-size:1.25em}
.sf-h2--winter{line-height:1.25}
.sf-h2--winter em{font-size:1.25em}
.sf-h2--onwalnut em{color:var(--linen)}
.sf-h3,.wp-block-heading.sf-h3{margin:0;font-family:var(--tenor);font-weight:400;font-size:17px;letter-spacing:.12em;text-transform:uppercase;line-height:1.3;color:inherit}
.sf-h3--card{font-size:20px;letter-spacing:.1em}
.sf-h3--post{font-size:18px;line-height:1.45;letter-spacing:.06em}
.sf-p,p.sf-p{margin:0;font-size:clamp(16px,.2vw + 14.2px,17px);line-height:1.75;max-width:560px}
.sf-p--w480{max-width:480px}.sf-p--w520{max-width:520px}.sf-p--w540{max-width:540px}.sf-p--w600{max-width:600px}.sf-p--w680{max-width:680px}
.sf-p--sm{font-size:16px;line-height:1.7}
.sf-p--blush{color:var(--blush)}
.sf-display{margin:0;font-family:var(--corm);font-style:italic;font-weight:400;line-height:1.04;color:var(--copper)}
.sf-price-line{margin:0;font-family:var(--corm);font-style:italic;font-size:clamp(24px,1vw + 16px,30px);line-height:1.35;color:var(--copper)}

/* ---------- buttons (core Button block) ---------- */
.wp-block-buttons.sf-btns{display:flex;flex-wrap:wrap;gap:14px;margin:0}
.sf-btns--center{justify-content:center}
.sf-btns .wp-block-button{margin:0}
.sf-btns .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 30px;border-radius:0;font-family:var(--tenor);font-size:13px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;line-height:1.2;border:1px solid transparent;transition:background-color .3s,color .3s,border-color .3s}
.sf-btn--linen .wp-block-button__link{background:var(--linen);color:var(--charcoal)}
.sf-btn--linen .wp-block-button__link:hover{background:var(--blush);color:var(--charcoal)}
.sf-btn--linen-o .wp-block-button__link{background:transparent;color:var(--linen);border-color:var(--linen)}
.sf-btn--linen-o .wp-block-button__link:hover{color:var(--rose);border-color:var(--rose);background:transparent}
.sf-btn--copper .wp-block-button__link{background:var(--copper);color:var(--linen)}
.sf-btn--copper .wp-block-button__link:hover{background:var(--mauve);color:var(--linen)}
.sf-btn--copper-o .wp-block-button__link{background:transparent;color:var(--copper);border-color:var(--copper);min-height:48px;padding:0 28px}
.sf-btn--copper-o .wp-block-button__link:hover{background:var(--copper);color:var(--linen)}
.sf-btn--sm .wp-block-button__link{min-height:48px;padding:0 28px}
.sf-btn--text .wp-block-button__link{min-height:44px;padding:0;background:transparent;color:var(--copper);border:0;border-bottom:1px solid var(--copper)}
.sf-btn--text .wp-block-button__link:hover{color:var(--mauve);border-bottom-color:var(--mauve)}

/* ---------- header (template part) ---------- */
.sf-header{position:absolute;top:0;left:0;right:0;z-index:20;margin:0}
.sf-header__bar{max-width:1360px;margin:0 auto;padding:20px clamp(20px,4vw,48px);display:flex;align-items:center;justify-content:space-between;gap:24px}
.sf-header .sf-logo{margin:0;line-height:0}
.sf-header .sf-logo img{width:58px;height:58px;display:block}
.sf-logo--dark{display:none}
body:has(.sf-hero--light) .sf-logo--light{display:none}
body:has(.sf-hero--light) .sf-logo--dark{display:block}
.sf-header .wp-block-navigation{font-family:var(--tenor);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--linen);gap:30px}
.sf-header .wp-block-navigation .wp-block-navigation__container{gap:30px;align-items:center}
.sf-header .wp-block-navigation-item__content{padding:12px 0;text-decoration:none;color:var(--linen);border-bottom:1px solid transparent}
.sf-header .wp-block-navigation-item__content:hover{color:var(--rose)}
.sf-header .wp-block-navigation-item.is-current>.wp-block-navigation-item__content{border-bottom-color:currentColor}
body:has(.sf-hero--light) .sf-header .wp-block-navigation{color:var(--charcoal)}
body:has(.sf-hero--light) .sf-header .wp-block-navigation-item__content{color:var(--charcoal)}
body:has(.sf-hero--light) .sf-header .wp-block-navigation-item__content:hover{color:var(--copper)}
body:has(.sf-hero--light) .sf-header .wp-block-navigation-item.is-current>.wp-block-navigation-item__content{color:var(--copper)}
.sf-header .sf-nav-book>.wp-block-navigation-item__content{display:inline-flex;align-items:center;min-height:44px;padding:0 22px;border:1px solid var(--linen);color:var(--linen)}
.sf-header .sf-nav-book>.wp-block-navigation-item__content:hover{color:var(--rose);border-color:var(--rose)}
body:has(.sf-hero--light) .sf-header .sf-nav-book>.wp-block-navigation-item__content{background:var(--copper);border-color:var(--copper);color:var(--linen)}
body:has(.sf-hero--light) .sf-header .sf-nav-book>.wp-block-navigation-item__content:hover{background:var(--mauve);border-color:var(--mauve);color:var(--linen)}
.sf-header .wp-block-navigation__responsive-container-open{color:inherit;font-family:var(--tenor);font-size:13px;letter-spacing:.2em;text-transform:uppercase;min-height:44px;padding:0 4px;gap:12px;align-items:center}
body:has(.sf-hero--light) .sf-header .wp-block-navigation__responsive-container-open{color:var(--charcoal)}
.sf-header .wp-block-navigation__responsive-container-open::before{content:"Menu"}
.sf-header .wp-block-navigation__responsive-container-open svg{width:24px;height:12px}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--midnight)!important;color:var(--linen)!important;padding:20px clamp(20px,4vw,48px)}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{padding-top:24px;gap:0;align-items:stretch}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:0!important;align-items:stretch!important;width:100%}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{border-bottom:1px solid rgba(201,150,139,.2);width:100%}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{min-height:52px;display:flex;align-items:center;font-family:var(--tenor);font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--linen)!important;border:0!important;background:none!important}
.wp-block-navigation__responsive-container.is-menu-open .sf-nav-book{border:0;margin-top:20px}
.wp-block-navigation__responsive-container.is-menu-open .sf-nav-book .wp-block-navigation-item__content{justify-content:center;background:var(--linen)!important;color:var(--charcoal)!important;font-size:13px}
.wp-block-navigation__responsive-container-close{color:var(--linen)}
@media (min-width:600px) and (max-width:1099px){
  .sf-header .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex}
  .sf-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){display:none}
}

/* ---------- section shells ---------- */
.sf-sec{position:relative;padding:var(--sec) 0}
.sf-wrap{max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.sf-linen{background:var(--linen)}.sf-blush{background:var(--blush)}
.sf-midnight{background:var(--midnight);color:var(--linen)}
.sf-walnut{background:var(--walnut);color:var(--linen)}
.sf-slat{background-image:var(--slat)}
.sf-flex{display:flex;flex-wrap:wrap}
.sf-col{display:flex;flex-direction:column}
.sf-g18{gap:18px}.sf-g22{gap:22px}
.sf-center{text-align:center;align-items:center}

/* ---------- images and placeholders ---------- */
figure.wp-block-image.sf-ph{margin:0;position:relative;width:100%;background:var(--stripe);overflow:hidden}
figure.wp-block-image.sf-ph img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:inherit}
.sf-r-1-1{aspect-ratio:1/1}.sf-r-2-3{aspect-ratio:2/3}.sf-r-3-4{aspect-ratio:3/4}.sf-r-4-5{aspect-ratio:4/5}
.sf-r-3-2{aspect-ratio:3/2}.sf-r-4-3{aspect-ratio:4/3}.sf-r-16-9{aspect-ratio:16/9}
.sf-frame{border:clamp(6px,.7vw,10px) solid var(--linen)}
.sf-frame--thin{border-width:clamp(4px,.6vw,10px)}
.sf-frame--hero{border-width:clamp(5px,.6vw,10px)}
.sf-bgimg{position:absolute;inset:0;overflow:hidden}
.sf-bgimg figure.wp-block-image{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.sf-bgimg--par{top:-20%;bottom:-20%}
.sf-tint{position:absolute;inset:0;pointer-events:none}
.sf-tint-n45{background:rgba(30,38,51,.45)}.sf-tint-n55{background:rgba(30,38,51,.55)}
.sf-tint-n60{background:rgba(30,38,51,.6)}.sf-tint-w50{background:rgba(74,52,41,.5)}
@media (prefers-reduced-motion:no-preference){
  .sf-zoom{animation:sf-zoom 12s ease-out forwards}
}
@keyframes sf-zoom{from{transform:scale(1)}to{transform:scale(1.06)}}

/* ---------- Home hero (full-bleed photo) ---------- */
.sf-hero-shell{position:relative;z-index:4;background:var(--midnight)}
.sf-hero{position:relative;min-height:clamp(680px,96vh,960px);overflow:hidden;display:flex;align-items:center;justify-content:center}
.sf-hero__text{position:relative;z-index:2;text-align:center;padding:120px 24px clamp(150px,14vw,200px);display:flex;flex-direction:column;align-items:center;gap:22px;max-width:1000px;color:var(--linen)}
.sf-kw,h1.sf-kw{margin:0;font-family:var(--tenor);font-weight:400;font-size:14px;letter-spacing:.2em;line-height:1.7;text-transform:uppercase;color:var(--linen);max-width:560px;text-wrap:balance}
.sf-kw--copper{color:var(--copper);max-width:none}
.sf-hero__display{margin:0;font-family:var(--corm);font-style:italic;font-weight:400;font-size:clamp(42px,4.4vw + 14px,78px);line-height:1.04;color:var(--linen);text-wrap:balance}
.sf-hero__text .sf-btns{margin-top:10px;justify-content:center}
.sf-hero__portrait{position:absolute;z-index:5;right:clamp(20px,8vw,150px);bottom:calc(-1 * clamp(96px,13vw,210px));width:clamp(124px,18vw,270px);margin:0}
.sf-hero__portrait .sf-frame{margin:0}

/* ---------- split hero (light) ---------- */
.sf-hero--light{position:relative;z-index:4;background:var(--linen);padding-top:clamp(92px,8vw,120px);min-height:0;display:block;overflow:visible}
.sf-split{display:flex;flex-wrap:wrap;align-items:center;row-gap:24px}
.sf-split__text{flex:1 1 460px;padding:clamp(24px,4vw,64px) clamp(20px,5vw,64px) clamp(40px,5vw,80px) max(clamp(20px,5vw,64px),calc((100% - 1240px) / 2 + 64px));display:flex;flex-direction:column;gap:24px}
.sf-split__display{margin:0;font-family:var(--corm);font-style:italic;font-weight:400;font-size:clamp(46px,4.4vw + 14px,80px);line-height:1.02;color:var(--charcoal);max-width:560px}
.sf-rule{width:64px;height:1px;background:var(--copper);margin:0}
.sf-split__text .sf-btns{margin-top:0}
.sf-split__media{flex:1 1 520px;position:relative}
.sf-split__photo{overflow:hidden;position:relative;aspect-ratio:4/5;max-height:880px;margin-left:auto}
.sf-split__photo .sf-bgimg{position:absolute;inset:0}
.sf-split__detail{position:absolute;z-index:5;left:min(20px,calc(-1 * (10vw - 70px)));bottom:calc(-1 * clamp(40px,5vw,84px));width:clamp(140px,17vw,250px);margin:0}
.sf-split--flip{flex-direction:row-reverse}
.sf-split--flip .sf-split__text{padding:clamp(24px,4vw,64px) max(clamp(20px,5vw,64px),calc((100% - 1240px) / 2 + 64px)) clamp(40px,5vw,80px) clamp(20px,5vw,64px)}
.sf-split--flip .sf-split__photo{margin-left:0;margin-right:auto}
.sf-split--flip .sf-split__detail{left:auto;right:min(20px,calc(-1 * (10vw - 70px)))}

/* ---------- compact page head (navy, slat) ---------- */
.sf-pagehead{position:relative;z-index:4;background-color:var(--midnight);background-image:var(--slat);color:var(--linen)}
.sf-pagehead__in{max-width:1240px;margin:0 auto;padding:clamp(130px,12vw,180px) var(--pad) clamp(80px,9vw,130px);display:flex;flex-direction:column;gap:22px}
.sf-pagehead .sf-hero__display{text-align:left;font-size:clamp(42px,4vw + 14px,74px);max-width:820px}
.sf-pagehead .sf-kw{max-width:640px}
.sf-pagehead__photo{position:absolute;z-index:5;right:clamp(20px,8vw,150px);bottom:calc(-1 * clamp(70px,9vw,140px));width:clamp(110px,15vw,230px);margin:0}
.sf-pagehead__photo .sf-frame{margin:0}
.sf-pagehead--text .sf-pagehead__in{padding-bottom:clamp(60px,7vw,100px)}

/* ---------- word band & photo strip (marquee) ---------- */
.sf-band{position:relative;z-index:3;background:var(--midnight);overflow:hidden;padding:clamp(18px,1.8vw,26px) 0;border-top:1px solid rgba(201,150,139,.25)}
.sf-marquee{overflow:hidden}
.sf-marquee__track{display:flex;width:max-content}
.sf-words{margin:0;display:flex;align-items:center;gap:clamp(22px,2.6vw,40px);padding-right:clamp(22px,2.6vw,40px);font-family:var(--tenor);font-size:clamp(17px,1.5vw,24px);letter-spacing:.22em;line-height:normal;color:var(--rose);white-space:nowrap}
.sf-marquee.is-running .sf-marquee__track{animation:sf-marquee 40s linear infinite}
.sf-marquee--slow.is-running .sf-marquee__track{animation-duration:80s}
.sf-band:hover .sf-marquee.is-running .sf-marquee__track{animation-play-state:paused}
@keyframes sf-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.sf-strip{background:var(--midnight);overflow:hidden}
.sf-strip__set{display:flex}
.sf-strip__set figure.wp-block-image.sf-ph{width:clamp(130px,16.667vw,260px);flex:none;margin:0;border-right:4px solid var(--midnight);box-sizing:border-box}

/* ---------- welcome collage + panel ---------- */
.sf-welcome{padding:clamp(150px,17vw,250px) 0 var(--sec)}
.sf-welcome .sf-wrap{display:flex;flex-wrap:wrap;align-items:center;row-gap:40px}
.sf-collage{flex:1 1 440px;position:relative;z-index:1;padding-bottom:clamp(56px,7vw,100px)}
.sf-collage__back{width:74%;position:relative}
.sf-collage__back figure{aspect-ratio:4/5}
.sf-collage__front{position:absolute;right:0;bottom:0;width:50%;z-index:2}
.sf-panel{flex:1 1 400px;position:relative;z-index:0;background:var(--blush);margin-left:calc(-1 * clamp(0px,8vw - 40px,90px));padding:clamp(36px,5vw,76px) clamp(28px,5vw,72px) clamp(36px,5vw,76px) calc(clamp(28px,5vw,72px) + clamp(0px,8vw - 40px,90px));display:flex;flex-direction:column;gap:22px}
.sf-panel .sf-p{max-width:520px}

/* ---------- session cards ---------- */
.sf-sessions{padding:var(--sec) 0 clamp(150px,15vw,230px)}
.sf-head-c{text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px;margin-bottom:clamp(40px,5vw,72px)}
.sf-head-c .sf-h2{max-width:760px}
.sf-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(24px,2.6vw,40px);align-items:start}
.sf-card{position:relative;color:var(--linen)}
.sf-card:nth-child(2){margin-top:clamp(0px,10vw - 60px,96px)}
.sf-card:nth-child(3){margin-top:clamp(0px,5vw - 30px,48px)}
.sf-card figure.wp-block-image{aspect-ratio:2/3}
.sf-card__body{position:absolute;left:0;right:0;bottom:0;background:rgba(30,38,51,.6);padding:26px 26px 28px;display:flex;flex-direction:column;gap:10px}
.sf-card__body p{margin:0}
.sf-card__body .sf-card__p{font-size:16px;line-height:1.6}
.sf-card__more{align-self:flex-start;margin-top:4px!important;font-family:var(--tenor);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--rose);border-bottom:1px solid var(--rose);padding:8px 0 4px}
.sf-card__more a{color:inherit;text-decoration:none}
.sf-card__more a::after{content:"";position:absolute;inset:0;z-index:3}
.sf-card:hover .sf-card__more{color:var(--linen);border-color:var(--linen)}
.sf-card a:focus-visible::after{outline:2px solid var(--rose);outline-offset:-4px}

/* ---------- quote panel ---------- */
.sf-quote-sec{position:relative;z-index:3;padding:0}
.sf-quote{position:relative;margin:calc(-1 * clamp(80px,9vw,130px)) 0 calc(-1 * clamp(70px,9vw,150px)) clamp(0px,7vw,130px);max-width:780px;background:var(--mauve);padding:clamp(36px,5vw,72px) clamp(28px,5vw,72px);display:flex;flex-direction:column;gap:20px;color:var(--linen)}
.sf-quote--mat{margin-bottom:calc(-1 * clamp(60px,7vw,120px))}
.sf-quote::before{content:"\201C";font-family:var(--corm);font-style:italic;font-size:96px;line-height:.5;color:var(--rose);height:36px;display:block}
.sf-quote blockquote.wp-block-quote{margin:0;padding:0;border:0}
.sf-quote blockquote p{margin:0;font-family:var(--corm);font-style:italic;font-weight:400;font-size:clamp(24px,1vw + 16px,30px);line-height:1.4;color:var(--linen);text-wrap:pretty}
.sf-quote cite{display:block;margin-top:20px;font-style:normal;font-family:var(--body);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--linen)}

/* ---------- posing band (parallax) ---------- */
.sf-pose{position:relative;z-index:1;overflow:hidden;background:var(--midnight);padding:clamp(170px,17vw,270px) 0 clamp(100px,11vw,170px)}
.sf-pose__in{position:relative;max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.sf-pose__text{max-width:620px;margin-left:auto;display:flex;flex-direction:column;gap:22px;color:var(--linen)}

/* ---------- steps ---------- */
.sf-steps-sec{padding:var(--sec) 0;color:var(--linen)}
.sf-steps-sec--tall{padding-bottom:clamp(150px,15vw,230px)}
.sf-steps-head{display:flex;flex-direction:column;gap:18px;max-width:760px;margin-bottom:clamp(44px,5vw,80px)}
.sf-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(28px,3vw,48px)}
.sf-step{border-top:1px solid rgba(201,150,139,.55);padding-top:22px;display:flex;flex-direction:column;gap:12px}
.sf-step__n{margin:0;font-family:var(--corm);font-style:italic;font-size:56px;line-height:1;color:var(--rose)}
.sf-step p.sf-p{color:var(--blush);font-size:16px;line-height:1.7}

/* ---------- two-column feature (text + collage) ---------- */
.sf-feature .sf-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(40px,6vw,96px)}
.sf-feature__text{flex:1 1 360px;display:flex;flex-direction:column;gap:22px}
.sf-feature__media{flex:1 1 480px;position:relative;padding-left:clamp(36px,8vw,120px);padding-bottom:clamp(60px,7vw,110px)}
.sf-feature__front{position:absolute;left:0;bottom:0;width:44%;z-index:2}
.sf-feature--rev .sf-wrap{flex-direction:row-reverse}

/* ---------- studio photo + overlapping card ---------- */
.sf-studio .sf-photo{width:min(100%,88%);min-width:min(100%,320px);position:relative}
.sf-studio .sf-photo figure{aspect-ratio:16/9}
.sf-studio__card{position:relative;z-index:2;margin:calc(-1 * clamp(36px,13vw,220px)) 0 0 auto;max-width:520px;background:var(--midnight);color:var(--linen);padding:clamp(32px,4vw,56px);display:flex;flex-direction:column;gap:20px}

/* ---------- journal cards ---------- */
.sf-jhead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(36px,4vw,60px)}
.sf-jhead>div{display:flex;flex-direction:column;gap:18px}
.sf-posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(28px,3vw,44px)}
.sf-post{position:relative;display:flex;flex-direction:column;gap:16px;transition:transform .4s var(--ease)}
.sf-post:hover{transform:translateY(-6px)}
.sf-post figure.wp-block-image{aspect-ratio:3/2}
.sf-post .sf-eyebrow{color:var(--slate)}
.sf-post .sf-post__more{margin:0;font-family:var(--tenor);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.sf-post .sf-post__more a{color:var(--copper);text-decoration:none}
.sf-post .sf-post__more a::after{content:"";position:absolute;inset:0}
.sf-post .sf-h3{color:var(--charcoal)}

/* ---------- closing CTA ---------- */
.sf-cta{position:relative;overflow:hidden;min-height:clamp(480px,46vw,680px);display:flex;align-items:center;justify-content:center;padding:var(--sec) 0}
.sf-cta--w{background:var(--walnut)}.sf-cta--n{background:var(--midnight)}
.sf-cta__in{position:relative;text-align:center;max-width:820px;padding:0 24px;display:flex;flex-direction:column;align-items:center;gap:24px;color:var(--linen)}
.sf-cta__in .sf-eyebrow{color:var(--linen)}
.sf-cta--n .sf-cta__in .sf-eyebrow{color:var(--rose)}
.sf-cta--w .sf-h2 em{color:var(--linen)}

/* ---------- footer ---------- */
.sf-footer{background:var(--midnight);color:var(--linen);padding:clamp(64px,7vw,110px) 0 28px;margin:0}
.sf-footer__in{max-width:1240px;margin:0 auto;padding:0 var(--pad)}
.sf-footer__cols{display:flex;flex-wrap:wrap;gap:clamp(36px,4vw,64px)}
.sf-footer__cols>div{display:flex;flex-direction:column;gap:4px}
.sf-fc-brand{flex:1 1 260px;gap:20px!important}
.sf-fc-brand .wp-block-image{margin:-20px 0 -14px -18px;line-height:0}
.sf-fc-brand img{width:180px;height:auto;display:block}
.sf-fc-tag{margin:0;font-family:var(--corm);font-style:italic;font-size:24px;line-height:1.35;color:var(--blush);max-width:280px}
.sf-fc-visit{flex:1 1 200px}.sf-fc-links{flex:1 1 150px}.sf-fc-follow{flex:1 1 170px}.sf-fc-sister{flex:1 1 200px}
.sf-footer .sf-eyebrow{margin:0 0 12px;color:var(--rose)}
.sf-footer p{margin:0;font-size:16px;line-height:1.7}
.sf-footer a{color:var(--linen);text-decoration:none}
.sf-footer a:hover{color:var(--rose)}
.sf-footer .sf-fl{margin:0;min-height:36px;display:flex;align-items:center}
.sf-footer .sf-fl a{display:flex;align-items:center;min-height:36px}
.sf-footer__legal{margin-top:clamp(48px,5vw,80px);padding-top:22px;border-top:1px solid rgba(201,150,139,.3);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;font-size:14px;color:var(--blush)}
.sf-footer__legal p{font-size:14px;color:var(--blush)}
.sf-footer__legal a{color:var(--blush);display:inline-flex;align-items:center;min-height:44px}
.sf-footer__legal div{display:flex;gap:24px}

/* ---------- maternity-style pages ---------- */
.sf-about{padding:clamp(110px,11vw,170px) 0 var(--sec)}
.sf-about .sf-wrap{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,96px);align-items:flex-start}
.sf-about__l{flex:1 1 380px;display:flex;flex-direction:column;gap:18px}
.sf-about__r{flex:1 1 420px;padding-top:clamp(0px,4vw - 10px,44px)}
.sf-timing .sf-wrap{display:flex;flex-wrap:wrap;gap:clamp(28px,6vw,110px);align-items:center}
.sf-timing__stat{flex:0 1 380px;display:flex;flex-direction:column;gap:6px}
.sf-stat{margin:0;font-family:var(--corm);font-style:italic;font-size:clamp(96px,11vw,176px);line-height:.95;color:var(--copper);white-space:nowrap}
.sf-stat-l{margin:0;padding-left:6px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--copper)}
.sf-timing__text{flex:1 1 420px;display:flex;flex-direction:column;gap:22px}
.sf-winter{padding:clamp(90px,10vw,160px) 0}
.sf-winter__in{max-width:820px;margin:0 auto;padding:0 var(--pad);text-align:center;display:flex;flex-direction:column;align-items:center;gap:24px}
.sf-wardrobe .sf-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(48px,6vw,110px)}
.sf-wd{flex:1 1 440px;position:relative;aspect-ratio:1/1.08}
.sf-wd__a{position:absolute;left:0;top:0;width:52%}
.sf-wd__b{position:absolute;right:0;top:12%;width:44%}
.sf-wd__c{position:absolute;left:24%;bottom:0;width:46%;z-index:2}
.sf-wd figure.wp-block-image{aspect-ratio:3/4}
.sf-wd__c figure.wp-block-image{aspect-ratio:1/1}
.sf-wardrobe__text{flex:1 1 380px;display:flex;flex-direction:column;gap:22px}
.sf-invest .sf-wrap{display:flex;flex-wrap:wrap-reverse;gap:clamp(28px,6vw,110px);align-items:center}
.sf-invest__text{flex:1 1 440px;display:flex;flex-direction:column;gap:22px}
.sf-invest__nums{flex:0 1 340px;display:flex;flex-direction:column;gap:20px;border-left:1px solid var(--copper);padding-left:clamp(24px,3vw,44px)}
.sf-num{display:flex;flex-direction:column;gap:2px}
.sf-num p{margin:0}
.sf-num__big{font-family:var(--corm);font-style:italic;font-size:clamp(64px,6vw,96px);line-height:1.05;color:var(--copper)}
.sf-num__mid{font-family:var(--corm);font-style:italic;font-size:clamp(40px,3.4vw,56px);line-height:1.1;color:var(--charcoal)}
.sf-gallery-sec{position:relative;z-index:1;padding:clamp(24px,3vw,40px) 0 var(--sec)}
.sf-gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(8px,1.6vw,24px);row-gap:clamp(8px,1.6vw,24px);align-items:start}
.sf-gal>*{margin:0;position:relative}
.sf-gal figure.wp-block-image{margin:0}
.sf-gal .sf-g1{grid-column:1 / span 6;grid-row:1}
.sf-gal .sf-gh{grid-column:9 / span 4;grid-row:1;align-self:end;display:flex;flex-direction:column;gap:16px;padding-bottom:clamp(20px,3vw,48px)}
.sf-gal .sf-g2{grid-column:4 / span 5;grid-row:2;margin-top:-10vw;z-index:2}
.sf-gal .sf-g3{grid-column:10 / span 3;grid-row:2}
.sf-gal .sf-g4{grid-column:1 / span 4;grid-row:3}
.sf-gal .sf-g5{grid-column:6 / span 4;grid-row:3;margin-top:6vw}
.sf-gal .sf-g6{grid-column:10 / span 3;grid-row:3;margin-top:-6vw;z-index:2}
.sf-gal .sf-g7{grid-column:2 / span 6;grid-row:4;margin-top:-7vw;z-index:2}
.sf-gal .sf-g8{grid-column:9 / span 4;grid-row:4;margin-top:3vw}
.sf-gal .sf-g9{grid-column:4 / span 5;grid-row:5}
.sf-gal-headm{display:none;margin:clamp(80px,12vw,120px) 0 28px;flex-direction:column;gap:14px}
@media (max-width:1099px){.sf-gal-headm{display:flex}.sf-gal .sf-gh{display:none}}
.sf-faq-sec .sf-wrap{max-width:900px}
.sf-faq-head{display:flex;flex-direction:column;gap:18px;margin-bottom:clamp(32px,4vw,56px)}
.sf-faq{display:flex;flex-direction:column;border-top:1px solid var(--copper)}
.sf-faq .wp-block-details{border-bottom:1px solid var(--copper);margin:0}
.sf-faq .wp-block-details summary{list-style:none;cursor:pointer;min-height:64px;padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:var(--tenor);font-size:clamp(15px,.4vw + 13px,18px);letter-spacing:.1em;text-transform:uppercase;line-height:1.45}
.sf-faq .wp-block-details summary::after{content:"+";font-family:var(--corm);font-style:italic;font-size:34px;line-height:1;color:var(--copper);flex:none}
.sf-faq .wp-block-details[open] summary::after{content:"\2212"}
.sf-faq .wp-block-details p{margin:0;padding:0 40px 26px 0;font-size:clamp(16px,.2vw + 14.2px,17px);line-height:1.75;max-width:680px}
.sf-nearby{margin-top:clamp(56px,6vw,96px);padding-top:clamp(32px,4vw,48px);border-top:1px solid rgba(142,84,68,.35);display:flex;flex-direction:column;gap:14px}
.sf-nearby .sf-p{max-width:640px}

/* ---------- other pages ---------- */
.sf-prose{max-width:760px;margin:0 auto;padding:var(--sec) var(--pad)}
.sf-prose h2{font-family:var(--tenor);font-weight:400;font-size:20px;letter-spacing:.1em;text-transform:uppercase;margin:2.2em 0 .6em;line-height:1.35}
.sf-prose h2:first-child{margin-top:0}
.sf-prose p,.sf-prose li{font-size:17px;line-height:1.75}
.sf-prose p{margin:0 0 1em}
.sf-prose ul{padding-left:1.2em;margin:0 0 1em}
.sf-two{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,96px);align-items:flex-start}
.sf-two>*{flex:1 1 380px;display:flex;flex-direction:column;gap:18px}
.sf-pricecards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(24px,2.6vw,40px);align-items:start}
.sf-pc{background:var(--linen);padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--copper)}
.sf-pc:nth-child(2){margin-top:clamp(0px,6vw - 20px,64px);background:var(--mauve);color:var(--linen);border-top-color:var(--rose)}
.sf-pc:nth-child(3){margin-top:clamp(0px,3vw - 10px,32px)}
.sf-pc p{margin:0}
.sf-pc__name{font-family:var(--tenor);font-size:18px;letter-spacing:.12em;text-transform:uppercase}
.sf-pc__price{font-family:var(--corm);font-style:italic;font-size:clamp(48px,4.4vw,68px);line-height:1.05;color:var(--copper)}
.sf-pc:nth-child(2) .sf-pc__price{color:var(--rose)}
.sf-pc__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:16px;line-height:1.6}
.sf-pc__list li{padding-left:18px;position:relative}
.sf-pc__list li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:currentColor}
.sf-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(24px,3vw,44px)}
.sf-fact{border-top:1px solid var(--copper);padding-top:20px;display:flex;flex-direction:column;gap:10px}
.sf-fact p{margin:0}
.sf-portfolio{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(8px,1.6vw,24px);align-items:start}
.sf-portfolio figure.wp-block-image{margin:0}
.sf-form{display:flex;flex-direction:column;gap:18px;max-width:640px}
.sf-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--copper)}
.sf-form input,.sf-form select,.sf-form textarea{font:inherit;font-size:17px;letter-spacing:0;text-transform:none;color:var(--charcoal);background:var(--linen);border:1px solid var(--copper);border-radius:0;padding:14px 16px;min-height:50px;width:100%}
.sf-form textarea{min-height:140px}
.sf-form button{align-self:flex-start;min-height:50px;padding:0 30px;background:var(--copper);color:var(--linen);border:0;border-radius:0;font-family:var(--tenor);font-size:13px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.sf-form button:hover{background:var(--mauve)}
.sf-form .sf-hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.sf-notice{padding:16px 20px;border:1px solid var(--copper);background:var(--blush);margin-bottom:24px}
.sf-postlist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:28px}
.sf-single{max-width:760px;margin:0 auto;padding:clamp(130px,12vw,180px) var(--pad) var(--sec)}
.sf-single h1{font-family:var(--tenor);font-weight:400;font-size:clamp(28px,2.4vw + 14px,44px);letter-spacing:.06em;text-transform:uppercase;line-height:1.2;margin:12px 0}

/* ---------- motion (JS adds .sf-js; reduced motion leaves everything static) ---------- */
.sf-js .sf-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.sf-js .sf-reveal.is-in{opacity:1;transform:none}
.sf-hero-text,.sf-parallax,.sf-drift{will-change:transform}
@media (prefers-reduced-motion:reduce){
  .sf-js .sf-reveal{opacity:1;transform:none;transition:none}
  .sf-post{transition:none}
}
@media (max-width:781px){
  .sf-gal .sf-g2{margin-top:-8vw}
}

.sf-pricecards--4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.sf-pricecards--4 .sf-pc:nth-child(3){margin-top:0}
.sf-pc__list li{font-size:16px}
.sf-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:clamp(32px,4vw,64px)}
.sf-menu__b{display:flex;flex-direction:column;gap:10px}
.sf-menu__b .sf-h3{margin-bottom:6px;padding-bottom:12px;border-bottom:1px solid var(--copper)}
.sf-row{display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding:6px 0;border-bottom:1px solid rgba(42,38,41,.12)}
.sf-row p{margin:0}
.sf-row__l{font-size:16px;line-height:1.5}
.sf-row__p{font-family:var(--corm);font-style:italic;font-size:20px;color:var(--copper);text-align:right;white-space:nowrap}
@media (max-width:520px){.sf-row{flex-direction:column;gap:2px}.sf-row__p{text-align:left;white-space:normal}}

.sf-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(24px,2.6vw,40px);align-items:start}
.sf-product{display:flex;flex-direction:column;gap:12px}
.sf-product:nth-child(even){margin-top:clamp(0px,4vw - 10px,48px)}
.sf-product figure{margin:0 0 6px}
.sf-product p{margin:0}

.sf-learn__intro{max-width:620px;margin:16px auto 0;text-align:center}
.sf-learn .sf-facts{margin-top:clamp(32px,4vw,56px)}

.sf-walnut.sf-slat,.sf-steps-sec.sf-walnut{background-image:none}
.sf-gal.sf-gal--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,24px);margin-top:clamp(32px,4vw,56px)}
.sf-gal.sf-gal--grid>*{margin:0!important;grid-column:auto!important;grid-row:auto!important}
.sf-gal.sf-gal--grid figure.wp-block-image{margin:0}
@media (max-width:700px){.sf-gal.sf-gal--grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sf-gal.sf-gal--grid>*:first-child{grid-column:1 / -1!important}}
.sf-gallery-sec{padding:var(--sec) 0}

:root{--slat:none}
.sf-slat,.sf-pagehead{background-image:none}
.sf-mocks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,36px);margin-top:clamp(32px,4vw,56px)}
.sf-mock{display:flex;flex-direction:column;gap:14px}
.sf-mock figure{margin:0}
.sf-mock__cap{margin:0;font-family:var(--corm);font-style:italic;font-size:clamp(19px,.6vw + 15px,23px);line-height:1.35;color:var(--charcoal)}
@media (max-width:760px){.sf-mocks{grid-template-columns:1fr}}

/* quote: breathing room instead of overlapping neighbours */
.sf-quote-sec{padding:clamp(72px,9vw,140px) 0}
.sf-quote,.sf-quote--mat{margin:0 auto!important;max-width:780px}
/* accessible accents on dark backgrounds (rose passes AA on navy 5.9:1 and brown 4.5:1; copper does not) */
.sf-midnight .sf-h2 em,.sf-walnut .sf-h2 em,.sf-pagehead em,.sf-studio__card .sf-h2 em{color:var(--rose)}
.sf-midnight .sf-eyebrow:not(.sf-eyebrow--blush):not(.sf-eyebrow--linen),.sf-walnut .sf-eyebrow:not(.sf-eyebrow--blush):not(.sf-eyebrow--linen){color:var(--rose)}
.sf-midnight a:not(.wp-block-button__link),.sf-walnut a:not(.wp-block-button__link){color:var(--rose)}
.sf-card__body{background:rgba(30,38,51,.88)}
/* tiled gallery: images keep their own orientation */
.sf-gal.sf-gal--tiles{display:block;columns:3;column-gap:clamp(12px,1.6vw,24px);margin-top:clamp(32px,4vw,56px)}
.sf-gal.sf-gal--tiles>*{break-inside:avoid;margin:0 0 clamp(12px,1.6vw,24px)!important;display:block}
.sf-gal.sf-gal--tiles figure.wp-block-image.sf-ph{aspect-ratio:auto}
.sf-gal.sf-gal--tiles figure.wp-block-image img{height:auto;aspect-ratio:auto;object-fit:initial}
.sf-gal.sf-gal--tiles figure.sf-r-2-3 img[src$=".svg"]{aspect-ratio:2/3;object-fit:cover}
.sf-gal.sf-gal--tiles figure.sf-r-3-2 img[src$=".svg"]{aspect-ratio:3/2;object-fit:cover}
.sf-gal.sf-gal--tiles figure.sf-r-4-5 img[src$=".svg"]{aspect-ratio:4/5;object-fit:cover}
.sf-gal.sf-gal--tiles figure.sf-r-3-4 img[src$=".svg"]{aspect-ratio:3/4;object-fit:cover}
.sf-gal.sf-gal--tiles figure.sf-r-1-1 img[src$=".svg"]{aspect-ratio:1/1;object-fit:cover}
@media (max-width:700px){.sf-gal.sf-gal--tiles{columns:2}}

.sf-dubsado{width:100%;background:var(--linen)}
.sf-dubsado iframe{display:block;width:100%}

/* core Gallery block, tiled by orientation */
.wp-block-gallery.has-nested-images.sf-gal--tiles{display:block;columns:3;column-gap:clamp(12px,1.6vw,24px);margin-top:clamp(32px,4vw,56px)}
.wp-block-gallery.has-nested-images.sf-gal--tiles figure.wp-block-image:not(#individual-image){display:block;width:100%;margin:0 0 clamp(12px,1.6vw,24px);break-inside:avoid}
.wp-block-gallery.has-nested-images.sf-gal--tiles figure.wp-block-image img{width:100%;height:auto}
@media (max-width:700px){.wp-block-gallery.has-nested-images.sf-gal--tiles{columns:2}}
