/* Creative toolkit: every control is a validated enum in section settings (see SectionPresentation).
   Defaults are off, so sections that set none of it render exactly as before. */
.st-section{--st-ov:var(--st-ov-d,0px);--st-room-top:var(--st-room-top-d,0px);--st-room-bottom:var(--st-room-bottom-d,0px);--st-accent:var(--pb-secondary,var(--pb-primary))}
@media(max-width:767px){.st-section{--st-ov:calc(var(--st-ov-d,0px)/2);--st-room-top:calc(var(--st-room-top-d,0px)/2);--st-room-bottom:calc(var(--st-room-bottom-d,0px)/2)}}

/* 1. Rotated titles. Rails use writing-mode (real layout, real text); tilts are a small transform. */
.st-section:has([class*="st-part-rotate--"]),.st-section.st-has-backdrop{overflow-x:clip}
.st-part-rotate--tilt_left{transform:rotate(-4deg);transform-origin:left center}
.st-part-rotate--tilt_right{transform:rotate(4deg);transform-origin:left center}
@media(max-width:767px){.st-part-rotate--tilt_left{transform:rotate(-2deg)}.st-part-rotate--tilt_right{transform:rotate(2deg)}}
@media(min-width:768px){
 .st-section{--st-rail:clamp(3rem,5vw,4.5rem);--st-rail-eyebrow:2.25rem;--st-edge:var(--pb-px,var(--st-gutter,clamp(1.25rem,4vw,3rem)))}
 .pb-theme .pb-block.st-section:has(.st-part-rotate--rail_up,.st-part-rotate--rail_down)>.st-inner{padding-inline-start:calc(var(--st-edge) + var(--st-rail) + 1rem)}
 .pb-theme .pb-block.st-section:has(:is(.st-part--heading,.st-part--eyebrow).st-part-rotate--rail_up,:is(.st-part--heading,.st-part--eyebrow).st-part-rotate--rail_down):has(.st-part--eyebrow:is(.st-part-rotate--rail_up,.st-part-rotate--rail_down)):has(.st-part--heading:is(.st-part-rotate--rail_up,.st-part-rotate--rail_down))>.st-inner{padding-inline-start:calc(var(--st-edge) + var(--st-rail) + var(--st-rail-eyebrow) + 1rem)}
 .st-part-rotate--rail_up,.st-part-rotate--rail_down{position:absolute;top:var(--pb-pt,0px);bottom:var(--pb-pb,0px);left:var(--st-edge);writing-mode:vertical-rl;overflow-wrap:anywhere;margin:0!important;max-width:calc(var(--st-rail)*2);line-height:1.05;text-align:start}
 .st-section:has(.st-part-rotate--rail_up,.st-part-rotate--rail_down)>.st-inner,.st-section .st-inner :has(>.st-part-rotate--rail_up,>.st-part-rotate--rail_down){min-block-size:calc(var(--pb-pt,0px) + var(--pb-pb,0px) + var(--st-rail-length)*var(--st-type-h2))} /* Content reserves the rail's title-sized height; phones keep the horizontal title. */
 .st-part-rotate--rail_up{transform:rotate(180deg)}
 .st-part--heading.st-part-rotate--rail_up,.st-part--heading.st-part-rotate--rail_down{font-size:var(--st-type-h2)!important}
 .st-part--eyebrow.st-part-rotate--rail_up,.st-part--eyebrow.st-part-rotate--rail_down{max-width:var(--st-rail-eyebrow)}
 .st-section:has(.st-part--eyebrow:is(.st-part-rotate--rail_up,.st-part-rotate--rail_down)) .st-part--heading:is(.st-part-rotate--rail_up,.st-part-rotate--rail_down){left:calc(var(--st-edge) + var(--st-rail-eyebrow))}
}

/* 2. Accent word styles: emphasis (em, mark) inside a heading. Outline needs a large heading to stay readable. */
.st-part-accent--italic :is(em,mark){font-style:italic;color:var(--st-accent);background:none}
.st-part-accent--color :is(em,mark){font-style:normal;color:var(--st-accent);background:none}
.st-part-accent--marker :is(em,mark){font-style:normal;color:inherit;background:linear-gradient(transparent 60%,color-mix(in srgb,var(--st-accent) 45%,transparent) 60%)}
.st-part-accent--outline :is(em,mark){font-style:normal;color:var(--st-accent);background:none}
@supports(-webkit-text-stroke:1px red){
 .st-part-accent--outline:is(.st-part-role--display,.st-part-role--h1) :is(em,mark),[data-block-type=hero] .st-part-accent--outline:not(.st-part-role--h2,.st-part-role--h3,.st-part-role--lead,.st-part-role--body,.st-part-role--small,.st-part-role--label) :is(em,mark){color:transparent;-webkit-text-stroke:max(1.5px,.025em) var(--st-accent)}
}

