/* GGP Pricing block, design system v2. No front-end JavaScript: the whole
   chooser is radios + CSS. Tokens are scoped to the block rather than :root,
   because this stylesheet ships with the plugin and must not leak. */
.ggp-pk{
  --accent:#c8102e;--accent-hover:#d4162f;--accent-pressed:#8f0b20;--on-accent:#fff;
  --accent-fill:rgba(200,16,46,.10);--accent-fill-2:rgba(200,16,46,.16);--accent-line:rgba(200,16,46,.28);
  --label:#000;--label-2:rgba(60,60,67,.70);--label-3:rgba(60,60,67,.55);--label-4:rgba(60,60,67,.30);
  --bg:#fff;--bg-2:#f2f2f7;--bg-3:#fff;--bg-elevated:#fff;
  --fill:rgba(120,120,128,.20);--fill-2:rgba(120,120,128,.16);--fill-3:rgba(120,120,128,.12);
  --sep:rgba(60,60,67,.29);--sep-opaque:#c6c6c8;
  --scrim:rgba(0,0,0,.32);
  --shadow-popover:0 4px 16px rgba(0,0,0,.12),0 1px 3px rgba(0,0,0,.08);
  --r-chip:10px;--r-control:12px;--r-inner:14px;--r-card:20px;--r-pill:999px;
  --spring:linear(0,.0575,.1804,.3209,.4553,.5731,.6712,.7502,.8123,.8602,.8967,.9241,.9445,.9597,.9708,.9789,.9848,.9891,.9922,.9945,.996,.9972,.998,.9986,1);
  --bounce:linear(0,.0516,.1703,.316,.4633,.5976,.7119,.804,.8748,.9269,.9634,.9876,1.0025,1.0107,1.0144,1.0151,1.0141,1.0122,1.01,1.0078,1.0058,1.0041,1.0028,1.0017,1);
  --t-press:120ms;--t-snappy:441ms;--t-move:588ms;--t-sheet:405ms;
  --ease-out:cubic-bezier(.25,.1,.25,1);
  --tap:44px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable","Segoe UI",system-ui,Roboto,"Helvetica Neue",Arial,sans-serif;
  font-optical-sizing:auto;
  color:var(--label);background:var(--bg);-webkit-font-smoothing:antialiased
}
.ggp-pk,.ggp-pk *,.ggp-pk *::before,.ggp-pk *::after{box-sizing:border-box;margin:0;padding:0}
/* The theme ships a bare h1,h2,h3 Poppins rule. An INHERITED family loses to any
   direct rule at any specificity, so the headings must be targeted directly. */
.ggp-pk h1,.ggp-pk h2,.ggp-pk h3,.ggp-pk h4,.ggp-pk h5{font-family:inherit}
.ggp-pk{width:100%;overflow-x:clip;padding:clamp(48px,8vw,88px) clamp(16px,4vw,24px) clamp(56px,8vw,88px)}
.ggp-pk .pk-flow{max-width:1080px;margin:0 auto}
.ggp-pk .pk-r{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}

/* collapsible sections */
.ggp-pk .pk-stagewrap,.ggp-pk .pk-sumwrap,.ggp-pk .pk-tierswrap{display:grid;transition:grid-template-rows var(--t-move) var(--spring),opacity var(--t-snappy) var(--ease-out)}
.ggp-pk .pk-stageinner,.ggp-pk .pk-suminner,.ggp-pk .pk-tiersinner{overflow:clip;min-height:0}
.ggp-pk .pk-stagewrap{grid-template-rows:1fr;opacity:1}
.ggp-pk .pk-sumwrap,.ggp-pk .pk-tierswrap{grid-template-rows:0fr;opacity:0;pointer-events:none}

/* hero. The eyebrow is plain accent text now, not a tinted pill: v2 keeps
   crimson for things you can act on, and reserves fills for controls. */
.ggp-pk .pk-eyebrow{display:block;color:var(--accent);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1;margin-bottom:18px}
.ggp-pk .pk-stage{text-align:center}
.ggp-pk .pk-h1{font-size:clamp(2.125rem,5.5vw,3.25rem);font-weight:700;line-height:1.06;letter-spacing:-.028em;margin-bottom:16px;text-wrap:balance}
/* The serif accent word is retired with the old system. <em> in a saved heading
   renders as ordinary text rather than breaking the line. */
