/* Approved public-marketing-v2, scoped to the public Rails layout. */
@font-face { font-family:"DM Serif Display"; src:url("/assets/pm-dm-serif-ae10d956.ttf") format("truetype"); font-weight:400; font-display:swap; }
@font-face { font-family:"Nunito Sans"; src:url("/assets/pm-nunito-400-5aff1677.ttf") format("truetype"); font-weight:400; font-display:swap; }
@font-face { font-family:"Nunito Sans"; src:url("/assets/pm-nunito-800-575be1fc.ttf") format("truetype"); font-weight:800; font-display:swap; }
:root:has(body.pv) { color-scheme:light; --pv-bg:#fff8de; --pv-surface:#fffdf3; --pv-ink:#202a3b; --pv-muted:#566172; --pv-accent:#a12665; --pv-soft:#fff1b5; --pv-line:#ead9aa; --pv-on-accent:#ffffff; --pv-error:#9f2436; --pv-error-bg:#fff0f2; }
@media(prefers-color-scheme:dark) {
  :root:has(body.pv:not([data-theme="light"])) { color-scheme:dark; --pv-bg:#121a26; --pv-surface:#1b2635; --pv-ink:#faf6f7; --pv-muted:#b9c4d3; --pv-accent:#fff1b5; --pv-soft:#342d1b; --pv-line:#6f6138; --pv-on-accent:#121a26; --pv-error:#ffc3cd; --pv-error-bg:#402433; }
}
:root:has(body.pv[data-theme="dark"]) { color-scheme:dark; --pv-bg:#121a26; --pv-surface:#1b2635; --pv-ink:#faf6f7; --pv-muted:#b9c4d3; --pv-accent:#fff1b5; --pv-soft:#342d1b; --pv-line:#6f6138; --pv-on-accent:#121a26; --pv-error:#ffc3cd; --pv-error-bg:#402433; }
.pv, .pv * { box-sizing:border-box; }
html:has(body.pv) { scroll-padding-top:100px; }
.pv { background:var(--pv-bg); color:var(--pv-ink); margin:0; font:16px/1.65 "Nunito Sans",system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
.pv [hidden] { display:none!important; }
.pv h1,.pv h2,.pv h3,.pv-wordmark { font-family:"DM Serif Display",Georgia,serif; font-weight:400; letter-spacing:-.035em; line-height:1.06; text-wrap:balance; }
.pv h1 { font-size:clamp(3.5rem,6.4vw,6.2rem); margin:20px 0 26px; }
.pv h1 span,.pv h2 span,.pv-statement span { color:var(--pv-accent); }
.pv h2 { font-size:clamp(2.2rem,3.8vw,3.8rem); margin:0 0 20px; }
.pv h3 { font-size:1.75rem; margin:0 0 12px; }
.pv p { margin:0 0 22px; }
.pv figure { margin:0; min-width:0; }
.pv img { display:block; width:100%; height:100%; object-fit:cover; }
.pv a { color:inherit; text-underline-offset:5px; }
.pv button,.pv input,.pv textarea,.pv summary { font:inherit; }
.pv button,.pv summary { cursor:pointer; }
.pv button:disabled { cursor:not-allowed; opacity:.55; }
.pv :focus-visible { outline:3px solid var(--pv-accent); outline-offset:5px; }
.pv main:focus { outline:none; }
.pv-wrap { width:min(1280px,calc(100% - 96px)); margin-inline:auto; }
.pv-section { padding-block:90px; }
.pv-eyebrow { color:var(--pv-accent); text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:800; }
.pv-fine,.pv small { font-size:13px; color:var(--pv-muted); }
.pv-review { background:var(--pv-soft); padding:7px 24px; display:flex; justify-content:space-between; gap:14px; font-size:11px; }
.pv-review div { display:flex; flex-wrap:wrap; align-items:center; gap:20px; }
.pv-review button { background:none; border:0; padding:4px; color:inherit; font-size:11px; text-decoration:underline; }
.pv-skip { position:absolute; left:20px; top:0; padding:14px 22px; background:var(--pv-surface); transform:translateY(-160%); z-index:20; }
.pv-skip:focus { transform:translateY(0); }
.pv-header { position:sticky; top:0; background:var(--pv-surface); z-index:10; border-bottom:1px solid var(--pv-line); }
.pv-nav { display:flex; align-items:center; justify-content:flex-end; gap:20px; height:80px; }
.pv-brand { width:110px; height:68px; flex-shrink:0; margin-right:auto; }
.pv-brand img { object-fit:contain; }
.pv-desktop-links { display:flex; align-items:center; gap:24px; }
.pv-desktop-links a,.pv-mobile-links a { font-size:14px; font-weight:800; text-decoration:none; padding-block:12px; }
.pv-nav a[aria-current="page"] { color:var(--pv-accent); text-decoration:underline; }
.pv-nav a:hover { color:var(--pv-accent); }
.pv-signin { border-left:1px solid var(--pv-line); padding-left:30px; }
.pv-menu { display:none; }
.pv-button { background:var(--pv-accent); color:var(--pv-on-accent)!important; border:0; border-radius:6px; display:inline-flex; align-items:center; justify-content:space-between; gap:32px; min-height:54px; padding:14px 22px; text-decoration:none; font-weight:800; white-space:nowrap; transition:transform .22s; }
.pv-button span { font-size:22px; line-height:1; transition:transform .22s; }
.pv-button:hover { transform:translateY(-3px); }
.pv-button:hover span { transform:translate(3px,-3px); }
.pv-button:active { transform:scale(.98); }
.pv-text-link { display:inline-flex; gap:18px; align-items:center; font-weight:800; text-decoration:none; border-bottom:1px solid var(--pv-ink); padding-block:8px; }
.pv-actions { display:flex; gap:28px; align-items:center; flex-wrap:wrap; margin-top:30px; }
.pv-hero { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:32px; padding-block:70px 80px; }
.pv-hero-copy>p:not(.pv-eyebrow) { color:var(--pv-muted); font-size:18px; max-width:37ch; }
.pv-portraits { display:grid; grid-template-columns:1fr 1.2fr 1fr; align-items:center; gap:14px; height:470px; }
.pv-portrait { overflow:hidden; border-radius:5px; background:var(--pv-soft); }
.pv-portrait-one { height:280px; align-self:start; }
.pv-portrait-two { height:345px; align-self:end; }
.pv-portrait-three { height:280px; align-self:center; }
.pv-portrait-two img { object-position:59% center; }
.pv-portrait-three img { object-position:35% center; }
.pv-statement { border-block:1px solid var(--pv-line); padding-block:40px; display:grid; grid-template-columns:1.15fr 1fr; gap:80px; align-items:center; }
.pv-statement>p { font:400 36px/1.14 "DM Serif Display",Georgia,serif; letter-spacing:-.02em; margin:0; }
.pv-statement>div { max-width:45ch; color:var(--pv-muted); }
.pv-heading { margin-bottom:42px; max-width:650px; }
.pv-heading p { color:var(--pv-muted); }
.pv-explorer { display:grid; grid-template-columns:1fr 1.05fr; gap:70px; align-items:start; }
.pv-care-visual { position:sticky; top:114px; aspect-ratio:1.15; border-radius:6px; overflow:hidden; background:var(--pv-soft); }
.pv-care-image { object-position:center; }
.pv-care { border-top:1px solid var(--pv-line); }
.pv-care:last-child { border-bottom:1px solid var(--pv-line); }
.pv-care summary { display:grid; grid-template-columns:34px 1fr 24px; gap:15px; padding:24px 0; align-items:center; font:400 30px/1.2 "DM Serif Display",Georgia,serif; list-style:none; }
.pv-care summary::-webkit-details-marker,.pv-faq summary::-webkit-details-marker { display:none; }
.pv-number { font:800 12px/1 "Nunito Sans",sans-serif; color:var(--pv-muted); }
.pv-plus { font:400 26px/1 "Nunito Sans",sans-serif; color:var(--pv-accent); transition:transform .24s; }
.pv-care[open] .pv-plus { transform:rotate(45deg); }
.pv-care[open] summary { color:var(--pv-accent); }
.pv-care-copy { padding:0 28px 30px 49px; }
.pv-care-copy p { color:var(--pv-muted); max-width:43ch; }
.pv-care-copy .pv-button { min-height:44px; font-size:13px; padding:10px 16px; }
.pv-gallery { padding:50px 0 66px; background:var(--pv-soft); overflow:hidden; }
.pv-gallery-heading { margin-bottom:30px; }
.pv-gallery-heading h2 { font-size:clamp(2rem,3vw,3rem); }
.pv-gallery-heading p { color:var(--pv-muted); }
.pv-gallery-pause { color:var(--pv-ink); border:1px solid var(--pv-muted); border-radius:5px; background:transparent; min-height:44px; padding:8px 16px; font-size:13px!important; }
.pv-gallery-window { overflow-x:auto; scrollbar-width:thin; }
.pv-gallery-track { display:flex; width:max-content; }
.pv-gallery-group { display:flex; gap:20px; padding-right:20px; }
.pv-gallery-group figure { width:310px; height:220px; overflow:hidden; border-radius:5px; }
.pv-gallery-group figure:nth-child(even) { margin-top:24px; }
.pv-gallery-group[aria-hidden="true"] { display:none; }
.pv-process { display:grid; grid-template-columns:1fr 1fr; gap:90px; border-bottom:1px solid var(--pv-line); }
.pv-process ol { margin:0; padding:0; list-style:none; }
.pv-process li { display:grid; grid-template-columns:36px 1fr; gap:16px; padding-bottom:26px; }
.pv-process li:last-child { padding:0; }
.pv-process li>span,.pv-principles article>span { color:var(--pv-accent); font-size:12px; font-weight:800; }
.pv-process p,.pv-faq p { color:var(--pv-muted); max-width:45ch; }
.pv-faq { display:grid; grid-template-columns:1fr 1.15fr; gap:80px; }
.pv-faq details { border-bottom:1px solid var(--pv-line); }
.pv-faq summary { font-weight:800; padding:20px 26px 20px 0; list-style:none; position:relative; }
.pv-faq summary::after { content:"+"; position:absolute; right:0; color:var(--pv-accent); }
.pv-faq details[open] summary::after { content:"−"; }
.pv-faq details p { font-size:15px; }
.pv-closing { border-top:1px solid var(--pv-line); padding-block:70px 90px; text-align:center; }
.pv-closing h2 { font-size:clamp(3rem,5.5vw,5.5rem); }
.pv-closing>p:not(.pv-eyebrow) { max-width:47ch; margin:24px auto; color:var(--pv-muted); }
.pv-footer { padding-block:35px; display:grid; grid-template-columns:1fr auto; gap:24px; border-top:1px solid var(--pv-line); }
.pv-wordmark { font-size:28px; text-decoration:none; }
.pv-footer p { margin:10px 0 0; font-size:13px; color:var(--pv-muted); }
.pv-footer nav { display:flex; flex-wrap:wrap; gap:26px; align-items:center; font-size:13px; }
.pv-footer .pv-fine { grid-column:1/-1; }
.pv-editorial { padding-block:65px 55px; }
.pv-editorial h1 { font-size:clamp(3.2rem,5.8vw,5.8rem); }
.pv-editorial>p:last-child { max-width:45ch; font-size:19px; color:var(--pv-muted); }
.pv-about-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:65px; align-items:center; }
.pv-about-grid>figure:first-child { aspect-ratio:1.1; border-radius:6px; overflow:hidden; }
.pv-about-grid>div p { color:var(--pv-muted); max-width:45ch; }
.pv-about-small { grid-column:2; width:60%; aspect-ratio:1.3; margin-top:-60px!important; margin-left:auto!important; border-radius:5px; overflow:hidden; }
.pv-principles { display:grid; grid-template-columns:1fr 1.15fr; gap:75px; }
.pv-principles article { border-top:1px solid var(--pv-line); padding:22px 0; display:grid; grid-template-columns:35px 1fr; gap:6px 18px; }
.pv-principles article h3 { margin:0; }
.pv-principles article p { grid-column:2; color:var(--pv-muted); margin:0; }
.pv-contact { display:grid; grid-template-columns:1fr 1fr; gap:90px; padding-block:65px 90px; align-items:start; }
.pv-contact h1 { font-size:clamp(3rem,4.4vw,4.5rem); }
.pv-contact-intro>p:not(.pv-eyebrow) { max-width:40ch; color:var(--pv-muted); }
.pv-contact-intro figure { width:80%; aspect-ratio:1.7; border-radius:6px; overflow:hidden; margin:32px 0; }
.pv-contact-panel { background:var(--pv-surface); border:1px solid var(--pv-line); border-radius:8px; padding:34px; }
.pv-notice { border-left:3px solid var(--pv-accent); padding-left:15px; margin-bottom:28px; font-size:13px; }
.pv-notice p { margin:4px 0 0; color:var(--pv-muted); }
.pv-form { display:grid; gap:20px; }
.pv-field { display:grid; gap:7px; min-width:0; }
.pv-field label { font-weight:800; font-size:14px; }
.pv-required { font-weight:400; font-size:12px; color:var(--pv-muted); }
.pv-field input,.pv-field textarea { border:1px solid var(--pv-muted); border-radius:5px; width:100%; min-width:0; min-height:48px; padding:11px 12px; background:var(--pv-surface); color:var(--pv-ink); }
.pv-field textarea { resize:vertical; }
.pv-field [aria-invalid="true"] { border-color:var(--pv-error); }
.pv-inline-error { color:var(--pv-error); font-size:13px; }
.pv-form .pv-button { justify-self:start; }
.pv-form [data-form-progress] { min-height:22px; margin:0; }
.pv-feedback { background:var(--pv-soft); border-radius:6px; padding:24px; margin-bottom:24px; }
.pv-feedback h2 { font-size:26px; }
.pv-feedback p { margin:0 0 10px; }
.pv-feedback li { overflow-wrap:anywhere; }
.pv-error { color:var(--pv-error); background:var(--pv-error-bg); }
.pv-simulation { border-top:1px solid var(--pv-line); padding-top:16px; font-size:12px; }
.pv-simulation summary { padding-block:8px; }
.pv-simulation label { display:block; padding-block:12px; }
.pv-state-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding-bottom:50px; }
@media(prefers-reduced-motion:no-preference) {
  html:has(body.pv) { scroll-behavior:smooth; }
  .pv.is-ready:not(.is-paused) .pv-portrait { animation:pv-drift 7s ease-in-out infinite alternate; }
  .pv.is-ready .pv-portrait-two { animation-delay:-3s!important; }
  .pv.is-ready .pv-portrait-three { animation-delay:-5s!important; }
  .pv.is-ready .pv-gallery-group[aria-hidden="true"] { display:flex; }
  .pv.is-ready .pv-gallery-track { animation:pv-travel 44s linear infinite; animation-play-state:paused; }
  .pv.is-ready:not(.is-paused) [data-gallery].is-in-view .pv-gallery-track { animation-play-state:running; }
  .pv.is-ready [data-gallery]:hover .pv-gallery-track,.pv.is-ready [data-gallery]:focus-within .pv-gallery-track { animation-play-state:paused; }
  .pv.is-ready [data-reveal].is-revealed { animation:pv-enter .7s ease both; }
  .pv.is-paused * { animation-play-state:paused!important; }
  .pv.is-paused [data-reveal],.pv.is-paused .pv-care-copy { animation:none!important; }
  @keyframes pv-drift { from { transform:translateY(0); } to { transform:translateY(-18px); } }
  @keyframes pv-travel { to { transform:translateX(-50%); } }
  @keyframes pv-enter { from { opacity:.35; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }
}
@media(prefers-reduced-motion:reduce) {
  .pv, .pv *,.pv *::before,.pv *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .pv-button:hover,.pv-button:hover span { transform:none; }
}
@media(max-width:1100px) {
  .pv-wrap { width:calc(100% - 56px); }
  .pv-hero { gap:20px; padding-block:50px 65px; }
  .pv-portraits { height:390px; gap:10px; }
  .pv-portrait-one,.pv-portrait-three { height:230px; }
  .pv-portrait-two { height:290px; }
  .pv-explorer,.pv-contact { gap:40px; }
  .pv-desktop-links { gap:18px; }
  .pv-signin { padding-left:22px; }
}
@media(max-width:767px) {
  .pv-wrap { width:calc(100% - 36px); }
  .pv-review { flex-direction:column; gap:0; padding:6px 18px; }
  .pv-nav { height:74px; gap:12px; }
  .pv-brand { width:92px; height:60px; }
  .pv-desktop-links { display:none; }
  .pv-menu { display:block; }
  .pv-menu>summary { list-style:none; padding:9px 16px; border:1px solid var(--pv-line); border-radius:5px; min-height:44px; }
  .pv-menu>summary::-webkit-details-marker { display:none; }
  .pv-mobile-links { position:absolute; top:100%; left:0; right:0; padding:14px 18px 20px; background:var(--pv-surface); border-bottom:1px solid var(--pv-line); box-shadow:0 16px 22px #10172414; display:grid; grid-template-columns:minmax(0,1fr); gap:8px; max-height:calc(100dvh - 74px); overflow-y:auto; }
  .pv-mobile-links .pv-signin { border-left:0; padding-left:0; }
  .pv-hero,.pv-statement,.pv-explorer,.pv-process,.pv-faq,.pv-about-grid,.pv-principles,.pv-contact,.pv-state-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
  .pv-hero { padding-block:38px 44px; }
  .pv h1 { font-size:clamp(3.25rem,11vw,5rem); }
  .pv-hero-copy>p:not(.pv-eyebrow) { font-size:16px; max-width:38ch; }
  .pv-actions { gap:22px; margin-top:24px; }
  .pv-portraits { height:290px; padding-top:15px; }
  .pv-portrait-one,.pv-portrait-three { height:195px; }
  .pv-portrait-two { height:235px; }
  .pv-statement { padding-block:30px; gap:20px; }
  .pv-statement>p { font-size:30px; }
  .pv-section { padding-block:52px; }
  .pv-heading { margin-bottom:26px; }
  .pv-care-visual { position:static; aspect-ratio:1.6; }
  .pv-care summary { font-size:25px; padding-block:20px; gap:10px; grid-template-columns:28px 1fr 22px; }
  .pv-care-copy { padding-left:38px; padding-right:0; }
  .pv-gallery { padding-block:36px; }
  .pv-gallery-group figure { width:230px; height:170px; }
  .pv-gallery-group { gap:12px; padding-right:12px; }
  .pv-gallery-group figure:nth-child(even) { margin-top:14px; }
  .pv-faq { gap:10px; }
  .pv-closing { padding-block:48px; }
  .pv-footer { grid-template-columns:1fr; gap:14px; }
  .pv-footer nav { gap:20px; }
  .pv-editorial { padding-block:38px; }
  .pv-editorial h1,.pv-contact h1 { font-size:clamp(2.75rem,9.5vw,4.5rem); }
  .pv-about-small { grid-column:auto; margin-top:0!important; width:70%; }
  .pv-contact { padding-block:38px 54px; }
  .pv-contact-intro figure { display:none; }
  .pv-contact-panel { padding:22px; }
}