/* 3. Giant background word: decorative, behind the content, never wider than the section. */
.st-has-backdrop{container-type:inline-size}
.st-backdrop-word{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;overflow:hidden;pointer-events:none;user-select:none;font-family:var(--pb-heading-font,inherit);font-weight:800;line-height:.8;letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap;font-size:min(28rem,calc(100cqi/(var(--st-bw-len,8)*.66)));}
.st-section .st-backdrop-word{color:color-mix(in srgb,currentColor 7%,transparent)!important}
@media(min-width:768px){.st-backdrop-word--rail{writing-mode:vertical-rl;transform:rotate(180deg);justify-content:flex-start;font-size:calc(var(--st-type-display)*2);padding-inline-start:.1em}}

/* 5. Sticky side title: a heading that sits in its own column stays in view while the other column scrolls. */
@media(min-width:768px){
 .st-part-sticky{position:sticky;top:calc(var(--pb-header-h,72px) + 1.5rem);align-self:start}
 .pb-block .st-columns-row>.st-column:has(.st-part-sticky){position:sticky;top:calc(var(--pb-header-h,72px) + 1.5rem);align-self:start}
 .st-column .st-part-sticky{position:static}
}

/* 6. Photo overlap: the photo cell moves, never the section's own background. The neighbor makes room. */
.st-section[data-media-overlap]{z-index:2}
.st-section[data-media-overlap=down] :is(.pb-side-row>.pb-side-media,.pb-side-row>.pb-side-collage,.pb-p2__split>.pb-p2__media,.pb-p2__strip>.pb-p2__media){margin-block-end:calc(-1*(var(--pb-pb,0px) + var(--st-ov)));align-self:end;position:relative;z-index:4}
.st-section[data-media-overlap=up] :is(.pb-side-row>.pb-side-media,.pb-side-row>.pb-side-collage,.pb-p2__split>.pb-p2__media,.pb-p2__strip>.pb-p2__media){margin-block-start:calc(-1*(var(--pb-pt,0px) + var(--st-ov)));align-self:start;position:relative;z-index:4}
.st-section[data-media-overlap=down] .pb-q2-wide__figure{margin-block-end:calc(-1*var(--st-ov));position:relative;z-index:4}
@media(max-width:767px){
 .st-section[data-media-overlap=down] :is(.pb-side-row>.pb-side-media,.pb-side-row>.pb-side-collage,.pb-p2__split>.pb-p2__media,.pb-p2__strip>.pb-p2__media):not(:last-child),
 .st-section[data-media-overlap=up] :is(.pb-side-row>.pb-side-media,.pb-side-row>.pb-side-collage,.pb-p2__split>.pb-p2__media,.pb-p2__strip>.pb-p2__media):not(:first-child){margin-block:0}
}
.pb-theme .pb-block.st-section[data-room-top]:not([data-section-native-background=true])>.st-inner{padding-top:calc(var(--pb-pt,var(--st-space-normal,clamp(2.5rem,6vw,5rem))) + var(--st-room-top))!important}
.pb-theme .pb-block.st-section[data-room-top].pb-block--collapse-top:not([data-section-native-background=true])>.st-inner{padding-top:var(--st-room-top)!important}
.pb-theme .pb-block.st-section[data-room-bottom]:not([data-section-native-background=true])>.st-inner{padding-bottom:calc(var(--pb-pb,var(--st-space-normal,clamp(2.5rem,6vw,5rem))) + var(--st-room-bottom))!important}
.pb-theme .pb-block.st-section[data-room-top][data-section-native-background=true]:not(.st-section--full_bleed)>.st-inner>:is(div,section,article):not([role=dialog]){padding-top:calc(var(--pb-pt,var(--st-space-normal,clamp(2.5rem,6vw,5rem))) + var(--st-header-clearance,0px) + var(--st-room-top))!important}
.pb-theme .pb-block.st-section[data-room-bottom][data-section-native-background=true]:not(.st-section--full_bleed)>.st-inner>:is(div,section,article):not([role=dialog]){padding-bottom:calc(var(--pb-pb,var(--st-space-normal,clamp(2.5rem,6vw,5rem))) + var(--st-room-bottom))!important}