.ggp-pk .pk-h1 em{font-style:normal;font-weight:inherit;letter-spacing:inherit}
.ggp-pk .pk-lede{max-width:46ch;margin:0 auto clamp(32px,5vw,48px);color:var(--label-2);font-size:clamp(1.125rem,2.1vw,1.3125rem);line-height:1.42;letter-spacing:-.014em;text-wrap:pretty}

/* the three choice cards. Flat in-flow cards get a hairline, never a shadow. */
.ggp-pk .pk-picks{display:flex;align-items:flex-start;justify-content:center;text-align:left}
.ggp-pk .pk-pick{flex:1 1 0;min-width:0;margin:0 10px;background:var(--bg-3);border:1px solid var(--sep);border-radius:var(--r-card);padding:14px;cursor:pointer;display:flex;flex-direction:column;transition:flex-basis var(--t-move) var(--spring),flex-grow var(--t-move) var(--spring),margin var(--t-move) var(--spring),padding var(--t-move) var(--spring),opacity var(--t-snappy) var(--ease-out),transform var(--t-press) var(--ease-out),border-color var(--t-press) var(--ease-out)}
/* Feedback lives on the press. Hover is a pointer-only enhancement. */
.ggp-pk .pk-pick:active{transform:scale(.985);border-color:var(--accent-line)}
@media(hover:hover){.ggp-pk .pk-pick:hover{border-color:var(--accent-line)}}
.ggp-pk .pk-g{cursor:default}
.ggp-pk .pk-face{display:flex;flex-direction:column;cursor:pointer}
.ggp-pk .pk-shot{position:relative;display:block;width:100%;max-width:100%;aspect-ratio:1/1;border-radius:var(--r-inner);overflow:hidden;background:var(--fill-3);margin-bottom:14px;transition:max-width var(--t-move) var(--spring)}
/* Each slide fades in ON TOP (z-index 2) of the outgoing one, which stays fully
   opaque underneath until the handover completes, so coverage never dips to the
   background mid-crossfade. animation-delay is written inline per slide, which is
   also how the per-card stagger is applied. */
.ggp-pk .pk-sl{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;z-index:1;animation:ggpPkFade var(--pk-cycle,20s) linear infinite}
@keyframes ggpPkFade{0%{opacity:0;z-index:2}4%{opacity:1;z-index:2}19.99%{opacity:1;z-index:2}20%{opacity:1;z-index:1}24%{opacity:1;z-index:1}24.01%{opacity:0;z-index:1}100%{opacity:0;z-index:1}}
.ggp-pk .pk-pt{display:block;font-size:1.0625rem;font-weight:600;letter-spacing:-.012em;line-height:1.3;padding:0 4px}
.ggp-pk .pk-ps{display:block;color:var(--label-2);font-size:.9375rem;line-height:1.4;letter-spacing:-.005em;margin-top:4px;padding:0 4px 6px}

/* group card takes the row */
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-pick:not(.pk-g){flex:0 0 0;margin-left:0;margin-right:0;padding-left:0;padding-right:0;opacity:0;transform:scale(.94);border-width:0;pointer-events:none}
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-g{flex:1 1 100%;padding:24px;text-align:center}
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-g .pk-shot{max-width:140px;margin-left:auto;margin-right:auto}
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-g .pk-ps{display:none}
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-g .pk-pt{font-size:.9375rem;color:var(--label-2);font-weight:400}
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-gpanel{grid-template-rows:1fr;opacity:1;pointer-events:auto}

