/* Shared editorial layouts for the PFA service pages. */
.pf-story{--pf-ink:#203c31;--pf-accent:#2c6951;--pf-paper:#faf7ef;--pf-line:#d9dfd3;color:var(--pf-ink);background:var(--pf-paper)}
.pf-story.pf-rose{--pf-ink:#51243a;--pf-accent:#9f1748;--pf-line:#e5d4dc}
.pf-story .pf-wrap{width:min(1180px,calc(100% - 64px));margin-inline:auto}
.pf-story .pf-hero{padding:40px 0 72px;border-bottom:1px solid var(--pf-line)}
.pf-story .pf-crumb{font-size:13px;margin-bottom:32px;color:var(--pf-accent)}
.pf-story .pf-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:64px}
.pf-story .pf-kicker{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--pf-accent);font-weight:700;margin-bottom:18px}
.pf-story h1{font-size:clamp(36px,4vw,60px);line-height:1.07;letter-spacing:-.045em;font-weight:600;margin:0 0 24px;max-width:16ch;color:var(--pf-ink)}
.pf-story .pf-lead{font-size:19px;line-height:1.65;max-width:52ch;color:var(--pf-ink);margin:0 0 24px}
.pf-story .pf-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.pf-story .pf-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:12px 22px;border-radius:8px;background:var(--pf-accent);color:white;font-size:15px;font-weight:650;text-decoration:none;line-height:1.4;border:1px solid var(--pf-accent);transition:background .2s,box-shadow .2s}
.pf-story .pf-button:hover{box-shadow:0 4px 16px #183b2420;filter:brightness(.95)}
.pf-story .pf-button--quiet{background:transparent;color:var(--pf-accent);border-color:var(--pf-line)}
.pf-story a:focus-visible,.pf-story summary:focus-visible{outline:3px solid var(--pf-accent);outline-offset:5px}
.pf-story .pf-block{padding:80px 0;scroll-margin-top:calc(var(--pfa-header-height,160px) + 24px)}
.pf-story .pf-soft{background:#eeeede}
.pf-story.pf-rose .pf-soft{background:#f1e8e8}
.pf-story .pf-heading{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:end;margin-bottom:36px}
.pf-story h2{font-size:clamp(29px,3vw,42px);line-height:1.16;letter-spacing:-.035em;font-weight:600;margin:0;color:var(--pf-ink);max-width:25ch}
.pf-story h3{font-size:23px;line-height:1.25;margin:0 0 12px;letter-spacing:-.015em;color:var(--pf-ink)}
.pf-story p{line-height:1.7}.pf-story .pf-heading p{margin:0;max-width:55ch;color:var(--pf-ink)}
.pf-story .pf-two{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
.pf-story .pf-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pf-story .pf-photo{min-width:0}.pf-story .pf-photo figure{margin:0;border:0;padding:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.pf-story .pf-photo .pfa-gallery-frame{border-radius:14px;overflow:hidden;background:#e8e4da}
.pf-story .pf-photo img{width:100%;height:auto;display:block;border-radius:14px}
.pf-story .pf-photo figcaption{padding:12px 0 0;font-size:13px;line-height:1.5;color:var(--pf-ink);opacity:.85}
.pf-story .pf-photo + h3{margin-top:20px}
.pf-story .pf-rows{counter-reset:steps;padding:0;margin:0;list-style:none}
.pf-story .pf-rows>li{counter-increment:steps;display:grid;grid-template-columns:42px 1fr;gap:18px;border-top:1px solid var(--pf-line);padding:24px 0}
.pf-story .pf-rows>li:before{content:counter(steps,decimal-leading-zero);font-size:15px;color:var(--pf-accent);padding-top:3px;font-weight:650}
.pf-story .pf-rows p{margin:0;font-size:16px}.pf-story .pf-rows h3{font-size:20px;margin-bottom:8px}
.pf-story .pf-note{padding:24px;border-left:3px solid var(--pf-accent);background:#fff9;margin:24px 0 0;font-size:15px}
.pf-story .pf-note p{margin:0}.pf-story .pf-note strong{display:block;margin-bottom:8px}
.pf-story .pf-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;margin-top:32px}
.pf-story .pf-links a{display:flex;justify-content:space-between;gap:16px;padding:20px 0;border-top:1px solid var(--pf-line);color:var(--pf-accent);text-decoration:none;font-weight:600}
.pf-story .pf-links a:after{content:'↗'}
.pf-story .pf-room{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start;padding:36px 0;border-top:1px solid var(--pf-line)}
.pf-story .pf-room p{margin:0 0 20px}.pf-story .pf-room h3{font-size:30px}
.pf-story .pf-access{padding:28px 0 0;margin-top:30px;border-top:1px solid var(--pf-line)}
.pf-story .pf-access h3{font-size:22px}
.pf-story details{border-top:1px solid var(--pf-line);padding:0;background:transparent;border-radius:0;box-shadow:none}
.pf-story summary{cursor:pointer;padding:22px 4px;font-weight:600;line-height:1.5;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:20px}
.pf-story summary:after{content:'+';font-size:24px;color:var(--pf-accent)}
.pf-story details[open]>summary:after{content:'−'}
.pf-story details>p{margin:0;padding:0 4px 24px;max-width:78ch}
.pf-story .pf-album{margin-top:36px}.pf-story .pf-album>summary{background:#ffffff80;padding:20px 24px;border-radius:8px}
.pf-story .pf-album .pf-three{padding-top:30px}
.pf-story .pf-document{display:grid;grid-template-columns:130px 1fr;gap:32px;align-items:start;background:#fff9;border:1px solid var(--pf-line);padding:36px;border-radius:14px}
.pf-story .pf-document-icon{aspect-ratio:3/4;display:flex;flex-direction:column;justify-content:space-between;padding:20px;border:1px solid var(--pf-line);background:var(--pf-paper);font-size:12px;letter-spacing:.08em}.pf-document-icon strong{font-size:30px;font-weight:500}
.pf-story .pf-document h2{font-size:32px}.pf-story .pf-document .pf-actions{margin-top:22px}
.pf-story .pf-end{background:var(--pf-ink);color:white;padding:56px;border-radius:16px;display:flex;justify-content:space-between;align-items:center;gap:32px}
.pf-story .pf-end h2,.pf-story .pf-end p{color:white}.pf-story .pf-end p{margin:16px 0 0;max-width:52ch}.pf-story .pf-end .pf-button{background:white;color:var(--pf-ink);white-space:nowrap}
.pf-story .pf-archive{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.pf-story .pf-archive .pfa-gallery-frame{max-width:320px}
.pf-story .section .section-head{display:block}.pf-story .contact-grid{gap:48px}.pf-story .contact-grid .reveal{opacity:1;transform:none}
@media(min-width:901px){.pf-story .pf-hero .pf-photo .pfa-gallery-frame{aspect-ratio:1.05!important}.pf-story .pf-hero .pf-photo img{object-fit:cover!important}}
@media(max-width:900px){.pf-story .pf-hero-grid{gap:32px;grid-template-columns:1fr 1fr}.pf-story .pf-three{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-story .pf-archive{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-story .pf-room{gap:32px}.pf-story .pf-end{padding:32px;display:block}.pf-story .pf-end .pf-button{margin-top:24px}}
@media(max-width:640px){.pf-story .pf-wrap{width:calc(100% - 36px)}.pf-story .pf-hero{padding:24px 0 40px}.pf-story .pf-hero-grid,.pf-story .pf-heading,.pf-story .pf-two,.pf-story .pf-room{grid-template-columns:1fr;gap:28px}.pf-story .pf-hero h1{font-size:40px}.pf-story .pf-lead{font-size:17px}.pf-story .pf-block{padding:48px 0}.pf-story .pf-heading{margin-bottom:28px}.pf-story .pf-three{grid-template-columns:1fr}.pf-story .pf-links{grid-template-columns:1fr}.pf-story .pf-document{grid-template-columns:1fr;padding:24px;gap:24px}.pf-story .pf-document-icon{width:90px;aspect-ratio:3/4;padding:12px}.pf-story .pf-archive{gap:16px}.pf-story .pf-archive figcaption{font-size:12px}.pf-story .pf-room h3{font-size:26px}.pf-story .pf-actions{gap:10px}.pf-story .pf-button{padding:12px 16px}.pf-story .pf-end{padding:28px}.pf-story .pf-end h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.pf-story *{scroll-behavior:auto!important;transition:none!important}}
.pf-story.pf-rose .pf-hero .pf-photo img{object-fit:contain!important}

/* Readable, stable photo frames. Do not let editorial image rules override gallery geometry. */
.pf-story .pf-photo .pfa-gallery-frame>img{position:absolute;inset:0;width:100%;height:100%;max-width:100%;border-radius:0;object-fit:contain!important}
.pf-story .pf-photo .pfa-gallery-frame{background:#eeeae1}
.pf-story .pf-photo figcaption{font-size:16px;line-height:1.6;background:transparent;opacity:1;min-height:0}
.pf-story p,.pf-story .pf-rows p{font-size:18px;line-height:1.75}
.pf-story .pf-heading{display:block;margin-bottom:30px}
.pf-story .pf-heading p{max-width:75ch;margin:20px 0 0}
.pf-story .pf-block{padding:56px 0}
.pf-story .pf-hero-grid{gap:40px}
.pf-story .pf-hero h1{font-size:clamp(34px,3.5vw,50px)}
.pf-story .pf-hero .pf-photo .pfa-gallery-frame{aspect-ratio:4/3!important}
.pf-salons .pf-salon-grid{align-items:start}
.pf-salons .pf-salon-grid .pfa-gallery-frame{aspect-ratio:4/3!important}
.pf-salons .pf-salon-grid h3{margin-top:18px}
.pf-story .pf-transport-photos{padding-top:8px;padding-bottom:32px}
.pf-story.frison-page .fr-split{gap:40px}
.pf-story.frison-page .fr-photo img{height:auto}
.pf-story.frison-page .pfa-gallery-frame>img{height:100%;object-fit:contain}
@media(max-width:640px){.pf-story .pf-block{padding:38px 0}.pf-story .pf-hero-grid{gap:24px}.pf-story .pf-photo figcaption{font-size:15px}.pf-story .pf-salon-grid{grid-template-columns:1fr}}

.pf-story #preparation .pf-two{grid-template-columns:1fr;gap:12px}.pf-story #preparation .pf-links{display:block;max-width:420px}

/* PFA-201 — shared visual service composition, also rendered in the library. */
.pf-visual-service .pf-hero{padding-bottom:48px}
.pf-visual-service .pf-hero-grid{grid-template-columns:.9fr 1.1fr;gap:48px}
.pf-visual-service .pf-hero h1{max-width:18ch;font-size:clamp(36px,3.5vw,52px)}
.pf-visual-service .pf-lead{max-width:40ch}
.pf-visual-service .pf-service-tags{display:flex;gap:8px;flex-wrap:wrap;padding:0;list-style:none;margin:24px 0}
.pf-service-tags li{padding:7px 12px;border:1px solid var(--pf-line);border-radius:30px;font-size:13px;font-weight:600}
.pf-visual-service .pf-service-permanence{font-size:14px;margin:15px 0 0;color:var(--pf-accent)}
.pf-visual-service .pf-heading{margin-bottom:36px}
.pf-visual-service .pf-heading p{max-width:58ch}
.pf-journey{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;list-style:none;padding:0;margin:0 0 32px}
.pf-journey:before{content:"";position:absolute;top:46px;left:46px;right:46px;border-top:1px dashed #a1b5a5}
.pf-journey li{position:relative;min-width:0}
.pf-journey-mark{position:relative;width:94px;margin-bottom:24px}
.pf-journey-icon{width:94px;height:94px;display:grid;place-items:center;background:#e7eee4;border:9px solid var(--pf-paper);border-radius:50%;color:var(--pf-accent)}
.pf-journey-icon svg{width:40px;height:40px}
.pf-journey-number{position:absolute;right:0;bottom:0;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:var(--pf-ink);color:#fff;font-size:12px;font-weight:700;border:3px solid var(--pf-paper)}
.pf-visual-service .pf-journey h3{font-size:23px;margin-bottom:10px}
.pf-visual-service .pf-journey p{font-size:17px;line-height:1.65;max-width:28ch;margin:0}
.pf-visual-service .pf-service-details{margin:28px 0 0;border-top:1px solid var(--pf-line);border-bottom:1px solid var(--pf-line)}
.pf-visual-service .pf-service-details summary{font-size:16px;padding:18px 0;min-height:48px}
.pf-visual-service .pf-service-details>p{font-size:16px;line-height:1.65;padding-bottom:22px}
.pf-service-split{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.pf-service-portrait{width:min(100%,360px);justify-self:center}
.pf-visual-service .pf-service-portrait .pfa-gallery-frame{aspect-ratio:3/4!important;background:#e0e0d5}
.pf-visual-service .pf-service-intro{font-size:16px;max-width:44ch;margin:20px 0 24px}
.pf-service-options{display:grid;gap:0}
.pf-service-options article{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:22px 0;border-top:1px solid #cdd6c4}
.pf-service-icon{display:grid;place-items:center;width:52px;height:52px;background:#fff9;border-radius:16px;color:var(--pf-accent)}
.pf-service-icon svg{width:29px;height:29px}
.pf-option-tag{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:var(--pf-accent);font-weight:700;display:block;margin-bottom:6px}
.pf-visual-service .pf-service-options h3{font-size:22px;margin:0 0 6px}
.pf-visual-service .pf-service-options p{font-size:16px;margin:0;line-height:1.6}
.pf-visual-service .pf-links{grid-template-columns:1fr 1fr;gap:20px;margin-top:14px}
.pf-visual-service .pf-links a{font-size:15px;border:0;padding:12px 0;align-items:center}
.pf-service-transfer{grid-template-columns:1fr 1.08fr;gap:48px}
.pf-route{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;padding:28px 12px;margin:0;background:#e9eee5;border-radius:20px}
.pf-route:before{content:"";position:absolute;left:17%;right:17%;top:49px;border-top:1px dashed #829987}
.pf-route li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;min-width:0}
.pf-route svg{background:#e9eee5;box-shadow:0 0 0 8px #e9eee5;width:40px;height:40px;position:relative;color:var(--pf-accent)}
.pf-route strong{font-size:16px}
.pf-route span{font-size:13px;line-height:1.45;max-width:15ch}
.pf-service-transfer .pf-button{margin-top:24px}
.pf-visual-service .pf-end .pf-kicker{color:#cbdcc5}
@media(max-width:1050px){.pf-visual-service .pf-hero-grid{gap:28px}.pf-service-split{gap:36px}.pf-journey{gap:24px}.pf-service-transfer{grid-template-columns:1fr 1fr}.pf-route{padding-inline:10px;gap:8px}.pf-route strong{font-size:14px}}
@media(max-width:760px){.pf-visual-service .pf-hero-grid,.pf-service-split,.pf-service-transfer{grid-template-columns:1fr;gap:28px}.pf-visual-service .pf-hero h1{max-width:18ch}.pf-service-portrait{width:min(100%,300px)}.pf-service-transfer>.pf-photo{grid-row:1}.pf-service-transfer .pf-route{margin-top:4px}.pf-visual-service .pf-hero{padding-bottom:32px}.pf-journey{gap:18px}.pf-visual-service .pf-journey h3{font-size:18px}.pf-visual-service .pf-journey p{font-size:15px}}
@media(max-width:540px){.pf-journey{grid-template-columns:1fr;gap:28px}.pf-journey:before{left:38px;right:auto;top:30px;bottom:40px;border-top:0;border-left:1px dashed #a1b5a5}.pf-journey li{display:grid;grid-template-columns:80px 1fr;gap:0 18px;align-items:center}.pf-journey-mark{width:80px;margin:0;grid-row:1 / 3}.pf-journey-icon{width:80px;height:80px;border-width:7px}.pf-journey-icon svg{width:34px;height:34px}.pf-visual-service .pf-journey h3{font-size:20px;margin-bottom:6px;align-self:end}.pf-visual-service .pf-journey p{font-size:16px;align-self:start;max-width:none}.pf-visual-service .pf-links{grid-template-columns:1fr;gap:0}.pf-route strong{font-size:13px}.pf-route span{font-size:12px}.pf-route svg{width:32px;height:32px}.pf-route:before{top:44px}.pf-visual-service .pf-end .pf-button{white-space:normal}}

/* PFA-201: direct links to service options and disclosures clear the shared fixed header. */
.pf-story .pf-service-options article[id],.pf-story details[id]{scroll-margin-top:calc(var(--pfa-header-height,160px) + 24px)}
