/* PasteTheme section classes: the look of the plugin's own sections. Opt-in: only a <section
   class="pt-s"> and what is inside it. Palette presets, so light and dark follow html[data-theme].
   Layered so the owner's own CSS (Additional CSS) wins. The unlayered block at the end holds only what
   unlayered CSS would otherwise overrule (core's theme.json heading size and line height and link
   colour, the theme's focus ring over the ghost button's edge), at the weight the sections' own style
   blocks had. Phones first, one step at 700px. The box, the balanced rows, the numbered steps and the
   one-picture-per-scheme classes are the PasteTheme theme's too: here they sit in the layer at no
   weight, so with that theme its own unlayered rules decide and nothing changes, and on any other theme
   a section still gets them. */
@layer pastetheme {
.pt-s{padding-block:var(--wp--preset--spacing--60,5rem)}
.pt-s :is(h1,h2,h3){margin:0 0 .6em}
.pt-s p{margin:0 0 1em;line-height:1.6}
.pt-s img{max-width:100%;height:auto;display:block}
.pt-s blockquote{margin:0}
/* The theme trims a .pt-wrap's last margin; the sections' own spacing kept it. */
.pt-s .pt-wrap>p:last-child{margin-bottom:1em}
.pt-s .btn{display:inline-block;min-height:44px;padding:.9em 1.8em;border-radius:var(--pt-radius-s,999px);background:var(--wp--preset--color--accent,var(--wp--preset--color--contrast,#111));font-weight:700;text-decoration:none;line-height:1.2}
.pt-s .btn--ghost{background:transparent}
@media (prefers-reduced-motion:no-preference){.pt-s .btn{transition:transform .15s ease}.pt-s .btn:hover{transform:translateY(-2px)}}
.pt-s .pt-btn-plain{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.9rem;line-height:inherit}
.pt-s .pt-btn-still{transition:0s}
.pt-s .pt-btn-still:hover{transform:none}
.pt-s .pt-btn-quiet{background:transparent;border:1px solid color-mix(in srgb,currentColor 30%,transparent)}

.pt-s.pt-hero{padding-top:var(--wp--preset--spacing--50,3rem)}
.pt-s.pt-pad-sm{padding-block:3rem}
.pt-s.pt-pad-md{padding-block:3.5rem}
.pt-s.pt-end-sm{padding-bottom:1rem}
.pt-s.pt-center,.pt-s .pt-center{text-align:center}
:is(.pt-s.pt-center,.pt-s .pt-center) :where(p){margin-inline:auto}
.pt-s.pt-col,.pt-s .pt-col{max-width:44rem;margin-inline:auto;padding-inline:1.25rem}
.pt-s.pt-col--wide,.pt-s .pt-col--wide{max-width:60rem}

.pt-s .pt-split{display:grid;gap:2rem;align-items:center}
.pt-s .pt-split--form{align-items:normal}
.pt-s .pt-media{border-radius:var(--pt-radius-l,1.5rem);background:var(--wp--preset--color--subtle,color-mix(in srgb,currentColor 7%,transparent))}
.pt-s .pt-lead{font-size:1.125rem}
.pt-s .pt-lead--lg{font-size:1.15rem}
.pt-s .pt-narrow{max-width:40rem}
.pt-s .pt-actions{display:flex;flex-wrap:wrap;gap:.75rem}
/* A button row straight after a row of cards, steps or pictures: those carry no bottom margin, so the row brings the gap. */
.pt-s :where(.pt-grid,.pt-steps,.pt-cards,.pt-gallery,.pt-plans,.pt-split)+.pt-actions{margin-top:1.5rem}
/* Two rows of cards, steps or pictures one after the other: neither carries a margin, so they touched. The second takes the grid's own gap and the two read as one. */
.pt-s :where(.pt-grid,.pt-steps,.pt-cards,.pt-gallery,.pt-plans)+:where(.pt-grid,.pt-steps,.pt-cards,.pt-gallery,.pt-plans){margin-top:var(--wp--preset--spacing--40,1.5rem)}
:is(.pt-s.pt-center,.pt-s .pt-center) .pt-actions{justify-content:center}
.pt-s .pt-box{padding:2.5rem 1.75rem;border-radius:var(--pt-radius-l,2rem)}
.pt-s .pt-box :where(p){max-width:44ch;opacity:.9}
.pt-s .pt-cards{display:grid;gap:1.25rem;margin-top:2rem}
.pt-s .pt-plans{max-width:52rem;margin-inline:auto}
/* Three plans: one column up to 60rem (a third of a tablet is too narrow for a price and a list), three across from there. */
.pt-s .pt-plans--three{max-width:32rem}
.pt-s :is(.pt-card,.pt-quote){padding:1.5rem;border-radius:var(--pt-radius-l,1.25rem);background:var(--wp--preset--color--subtle,color-mix(in srgb,currentColor 7%,transparent));color:var(--wp--preset--color--contrast,#111)}
/* On a shaded ground (the theme's every-other-section shade, or pt-tone-subtle) a card would vanish into it, so it takes the page colour there. */
:is(.pt-edge-shade .wp-block-post-content>.pt-section:nth-child(even of .pt-section):not(.pt-section--boxed)>.pt-s:not(.pt-tone-base,.pt-tone-contrast),.pt-s.pt-tone-subtle,.pt-s .pt-tone-subtle) :is(.pt-card,.pt-quote){background:var(--wp--preset--color--base,#fff)}
.pt-s .pt-card :where(p){margin:0;opacity:.85}
.pt-s .pt-card--round{border-radius:var(--pt-radius-l,1.75rem)}
.pt-s .pt-card--round :where(h3){margin-bottom:.5rem}
.pt-s .pt-card--large :where(p){font-size:1rem;opacity:1}
.pt-s .pt-item :where(h3){margin-bottom:.4rem}
.pt-s .pt-item :where(p){margin:0;opacity:.9}
.pt-s .pt-quote :where(p){font-size:1.05rem}
.pt-s .pt-quote :where(cite){font-style:normal;font-weight:700;opacity:.85}
.pt-s .pt-quote--quiet{max-width:44rem}
.pt-s .pt-quote--quiet :where(p){font-size:inherit;margin-bottom:.6rem}
.pt-s .pt-quote--quiet :where(cite){font-weight:600;opacity:.75}
.pt-s .pt-plan{position:relative;padding:2rem;border-radius:var(--pt-radius-l,1.5rem);background:var(--wp--preset--color--subtle,color-mix(in srgb,currentColor 7%,transparent));display:flex;flex-direction:column;gap:1rem}
.pt-s .pt-plan--main{box-shadow:inset 0 0 0 2px var(--wp--preset--color--accent,var(--wp--preset--color--contrast,#111))}
.pt-s .pt-plan :where(h3){margin:0}
.pt-s .pt-plan :where(ul){margin:0;padding-left:1.2rem;line-height:1.7}
.pt-s .pt-plan .btn{align-self:flex-start;margin-top:auto}
.pt-s .pt-plan-price{font-size:2.25rem;font-weight:700;line-height:1.2;margin:0}
.pt-s .pt-plan-price :where(span){font-size:1.125rem;font-weight:600;white-space:nowrap}
.pt-s .pt-plan-fine{margin:0;font-size:.95rem;opacity:.8}
.pt-s .pt-plan-line{margin:0;opacity:.8}
.pt-s .pt-plan-flag{position:absolute;top:0;left:2rem;transform:translateY(-50%);white-space:nowrap;margin:0;padding:.25em .9em;border-radius:var(--pt-radius-s,999px);background:var(--wp--preset--color--accent,var(--wp--preset--color--contrast,#111));color:var(--wp--preset--color--accent-contrast,var(--wp--preset--color--base,#fff));font-size:.85rem;font-weight:700;line-height:1.4}
.pt-s .pt-rows{list-style:none;margin:1.5rem 0 0;padding:0;max-width:44rem}
.pt-s .pt-rows :where(li){display:grid;grid-template-columns:1fr auto;gap:.5rem 1.5rem;padding:1rem 0;border-top:1px solid color-mix(in srgb,currentColor 15%,transparent)}
.pt-s .pt-rows :where(h3){margin:0}
.pt-s .pt-rows :where(p){margin:.25rem 0 0;opacity:.8;grid-column:1}
.pt-s .pt-row-price{font-weight:700;white-space:nowrap}
.pt-s .pt-faq{max-width:46rem;margin-top:1.5rem}
.pt-s .pt-faq :where(details){border-top:1px solid color-mix(in srgb,currentColor 15%,transparent)}
.pt-s .pt-faq :where(details:last-child){border-bottom:1px solid color-mix(in srgb,currentColor 15%,transparent)}
.pt-s .pt-faq :where(summary){cursor:pointer;padding:1rem 0;font-weight:700;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:1rem;min-height:44px;align-items:center}
.pt-s .pt-faq :where(summary)::after{content:'+';font-size:1.5rem;line-height:1}
.pt-s .pt-faq :where(details[open] summary)::after{content:'\2212'}
.pt-s .pt-faq :where(p){padding-bottom:1rem;max-width:60ch}
.pt-s .pt-checks{margin:0 0 2rem;padding:0;list-style:none;display:grid;gap:.9rem;max-width:44rem}
.pt-s .pt-checks :where(li){position:relative;padding-left:1.8rem}
.pt-s .pt-checks :where(li)::before{content:"";position:absolute;left:.2rem;top:.55em;width:.75rem;height:.4rem;border-left:2.5px solid var(--wp--preset--color--accent,var(--wp--preset--color--contrast,#111));border-bottom:2.5px solid var(--wp--preset--color--accent,var(--wp--preset--color--contrast,#111));transform:rotate(-45deg)}
.pt-s .pt-facts{margin:0;display:grid;gap:.6rem}
.pt-s .pt-facts :where(div){display:flex;gap:.6rem;flex-wrap:wrap}
.pt-s .pt-facts :where(dt){font-weight:600;min-width:5.5rem}
.pt-s .pt-facts :where(dd){margin:0}
.pt-s .pt-links{margin:2.5rem 0 0;display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}
.pt-s .pt-links :where(a){opacity:.75;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.15rem;min-height:44px;display:inline-flex;align-items:center}
/* The theme's classes (see the top): the one content box, cards in balanced rows (one across on a phone, two from
   40rem with an odd last card filling its row, three from 60rem where five ends 3 + 2 and four is 2 x 2), numbered
   steps with the number in a badge on the heading's line, and one picture per scheme (at the weight that beats the
   pictures' display:block above). Every box in a section is measured border to border, as the theme measures them. */
:where(.pt-s,.pt-s *,.pt-content-box){box-sizing:border-box}
:where(.pt-s .pt-wrap){max-width:calc(var(--pt-content-width,var(--wp--style--global--wide-size,72rem)) + 2 * var(--pt-gutter,var(--wp--style--root--padding-left,1.5rem)));margin-inline:auto;padding-inline:var(--pt-gutter,var(--wp--style--root--padding-left,1.5rem))}
/* A section pasted without a .pt-wrap takes the same box as padding, so its words keep off the screen edges; so does
   a page the Switch screen converted (.pt-content-box on the wrap inside its root), whose old theme gave it that box. */
:where(.pt-section:not(.pt-section--boxed)) :where(.pt-s:not(:has(.pt-wrap)),.pt-content-box){padding-inline:max(var(--pt-gutter,var(--wp--style--root--padding-left,1.5rem)),(100% - var(--pt-content-width,var(--wp--style--global--wide-size,72rem))) / 2)}
:where(.pt-s :is(.pt-grid,.pt-steps)){display:grid;gap:var(--wp--preset--spacing--40,1.5rem);grid-template-columns:repeat(6,minmax(0,1fr))}
:where(.pt-s :is(.pt-grid,.pt-steps))>*{grid-column:1/-1}
@media (40rem <= width < 60rem){
:where(.pt-s :is(.pt-grid,.pt-steps))>*{grid-column:span 3}
:where(.pt-s) :where(.pt-grid,.pt-steps):has(>:first-child:nth-last-child(2n+1))>:last-child{grid-column:1/-1}
}
@media (width >= 60rem){
:where(.pt-s :is(.pt-grid,.pt-steps))>*{grid-column:span 2}
:where(.pt-s) :where(.pt-grid,.pt-steps):has(>:first-child:nth-last-child(3n+2))>:nth-last-child(-n+2),:where(.pt-s) :where(.pt-grid,.pt-steps):has(>:first-child:nth-last-child(3n+4))>:nth-last-child(-n+4){grid-column:span 3}
:where(.pt-s :is(.pt-grid,.pt-steps))>:only-child{grid-column:1/-1}
}
:where(.pt-s .pt-steps){counter-reset:pt-step;list-style:none;margin:0;padding:0}
:where(.pt-s .pt-steps)>*{counter-increment:pt-step;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.75rem;align-items:baseline;align-content:start}
:where(.pt-s .pt-steps>*)>*{grid-column:1/-1}
:where(.pt-s .pt-steps>*)>:first-child{grid-column:2}
:where(.pt-s .pt-steps>*)::before{content:counter(pt-step);grid-column:1;display:grid;place-items:center;inline-size:2.25rem;block-size:2.25rem;border-radius:var(--pt-radius-s,999px);background:var(--wp--preset--color--accent,var(--wp--preset--color--contrast,#111));color:var(--wp--preset--color--accent-contrast,var(--wp--preset--color--base,#fff));font-weight:700;line-height:1}
@media screen{:root[data-theme="dark"] .pt-s .pt-light-only,:root:not([data-theme="dark"]) .pt-s .pt-dark-only{display:none}}
@media print{.pt-s .pt-dark-only{display:none}}
/* Layout for what a section brings without CSS of its own: an icon (an svg with no size) at the size of the text,
   or in a round pt-icon badge; a YouTube or Vimeo embed at 16:9 across its box; pt-gallery, pictures cropped to one
   shape in even rows (two across on a phone, three from 700px, rows filled as the cards are); pt-cover, a photo
   behind the words with a shade so they read; pt-stat, a figure in large type (its strong) over a line; pt-avatar, a
   round portrait; pt-badge, a small label. */
.pt-s :where(svg:not([width]):not([height])){width:1.5em;height:1.5em}
.pt-s .pt-icon{display:inline-grid;place-items:center;width:3rem;height:3rem;margin-bottom:1rem;border-radius:var(--pt-radius-s,999px);background:var(--wp--preset--color--subtle,color-mix(in srgb,currentColor 7%,transparent));color:var(--wp--preset--color--accent,var(--wp--preset--color--contrast,#111))}
.pt-s .pt-icon svg{width:1.5rem;height:1.5rem}
/* Inside a card the badge and the card shared the soft fill, so the circle vanished: there it takes a light tint of the accent, which shows on a soft card and on a white one. */
.pt-s .pt-card .pt-icon{background:color-mix(in srgb,var(--wp--preset--color--accent,currentColor) 14%,transparent)}
.pt-s :where(iframe){display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:var(--pt-radius-l,1rem)}
.pt-s :where(iframe.pt-tall){aspect-ratio:9/16;max-width:22rem;margin-inline:auto}
.pt-s .pt-gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;margin-top:1.5rem}
.pt-s .pt-gallery>*{grid-column:span 3;margin:0}
.pt-s .pt-gallery :where(img){width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--pt-radius-l,1rem);background:var(--wp--preset--color--subtle,color-mix(in srgb,currentColor 7%,transparent))}
@media (width < 700px){.pt-s .pt-gallery:has(>:first-child:nth-last-child(2n+1))>:last-child{grid-column:1/-1}}
:is(.pt-s.pt-cover,.pt-s .pt-cover){position:relative;isolation:isolate;display:grid;align-content:end;min-height:min(80vh,36rem);background:var(--wp--preset--color--contrast,#111);color:var(--wp--preset--color--base,#fff)}
:is(.pt-s.pt-cover,.pt-s .pt-cover)>*{width:100%}
:is(.pt-s.pt-cover,.pt-s .pt-cover)>:is(img,picture),:is(.pt-s.pt-cover,.pt-s .pt-cover)>picture img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;max-width:none;object-fit:cover}
:is(.pt-s.pt-cover,.pt-s .pt-cover)::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,color-mix(in srgb,var(--wp--preset--color--contrast,#111) 85%,transparent),color-mix(in srgb,var(--wp--preset--color--contrast,#111) 35%,transparent))}
.pt-s .pt-stat :where(strong,b){display:block;font-size:clamp(2rem,6vw,3rem);line-height:1.1}
.pt-s .pt-avatar{width:8rem;height:8rem;aspect-ratio:1;margin-bottom:1rem;object-fit:cover;border-radius:999px;background:var(--wp--preset--color--subtle,color-mix(in srgb,currentColor 7%,transparent))}
.pt-s .pt-badge{display:inline-block;padding:.3em .8em;border-radius:var(--pt-radius-s,999px);font-size:.85rem;font-weight:600;line-height:1.2;background:color-mix(in srgb,currentColor 10%,transparent);color:var(--wp--preset--color--contrast,#111)}
/* The field rules outweigh the theme's form baseline (its seven :not()s) whatever the load order. */
.pt-s .pt-form :where(label){display:block;font-weight:700;margin-bottom:.35rem}
.pt-s .pt-form :is(input,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]){display:block;width:100%;box-sizing:border-box;font:inherit;font-size:1rem;padding:.75rem 1rem;border-radius:var(--pt-radius-l,.75rem);border:1px solid color-mix(in srgb,currentColor 25%,transparent);background:var(--wp--preset--color--base,#fff);color:inherit;margin-bottom:1rem}
.pt-s .pt-form :where(textarea){min-height:8rem}
.pt-s .pt-form :where(button){min-height:44px;padding:.9em 1.8em;border-radius:var(--pt-radius-s,999px);border:0;background:var(--wp--preset--color--accent,var(--wp--preset--color--contrast,#111));color:var(--wp--preset--color--accent-contrast,var(--wp--preset--color--base,#fff));font:inherit;font-weight:700;cursor:pointer}
.pt-s .pt-form--stack{display:grid;gap:1rem}
.pt-s .pt-form--stack :where(label){font-weight:600}
.pt-s .pt-form--stack :where(input){min-height:44px}
.pt-s .pt-form--stack :is(input,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]){padding:.65rem .9rem;border-radius:var(--pt-radius-l,1rem);border-color:color-mix(in srgb,currentColor 30%,transparent);color:var(--wp--preset--color--contrast,#111);margin-bottom:0}
.pt-s .pt-form--stack :where(textarea){resize:vertical}
.pt-s .pt-form--stack :where(button){display:inline-flex;align-items:center;justify-content:center;font-size:1rem;justify-self:start}
/* Tones and fine tuning (pt-mb-N is N x .25rem) come last, so they win at equal weight. */
.pt-s.pt-tone-base,.pt-s .pt-tone-base{background:var(--wp--preset--color--base,#fff)}
.pt-s.pt-tone-subtle,.pt-s .pt-tone-subtle{background:var(--wp--preset--color--subtle,color-mix(in srgb,currentColor 7%,transparent))}
.pt-s.pt-tone-contrast,.pt-s .pt-tone-contrast{background:var(--wp--preset--color--contrast,#111);color:var(--wp--preset--color--base,#fff)}
.pt-s .pt-mb-0{margin-bottom:0}
.pt-s .pt-mb-3{margin-bottom:.75rem}
.pt-s .pt-mb-4{margin-bottom:1rem}
.pt-s .pt-mb-5{margin-bottom:1.25rem}
.pt-s .pt-mb-6{margin-bottom:1.5rem}
.pt-s .pt-mb-7{margin-bottom:1.75rem}
.pt-s .pt-mb-8{margin-bottom:2rem}
.pt-s .pt-ch-18{max-width:18ch}
.pt-s .pt-ch-40{max-width:40ch}
.pt-s .pt-ch-44{max-width:44ch}
.pt-s .pt-ch-45{max-width:45ch}
.pt-s .pt-ch-46{max-width:46ch}
.pt-s .pt-soft{opacity:.9}
.pt-s .pt-lh-loose{line-height:1.65}
.pt-s .pt-round{border-radius:var(--pt-radius-l,1.75rem)}
.pt-s .pt-line{border:1px solid color-mix(in srgb,currentColor 14%,transparent)}
.pt-s .pt-gap-wide{gap:1.75rem}
.pt-s .pt-btn-slim{padding:.75rem 1.75rem;font-weight:600}
@media (min-width:700px){
.pt-s.pt-pad-sm{padding-block:4rem}
.pt-s.pt-pad-md{padding-block:4.5rem}
.pt-s.pt-col,.pt-s .pt-col{padding-inline:1.5rem}
.pt-s .pt-split{grid-template-columns:1fr 1fr;gap:3rem}
.pt-s .pt-split--form{grid-template-columns:2fr 3fr}
/* Two columns in a hero, or anywhere a picture sits beside a heading (h1 or h2, picture left or right): the picture
   column's top is the top of the headline's capitals. The one small line above
   the headline (pt-eyebrow, pt-badge) hangs over the pair in room kept for it, so it never moves the picture; the
   headline's box is trimmed to its capitals (a browser that cannot trim pulls it up by about the same). */
.pt-s .pt-split:is(.pt-hero *,:has(>:is(img,picture,figure,video),>*>.pt-media:only-child)):not(.pt-split--form){align-items:start}
.pt-s .pt-split:is(.pt-hero *,:has(>:is(img,picture,figure,video),>*>.pt-media:only-child)):not(.pt-split--form):has(>*>:first-child+:is(h1,h2)){padding-top:calc(.8rem*1.6 + 1.75rem)}
.pt-s .pt-split:is(.pt-hero *,:has(>:is(img,picture,figure,video),>*>.pt-media:only-child)):not(.pt-split--form):has(>*>.pt-badge:first-child+:is(h1,h2)){padding-top:calc(.85rem*1.8 + 1.75rem)}
.pt-s .pt-split:is(.pt-hero *,:has(>:is(img,picture,figure,video),>*>.pt-media:only-child)):not(.pt-split--form)>:has(>:is(h1,h2)){position:relative}
.pt-s .pt-split:is(.pt-hero *,:has(>:is(img,picture,figure,video),>*>.pt-media:only-child)):not(.pt-split--form)>*>:first-child:has(+:is(h1,h2)){position:absolute;bottom:100%;left:0;max-width:100%;margin:0 0 1.75rem}
.pt-s .pt-split:is(.pt-hero *,:has(>:is(img,picture,figure,video),>*>.pt-media:only-child)):not(.pt-split--form)>*>.pt-eyebrow:first-child{line-height:1.6}
.pt-s .pt-split:is(.pt-hero *,:has(>:is(img,picture,figure,video),>*>.pt-media:only-child)):not(.pt-split--form)>*>:is(h1,h2):is(:first-child,:first-child+*){margin-top:-.23em}
@supports (text-box:trim-start cap alphabetic){.pt-s .pt-split:is(.pt-hero *,:has(>:is(img,picture,figure,video),>*>.pt-media:only-child)):not(.pt-split--form)>*>:is(h1,h2):is(:first-child,:first-child+*){margin-top:0;text-box:trim-start cap alphabetic}}
.pt-s .pt-box{padding:3.5rem 2.5rem}
.pt-s .pt-cards{grid-template-columns:repeat(3,1fr);gap:1.5rem}
.pt-s .pt-cards--two{grid-template-columns:repeat(2,1fr)}
.pt-s .pt-plans--three{grid-template-columns:1fr}
/* Three across, each plan's six parts (name, price, fine print, short line, list, button) on the rows its neighbours use. */
@media (width >= 60rem){.pt-s .pt-plans--three{grid-template-columns:repeat(3,1fr);max-width:none}
@supports (grid-template-rows:subgrid){.pt-s .pt-plans--three>.pt-plan{display:grid;grid-template-rows:subgrid;grid-row:span 6;row-gap:1rem}.pt-s .pt-plans--three>.pt-plan>*{align-self:start}.pt-s .pt-plans--three>.pt-plan>.btn{justify-self:start;align-self:end}}}
.pt-s .pt-gallery{gap:1rem}
.pt-s .pt-gallery>*{grid-column:span 2}
.pt-s .pt-gallery:has(>:first-child:nth-last-child(3n+2))>:nth-last-child(-n+2),.pt-s .pt-gallery:has(>:first-child:nth-last-child(3n+4))>:nth-last-child(-n+4){grid-column:span 3}
.pt-s .pt-gallery>:only-child{grid-column:1/-1}
.pt-s .pt-gap-tight{gap:1.25rem}
.pt-s .pt-gap-wide{gap:2.5rem}
}
}
/* Outside the layer: what core's theme.json element styles and the theme's focus ring would otherwise overrule (see the top). */
.pt-s :is(h1,h2,h3){line-height:1.15}
.pt-s h1{font-size:clamp(2.1rem,6vw,3.6rem)}
.pt-s h2{font-size:clamp(1.75rem,4vw,2.5rem)}
.pt-s .pt-split h1{font-size:clamp(2rem,5.5vw,3.25rem)}
.pt-s .pt-box h2{font-size:clamp(1.6rem,4vw,2.25rem)}
.pt-s :is(.pt-card,.pt-item) h3{font-size:1.15rem}
.pt-s .pt-card--large h3{font-size:1.25rem;line-height:1.3}
.pt-s .pt-rows h3{font-size:1.1rem}
.pt-s h1.pt-h1-sm{font-size:clamp(2rem,5.5vw,3rem)}
.pt-s h1.pt-h1-md{font-size:clamp(2.1rem,6vw,3.4rem);line-height:1.1}
.pt-s h1.pt-h1-big{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.1}
.pt-s .btn{color:var(--wp--preset--color--accent-contrast,var(--wp--preset--color--base,#fff))}
.pt-s .btn--ghost{color:var(--wp--preset--color--contrast,#111);box-shadow:inset 0 0 0 2px currentColor}
.pt-s :is(.pt-btn-quiet,.pt-links a,.pt-facts a){color:inherit}