/* step 2 */
.ggp-pk .pk-gpanel{display:grid;grid-template-rows:0fr;opacity:0;pointer-events:none;transition:grid-template-rows var(--t-move) var(--spring) .1s,opacity var(--t-snappy) var(--ease-out) .16s}
.ggp-pk .pk-gpanelin{overflow:clip;min-height:0}
.ggp-pk .pk-gq{font-size:clamp(1.3125rem,2.6vw,1.625rem);font-weight:600;letter-spacing:-.016em;line-height:1.22;padding-top:16px;margin-bottom:20px;text-wrap:balance}
.ggp-pk .pk-gcards{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:flex-start;padding-bottom:6px}
.ggp-pk .pk-gcard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:124px;min-height:var(--tap);padding:18px 22px;background:var(--fill-3);border:1px solid transparent;border-radius:var(--r-inner);cursor:pointer;list-style:none;transition:background var(--t-press) var(--ease-out),border-color var(--t-press) var(--ease-out),transform var(--t-press) var(--ease-out)}
.ggp-pk .pk-gcard:active{transform:scale(.97);background:var(--accent-fill-2)}
@media(hover:hover){.ggp-pk .pk-gcard:hover{background:var(--accent-fill);border-color:var(--accent-line)}}
.ggp-pk .pk-gcard::-webkit-details-marker{display:none}
.ggp-pk .pk-gn{font-size:1.625rem;font-weight:700;line-height:1;letter-spacing:-.022em;font-variant-numeric:tabular-nums}
.ggp-pk .pk-gl{font-size:.8125rem;color:var(--label-2);font-weight:400;letter-spacing:0}
.ggp-pk .pk-more{position:relative}
.ggp-pk .pk-more[open] .pk-gcard-d{background:var(--accent-fill);border-color:var(--accent-line)}
.ggp-pk .pk-opts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:340px;margin:12px auto 0;padding:14px;background:var(--bg-elevated);border:1px solid var(--sep);border-radius:var(--r-inner)}
.ggp-pk .pk-opt{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 18px;border:0;border-radius:var(--r-pill);background:var(--fill-3);font-size:.9375rem;font-weight:600;letter-spacing:-.005em;color:var(--label);cursor:pointer;white-space:nowrap;transition:background var(--t-press) var(--ease-out),color var(--t-press) var(--ease-out),transform var(--t-press) var(--ease-out)}
.ggp-pk .pk-opt:active{transform:scale(.97);background:var(--accent-fill-2)}
@media(hover:hover){.ggp-pk .pk-opt:hover{background:var(--accent-fill);color:var(--accent)}}

/* summary */
.ggp-pk .pk-sumbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;padding:0 0 clamp(24px,4vw,36px)}
.ggp-pk .pk-sumtxt{font-size:1.0625rem;font-weight:600;letter-spacing:-.012em}
.ggp-pk .pk-sum{display:none}
/* Completed steps collapse into chips: [Grad photos] [Just you] [Change].
   The context chip is set per instance, so the pricing block can say which
   journey the visitor is in without knowing anything about the page. */
.ggp-pk .pk-chip{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:var(--r-pill);background:var(--fill-3);color:var(--label);font-size:.9375rem;font-weight:600;letter-spacing:-.005em;text-decoration:none;white-space:nowrap;transition:background var(--t-press) var(--ease-out)}
.ggp-pk a.pk-chip-ctx:active{background:var(--fill)}
@media(hover:hover){.ggp-pk a.pk-chip-ctx:hover{background:var(--fill)}}
.ggp-pk .pk-chip-ctx::after{content:"›";margin-left:8px;color:var(--label-3);font-weight:400}
.ggp-pk .pk-change{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 18px;border:0;border-radius:var(--r-pill);background:var(--accent-fill);font-size:.9375rem;font-weight:600;color:var(--accent);cursor:pointer;transition:background var(--t-press) var(--ease-out),transform var(--t-press) var(--ease-out)}
.ggp-pk .pk-change:active{transform:scale(.97);background:var(--accent-fill-2)}
@media(hover:hover){.ggp-pk .pk-change:hover{background:var(--accent-fill-2)}}

/* tiers - all three identical, no highlight */
.ggp-pk .pk-tiers{text-align:center}
.ggp-pk .pk-h2{font-size:clamp(1.75rem,4vw,2.375rem);font-weight:700;letter-spacing:-.022em;line-height:1.12;margin-bottom:8px;text-wrap:balance}
.ggp-pk .pk-lede2{color:var(--label-2);font-size:1.0625rem;line-height:1.53;letter-spacing:-.01em;margin-bottom:clamp(28px,4vw,40px)}
.ggp-pk .pk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;text-align:left;align-items:start}
.ggp-pk .pk-tier{background:var(--bg-3);border:1px solid var(--sep);border-radius:var(--r-card);padding:clamp(20px,2.4vw,24px);display:flex;flex-direction:column;height:100%}
.ggp-pk .pk-tier h3{display:flex;align-items:center;gap:8px;font-size:1.3125rem;font-weight:600;letter-spacing:-.016em;line-height:1.22}
/* Per-PACKAGE help. Same 20px look as the per-feature badge, same 44px hit
   area, but it sits inline beside the name rather than over an icon. */
.ggp-pk .pk-tq{position:relative;flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:var(--fill-3);color:var(--label-2);font-size:11px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;transition:background var(--t-press) var(--ease-out),color var(--t-press) var(--ease-out),transform var(--t-press) var(--ease-out)}
.ggp-pk .pk-tq::before{content:"";position:absolute;top:50%;left:50%;width:var(--tap);height:var(--tap);transform:translate(-50%,-50%)}
.ggp-pk .pk-tq:active{transform:scale(.9);background:var(--accent);color:var(--on-accent)}
.ggp-pk .pk-tq:focus-visible{background:var(--accent);color:var(--on-accent)}
@media(hover:hover){.ggp-pk .pk-tq:hover{background:var(--accent);color:var(--on-accent)}}
.ggp-pk .pk-blurb{color:var(--label-2);font-size:.9375rem;line-height:1.4;letter-spacing:-.005em;margin-top:4px}
.ggp-pk .pk-price{margin:18px 0;padding-bottom:18px;border-bottom:1px solid var(--sep);min-height:76px}
.ggp-pk .pk-v{display:none}
/* The price is a number the reader compares down a column: tabular figures stop
   it jittering as they scan. */
.ggp-pk .pk-v b{display:block;font-size:clamp(2rem,4vw,2.375rem);font-weight:700;line-height:1;letter-spacing:-.028em;font-variant-numeric:tabular-nums}
.ggp-pk .pk-v em{display:block;font-style:normal;font-size:1.3125rem;font-weight:600;letter-spacing:-.016em;line-height:1.2}
.ggp-pk .pk-v small{display:block;color:var(--label-2);font-size:.9375rem;line-height:1.4;margin-top:6px;font-variant-numeric:tabular-nums}
.ggp-pk .pk-off em{color:var(--label-2)}

/* ICON-LED inclusions: the icon is the object, the label sits centred underneath.
   Correlated features (length+spots, peek+delivery) share one line, side by side.
   Icons are BLACK; the red is kept for accents only. */
.ggp-pk .pk-rows{display:flex;flex-direction:column;gap:26px;flex:1 1 auto;margin:6px 0 28px}
.ggp-pk .pk-line{list-style:none;display:flex;gap:10px;width:100%}
.ggp-pk .pk-line .pk-cell{flex:1 1 0;min-width:0}
.ggp-pk .pk-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:12px;min-height:96px}
.ggp-pk .pk-mark{position:relative;display:inline-flex;align-items:center;justify-content:center}
.ggp-pk .pk-i{width:54px;height:54px;flex:0 0 54px;color:var(--label);stroke-width:2}
.ggp-pk .pk-i-custom{width:54px;height:54px;object-fit:contain;stroke-width:0}
.ggp-pk .pk-lbl{font-size:1rem;line-height:1.45;font-weight:400;color:var(--label);letter-spacing:-.008em;max-width:22ch}
.ggp-pk .pk-line-2 .pk-lbl{font-size:.9375rem}
.ggp-pk .pk-merged .pk-lbl{max-width:26ch}
.ggp-pk .pk-sep{color:var(--label-3);padding:0 2px}
/* knockout disc so an overlapping badge inside a merged icon stays readable */
.ggp-pk .pk-i .pk-knock{fill:var(--bg-3);stroke:currentColor}
.ggp-pk .pk-shooter{display:none}
.ggp-pk .pk-t{display:none}
/* a feature this package does not include: the slot stays, so columns line up */
.ggp-pk .pk-none{justify-content:center}
.ggp-pk .pk-dash{display:inline-block;font-size:1.6rem;line-height:1;color:var(--label-4);font-weight:400}

/* the "?" badge and its pop-up. The badge stays 20px visually, but ::before
   extends its hit area to the 44px minimum without moving anything. */
.ggp-pk .pk-q{position:absolute;top:-4px;right:-14px;width:20px;height:20px;border-radius:50%;background:var(--fill-3);color:var(--label-2);font-size:11px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--t-press) var(--ease-out),color var(--t-press) var(--ease-out),transform var(--t-press) var(--ease-out);user-select:none}
.ggp-pk .pk-q::before{content:"";position:absolute;top:50%;left:50%;width:var(--tap);height:var(--tap);transform:translate(-50%,-50%)}
.ggp-pk .pk-q:active{transform:scale(.9);background:var(--accent);color:var(--on-accent)}
@media(hover:hover){.ggp-pk .pk-q:hover{background:var(--accent);color:var(--on-accent)}}
.ggp-pk .pk-q:focus-visible{background:var(--accent);color:var(--on-accent)}
.ggp-pk .pk-hr{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.ggp-pk .pk-modal{display:none;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;padding:20px}
.ggp-pk .pk-modal-bg{position:absolute;inset:0;background:var(--scrim);cursor:pointer}
/* A modal task dims the page behind it and the surface materializes rather than
   fading: blur and scale move together so it reads as a real layer arriving. */
.ggp-pk .pk-modal-box{position:relative;max-width:420px;width:100%;max-height:86vh;overflow-y:auto;background:var(--bg-elevated);border-radius:var(--r-card);padding:22px;box-shadow:var(--shadow-popover);text-align:left;animation:ggpPkPop var(--t-sheet) var(--bounce) both}
@keyframes ggpPkPop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
.ggp-pk .pk-modal-img{width:100%;height:auto;border-radius:var(--r-inner);margin-bottom:16px;display:block}
.ggp-pk .pk-modal-t{font-size:1.3125rem;font-weight:600;letter-spacing:-.016em;line-height:1.22;margin-bottom:8px;padding-right:36px}
.ggp-pk .pk-modal-p{font-size:1.0625rem;line-height:1.53;letter-spacing:-.01em;color:var(--label-2)}
.ggp-pk .pk-modal-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:var(--fill-3);color:var(--label-2);font-size:19px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--t-press) var(--ease-out),color var(--t-press) var(--ease-out),transform var(--t-press) var(--ease-out)}
.ggp-pk .pk-modal-x::before{content:"";position:absolute;top:50%;left:50%;width:var(--tap);height:var(--tap);transform:translate(-50%,-50%)}
.ggp-pk .pk-modal-x:active{transform:scale(.9)}
@media(hover:hover){.ggp-pk .pk-modal-x:hover{background:var(--label);color:var(--bg)}}

/* The inclusions moved off the card face by the "More info" toggle. Each is its
   own line with the explanation underneath, so the pop-up reads as the long
   version of the card rather than a second, competing list. */
.ggp-pk .pk-modal-sub{font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--label-3);margin-top:22px;margin-bottom:10px}
.ggp-pk .pk-modal-list{list-style:none;display:flex;flex-direction:column;gap:14px}
.ggp-pk .pk-modal-list li{display:flex;flex-direction:column;gap:3px}
.ggp-pk .pk-ml-t{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;line-height:1.3;color:var(--label)}
.ggp-pk .pk-ml-d{font-size:.9375rem;line-height:1.45;letter-spacing:-.006em;color:var(--label-2)}

/* The button that opens the package pop-up. Deliberately quiet next to the
   crimson CTA under it: it is the secondary of a pair, and two filled buttons
   stacked would read as two competing actions. */
.ggp-pk .pk-more{display:flex;align-items:center;justify-content:center;text-align:center;min-height:var(--tap);margin-bottom:10px;padding:11px 18px;border-radius:var(--r-pill);background:var(--fill-3);color:var(--label);font-size:1rem;font-weight:600;letter-spacing:-.01em;cursor:pointer;user-select:none;transition:background var(--t-press) var(--ease-out),color var(--t-press) var(--ease-out),transform var(--t-press) var(--ease-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.ggp-pk .pk-more:active{transform:scale(.97);background:var(--fill)}
.ggp-pk .pk-more:focus-visible{background:var(--accent);color:var(--on-accent)}
@media(hover:hover){.ggp-pk .pk-more:hover{background:var(--fill-2)}}

/* Three package CTAs are parallel instances of ONE action, not competing
   primaries, so all three stay filled. */
.ggp-pk .pk-cta{display:flex;align-items:center;justify-content:center;text-align:center;min-height:var(--tap);padding:12px 20px;border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;transition:background var(--t-press) var(--ease-out),transform var(--t-press) var(--ease-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.ggp-pk .pk-cta:active{transform:scale(.97);background:var(--accent-pressed)}
@media(hover:hover){.ggp-pk .pk-cta:hover{background:var(--accent-hover)}}
.ggp-pk .pk-cta-off{display:none;background:var(--fill-3);color:var(--label-2)}
.ggp-pk .pk-cta-off:active{transform:scale(.97);background:var(--fill)}
@media(hover:hover){.ggp-pk .pk-cta-off:hover{background:var(--fill-2);color:var(--label)}}
.ggp-pk .pk-note{color:var(--label-2);font-size:.9375rem;line-height:1.4;margin-top:26px}

/* resolved state */
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-stagewrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-stagewrap{grid-template-rows:0fr;opacity:0;pointer-events:none}
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-sumwrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-sumwrap{grid-template-rows:1fr;opacity:1;pointer-events:auto}
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-tierswrap,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-tierswrap{grid-template-rows:1fr;opacity:1;pointer-events:auto}

/* the one price, duration, summary line and shooter row that apply */
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-v1,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-v2,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-v3,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-v4,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-v5,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-v6,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-v7,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-v8,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-v9,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-v10,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-v11,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-v12,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-v13{display:block}
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-sum1,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-sum2,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-sum3,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-sum4,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-sum5,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-sum6,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-sum7,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-sum8,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-sum9,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-sum10,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-sum11,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-sum12,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-sum13{display:inline}
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-t1,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-t2,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-t3,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-t4,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-t5,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-t6,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-t7,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-t8,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-t9,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-t10,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-t11,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-t12,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-t13{display:inline}
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-ss1,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-ss2,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-ss3,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-ss4,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-ss5,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-ss6,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-ss7,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-ss8,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-ss9,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-ss10,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-ss11,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-ss12,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-ss13{display:flex}

/* a tier that does not cover the chosen size: dim it, swap the CTA, drop duration */
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-tier.pk-no1 .pk-rows,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-tier.pk-no2 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-tier.pk-no3 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-tier.pk-no4 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-tier.pk-no5 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-tier.pk-no6 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-tier.pk-no7 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-tier.pk-no8 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-tier.pk-no9 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-tier.pk-no10 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-tier.pk-no11 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-tier.pk-no12 .pk-rows,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-tier.pk-no13 .pk-rows{opacity:.42}
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-tier.pk-no1 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-tier.pk-no2 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-tier.pk-no3 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-tier.pk-no4 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-tier.pk-no5 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-tier.pk-no6 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-tier.pk-no7 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-tier.pk-no8 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-tier.pk-no9 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-tier.pk-no10 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-tier.pk-no11 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-tier.pk-no12 .pk-cta:not(.pk-cta-off),.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-tier.pk-no13 .pk-cta:not(.pk-cta-off){display:none}
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-tier.pk-no1 .pk-cta-off,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-tier.pk-no2 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-tier.pk-no3 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-tier.pk-no4 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-tier.pk-no5 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-tier.pk-no6 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-tier.pk-no7 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-tier.pk-no8 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-tier.pk-no9 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-tier.pk-no10 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-tier.pk-no11 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-tier.pk-no12 .pk-cta-off,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-tier.pk-no13 .pk-cta-off{display:flex}
.ggp-pk input[data-pk=m1]:checked ~ .pk-flow .pk-tier.pk-no1 .pk-timerow,.ggp-pk input[data-pk=m2]:checked ~ .pk-flow .pk-tier.pk-no2 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s3]:checked ~ .pk-flow .pk-tier.pk-no3 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s4]:checked ~ .pk-flow .pk-tier.pk-no4 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s5]:checked ~ .pk-flow .pk-tier.pk-no5 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s6]:checked ~ .pk-flow .pk-tier.pk-no6 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s7]:checked ~ .pk-flow .pk-tier.pk-no7 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s8]:checked ~ .pk-flow .pk-tier.pk-no8 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s9]:checked ~ .pk-flow .pk-tier.pk-no9 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s10]:checked ~ .pk-flow .pk-tier.pk-no10 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s11]:checked ~ .pk-flow .pk-tier.pk-no11 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s12]:checked ~ .pk-flow .pk-tier.pk-no12 .pk-timerow,.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-tier.pk-no13 .pk-timerow{display:none}
.ggp-pk input[data-pk=mg]:checked ~ input[data-pk=s13]:checked ~ .pk-flow .pk-timerow{display:none}

/* Each help checkbox is emitted immediately before its own modal, so this single
   adjacent-sibling rule opens exactly the right one. A ~ rule would open them all,
   and a per-key rule would break the moment a new feature is added in the editor. */
.ggp-pk .pk-hr:checked + .pk-modal{display:flex}

/* focus. Never removed, 3px offset, always the accent. */
.ggp-pk input[data-pk=m1]:focus-visible ~ .pk-flow .pk-pick:first-child,.ggp-pk input[data-pk=m2]:focus-visible ~ .pk-flow .pk-pick:nth-child(2),.ggp-pk input[data-pk=mg]:focus-visible ~ .pk-flow .pk-g .pk-face{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-card)}
.ggp-pk a:focus-visible,.ggp-pk summary:focus-visible,.ggp-pk label:focus-within{outline:2px solid var(--accent);outline-offset:3px}

/* responsive */
@media(max-width:900px){
/* ---- one column changes what the layout is FOR -------------------------
   The icon-above-centred-label cell and the dash placeholders both exist to
   keep three columns line-for-line comparable. In a single column there is
   nothing to align with, so measured on a 375px screen Essential was 1745px
   tall with 55% of that empty dash rows, and the three packages together came
   to 5042px, 6.2 phone screens. Below this breakpoint the dead rows go and
   each inclusion becomes a compact icon + label row. -------------------- */
/* Pouya, 23 Aug: on a phone drop the icon list entirely. A package card is
   name, price, how long the shoot is, and Book. Everything that used to be a
   row now lives behind the "?" beside the package name. */
.ggp-pk .pk-line{display:none}
.ggp-pk .pk-line-time{display:flex}
.ggp-pk .pk-line-time .pk-mark{display:none}
.ggp-pk .pk-line-time .pk-cell{padding:0;justify-content:flex-start;gap:0}
.ggp-pk .pk-line-time .pk-lbl{font-size:1.0625rem;font-weight:600;letter-spacing:-.012em;color:var(--label)}
/* the duration only: the campus-spots half of the merged label stands down */
.ggp-pk .pk-line-time .pk-sep,.ggp-pk .pk-line-time .pk-part-2{display:none}
.ggp-pk .pk-line-none{display:none}
.ggp-pk .pk-rows{gap:13px;margin:4px 0 22px}
.ggp-pk .pk-line{flex-direction:column;gap:13px}
/* The base rule is .pk-line .pk-cell{flex:1 1 0}, which sizes on the MAIN axis.
   Once the line becomes a column that basis applies to HEIGHT, so every cell
   collapsed to zero and the rows drew on top of each other. */
.ggp-pk .pk-line .pk-cell{flex:0 0 auto}
.ggp-pk .pk-cell{position:relative;flex-direction:row;align-items:center;justify-content:flex-start;text-align:left;min-height:0;gap:14px;padding-right:34px}
.ggp-pk .pk-mark{position:static;flex:0 0 auto}
.ggp-pk .pk-i,.ggp-pk .pk-i-custom{width:34px;height:34px;flex:0 0 34px}
.ggp-pk .pk-lbl,.ggp-pk .pk-line-2 .pk-lbl,.ggp-pk .pk-merged .pk-lbl{font-size:1rem;line-height:1.35;max-width:none;text-align:left}
/* the badge anchors to the row now, not to the icon */
.ggp-pk .pk-q{top:50%;right:0;transform:translateY(-50%)}
.ggp-pk .pk-q:active{transform:translateY(-50%) scale(.9)}
.ggp-pk .pk-tier{padding:20px 18px}
.ggp-pk .pk-price{margin:14px 0;padding-bottom:14px;min-height:0}
.ggp-pk .pk-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}
.ggp-pk .pk-picks{flex-direction:column;align-items:stretch;max-width:420px;margin:0 auto}
.ggp-pk .pk-pick{margin:0 0 12px}
.ggp-pk .pk-shot{max-width:100%}
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-pick:not(.pk-g){margin-bottom:0;padding-top:0;padding-bottom:0;flex-basis:0;height:0;overflow:clip}
}
@media(max-width:640px){
/* Phones: three full-width 1:1 photos is ~1300px of scrolling before the first
   decision, so each card becomes a thumbnail + label row. */
.ggp-pk .pk-pick:not(.pk-g),.ggp-pk .pk-face{display:grid;grid-template-columns:92px 1fr;column-gap:14px;align-items:center}
.ggp-pk .pk-shot{grid-row:1 / span 2;width:92px;margin-bottom:0;border-radius:var(--r-control)}
.ggp-pk .pk-pt{align-self:end;padding:0}
.ggp-pk .pk-ps{align-self:start;padding:0;margin-top:3px}
.ggp-pk .pk-pick{padding:12px}
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-g .pk-face{display:flex;flex-direction:column}
.ggp-pk input[data-pk=mg]:checked ~ .pk-flow .pk-g .pk-shot{width:112px;max-width:112px}
.ggp-pk .pk-gcard{min-width:0;flex:1 1 100px;padding:16px 12px}
.ggp-pk .pk-opts{max-width:100%}
.ggp-pk .pk-cta,.ggp-pk .pk-more{width:100%}
}

/* ---- the three accessibility signals. Independent; any combination. ---- */
@media(prefers-reduced-motion:reduce){
.ggp-pk *,.ggp-pk *::before,.ggp-pk *::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
.ggp-pk .pk-sl{opacity:1}
.ggp-pk .pk-sl2,.ggp-pk .pk-sl3,.ggp-pk .pk-sl4,.ggp-pk .pk-sl5{opacity:0}
.ggp-pk .pk-pick:active,.ggp-pk .pk-cta:active,.ggp-pk .pk-more:active,.ggp-pk .pk-opt:active,.ggp-pk .pk-gcard:active,.ggp-pk .pk-change:active,.ggp-pk .pk-modal-x:active,.ggp-pk .pk-tq:active,.ggp-pk .pk-q:active{transform:none}
}
/* On phones the badge is vertically centred with a transform, so "no motion"
   there means keeping that transform, not dropping it. */
@media(prefers-reduced-motion:reduce) and (max-width:900px){
.ggp-pk .pk-q,.ggp-pk .pk-q:active{transform:translateY(-50%)}
}
@media(prefers-reduced-transparency:reduce){
.ggp-pk .pk-modal-bg{background:rgba(0,0,0,.72)}
.ggp-pk .pk-gcard,.ggp-pk .pk-opt,.ggp-pk .pk-q,.ggp-pk .pk-modal-x,.ggp-pk .pk-cta-off{background:var(--bg-2)}
}
@media(prefers-contrast:more){
.ggp-pk{--label-2:rgba(60,60,67,.92);--label-3:rgba(60,60,67,.75);--sep:rgba(60,60,67,.65)}
.ggp-pk .pk-pick,.ggp-pk .pk-tier,.ggp-pk .pk-opts,.ggp-pk .pk-modal-box{border:1px solid var(--label)}
.ggp-pk .pk-gcard,.ggp-pk .pk-opt{border-color:var(--label)}
.ggp-pk .pk-dash{color:var(--label-2)}
}

/* ---- dark mode, opt-in. -------------------------------------------------
   The site header and footer are still light-only, so a dark pricing block on
   a light page would read as broken. These values are correct and tested;
   they switch on the day <body> carries ggp-dark, and not before. ------- */
@media(prefers-color-scheme:dark){
body.ggp-dark .ggp-pk{
  --accent:#ff5a70;--accent-hover:#ff7285;--accent-pressed:#e04a60;
  --accent-fill:rgba(255,90,112,.16);--accent-fill-2:rgba(255,90,112,.24);--accent-line:rgba(255,90,112,.36);
  --label:#fff;--label-2:rgba(235,235,245,.62);--label-3:rgba(235,235,245,.42);--label-4:rgba(235,235,245,.24);
  --bg:#000;--bg-2:#1c1c1e;--bg-3:#1c1c1e;--bg-elevated:#1c1c1e;
  --fill:rgba(120,120,128,.36);--fill-2:rgba(120,120,128,.32);--fill-3:rgba(120,120,128,.24);
  --sep:rgba(84,84,88,.60);--sep-opaque:#38383a;--scrim:rgba(0,0,0,.48)
}
}
