/* Corporate parties page layout (Daniel, 20 Oct 2026). Scoped to .cp-page, so no other page is affected. */
.cp-page, .cp-rv { --cp-space: clamp(64px, 8vw, 112px); --cp-side: clamp(24px, 5.5vw, 80px); }
.cp-page .pg-video { max-width: 1120px; padding-block: 48px 64px; }
.cp-page .pg-video .video-frame { box-shadow: 0 22px 60px -38px #10331b80; }
:is(.cp-page, .cp-rv) .clients { margin-top: 0; padding-block: 44px; }
:is(.cp-page, .cp-rv) .clients h2 { font-size: clamp(26px, 3vw, 40px); margin-bottom: 24px; }
:is(.cp-page, .cp-rv) .reviews-head { padding: var(--cp-space) var(--cp-side) 32px; }
:is(.cp-page, .cp-rv) .reviews { width: min(1240px, 100% - 2 * var(--cp-side)); padding: 0 0 var(--cp-space); margin-inline: auto; }
.cp-page .pg-about { width: min(1240px, 100% - 2 * var(--cp-side)); grid-template-columns: 1.05fr 1fr; gap: clamp(32px,6vw,88px); padding-block: 0 var(--cp-space); align-items: center; }
.cp-page .pg-about .pg-photo { overflow: visible; }
.cp-page .pg-about .pg-photo > img:first-child { aspect-ratio: 2400 / 1686; height: auto; object-fit: contain; border-radius: 18px; }
.cp-page .pg-about .pg-photo { isolation: isolate; margin: 0 22px 22px 0; }
.cp-page .pg-about .pg-photo::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; z-index: -1; border: 2px solid var(--gold); border-radius: 18px; }
.cp-page .pg-about-text { text-align: left; }
.cp-page .pg-about-text h2 { color: var(--green); font-size: clamp(38px,4.5vw,62px); margin-bottom: 28px; }
.cp-page .pg-about-text p { font-size: 18px; line-height: 1.8; }
.cp-page .pg-about-text p:last-child { margin-bottom: 0; }
.cp-page .pg-about-text a { text-decoration-color: var(--gold); text-underline-offset: 5px; }
.cp-page .pg-features { width: 100%; background: var(--green); color: var(--cream); padding: var(--cp-space) max(var(--cp-side), calc((100% - 1240px) / 2)); display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px 56px; }
.cp-page .pg-features > hr { display: none; }
.cp-page .pg-features-title { grid-column: 1 / -1; max-width: 850px; text-align: left; color: var(--gold); font-size: clamp(32px,4vw,56px); line-height: 1.15; margin: 0; padding-left: 28px; border-left: 2px solid var(--gold); }
.cp-page .pg-feature, .cp-page .pg-feature.flip { display: flex; flex-direction: column; gap: 30px; align-items: stretch; margin: 0; }
.cp-page .pg-feature:first-of-type { grid-column: 1 / -1; display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px,6vw,80px); align-items: center; padding-bottom: 64px; border-bottom: 1px solid #d3b89045; }
.cp-page .pg-feature > .pg-photo { order: -1; }
.cp-page .pg-feature .pg-photo > img:first-child { height: auto; aspect-ratio: 16 / 10; border-radius: 18px; }
.cp-page .pg-feature:first-of-type .pg-photo > img:first-child { aspect-ratio: 4 / 3; }
.cp-page .pg-feature-text { text-align: left; padding: 0; }
.cp-page .pg-feature-text .pg-kicker { color: var(--gold); font-size: 14px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.cp-page .pg-feature-title { color: var(--cream); font-size: clamp(30px,3.2vw,44px); line-height: 1.15; text-decoration: none; margin: 0 0 20px; }
.cp-page .pg-feature-text p:not(.pg-kicker) { font-size: 18px; line-height: 1.8; max-width: 52ch; }
.cp-page .pg-feature-text a { color: var(--gold); text-decoration: underline; text-underline-offset: 4px; }
.cp-page > .pg-split:last-child { width: min(1240px,100% - 2 * var(--cp-side)); grid-template-columns: minmax(0,1fr) minmax(0,1fr); padding-block: var(--cp-space); align-items: center; gap: clamp(32px,6vw,80px); }
.cp-page > .pg-split:last-child .pg-form h2 { text-align: left; font-size: clamp(36px,4vw,54px); color: var(--green); margin-bottom: 28px; }
.cp-page > .pg-split:last-child .pg-photo { min-height: 0; align-self: center; border-radius: 18px; }
.cp-page > .pg-split:last-child .pg-photo > img { aspect-ratio: 4 / 5; height: auto; }
@media(max-width:900px) {
 .cp-page .pg-about { grid-template-columns: 1fr; gap: 36px; }
 .cp-page .pg-about .pg-photo { margin: 0 14px 14px 0; }
 .cp-page .pg-about .pg-photo > img:first-child { aspect-ratio: 2400 / 1686; height: auto; }
 .cp-page .pg-features { grid-template-columns: 1fr; gap: 48px; }
 .cp-page .pg-feature:first-of-type { grid-template-columns: 1fr; gap: 28px; padding-bottom: 40px; }
 .cp-page .pg-feature { padding-bottom: 40px; border-bottom: 1px solid #d3b89045; }
 .cp-page .pg-feature:last-child { padding-bottom: 0; border-bottom: 0; }
 .cp-page > .pg-split:last-child { grid-template-columns: 1fr; }
 .cp-page > .pg-split:last-child .pg-photo > img { aspect-ratio: 4 / 3; }
}
@media(max-width:540px) {
 .cp-page .pg-video { padding-block: 28px 40px; }
 .cp-page .pg-features-title { padding-left: 18px; }
 .cp-page .pg-about-text p, .cp-page .pg-feature-text p:not(.pg-kicker) { font-size: 16px; line-height: 1.75; }
}

/* Daniel's review: preserve Google cards, full reviews and uncropped landscape photography. */
.cp-page .pg-split .pg-photo:has([data-slot$="/hero"]) { border-radius: 18px; overflow: hidden; }
:is(.cp-page, .cp-rv) .g-review .g-text { display: block; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; max-height: none; }
:is(.cp-page, .cp-rv) .g-review button.g-more { display: none; }
.cp-page .pg-photo .foil, .cp-page .pg-photo .foil-glint { display: none; }

/* Daniel, 20 Oct 2026: more room at the sides of text, and the company logos on the review cards look the same size.
   RBC is left as it was (36px tall). The Wowcher and Reddit files have empty space around the artwork, so they are
   scaled up (layout unchanged) until their visible artwork is about the same size as RBC's. */
:is(.cp-page, .cp-rv) .g-review { padding: 16px 20px 18px; }
:is(.cp-page, .cp-rv) .g-review.has-brand { padding-bottom: 72px; }
:is(.cp-page, .cp-rv) .rev-brand, :is(.cp-page, .cp-rv) .rev-brand.big { right: 20px; bottom: 14px; height: 36px; max-width: 150px; }
:is(.cp-page, .cp-rv) .rev-brand.big { height: 48px; max-width: 170px; }
:is(.cp-page, .cp-rv) .rev-brand[alt="Reddit"] { height: 30px; max-width: 150px; }
:is(.cp-page, .cp-rv) .rev-brand[alt="Wowcher"] { transform: translateX(4px) scale(2.4); transform-origin: right center; }

/* Hosting page (and its ad copies): both About photos and the bottom photo are 3:2 landscape, so none is cropped. */
.cp-hosting .pg-about .pg-photo > img:first-child { aspect-ratio: 3 / 2; }
.cp-hosting .pg-about-pics { gap: 40px; }
.cp-hosting > .pg-split:last-child .pg-photo > img { aspect-ratio: 3 / 2; }
@media(max-width:900px) { .cp-hosting > .pg-split:last-child .pg-photo > img { aspect-ratio: 3 / 2; } }

/* Weddings page (and its ad copy): portrait About photo shown whole, landscape bottom photo uncropped, moments text with the same side room. */
.cp-weddings .pg-about { grid-template-columns: minmax(0, .72fr) minmax(0, 1fr); }
.cp-weddings .pg-about .pg-photo > img:first-child { aspect-ratio: 1414 / 2000; }
.cp-weddings .pg-narrow, .cp-trade .pg-narrow { width: min(1174px, 100% - 2 * var(--cp-side)); }
.cp-weddings > .pg-split:last-child .pg-photo > img { aspect-ratio: 3 / 2; }
@media(max-width:900px) {
 .cp-weddings .pg-about { grid-template-columns: 1fr; }
 .cp-weddings .pg-about .pg-photo { width: min(100% - 14px, 420px); justify-self: center; }
 .cp-weddings > .pg-split:last-child .pg-photo > img { aspect-ratio: 3 / 2; }
}

/* Second badge (Professional MC Association) sits beside The Magic Circle one on the weddings About photo. */
.cp-page .pg-badge-2 { right: calc(30px + clamp(70px, 8.2vw, 118px)); }

/* About page: same look; the headshot is as tall as the text beside it, with the gold edge box behind it. */
.cp-about .pg-wrap { width: min(1240px, 100% - 2 * var(--cp-side)); }
.cp-about .pg-bio { align-items: stretch; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); }
.cp-about .pg-bio > a { display: block; position: relative; margin: 0 22px 0 0; isolation: isolate; }
.cp-about .pg-bio .pg-photo { position: absolute; inset: 0; overflow: visible; border-radius: 0; margin: 0; }
.cp-about .pg-bio > a::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; z-index: -1; border: 2px solid var(--gold); border-radius: 18px; }
.cp-about .pg-bio .pg-photo > img:first-child { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 14%; border-radius: 18px; }
.cp-about .pg-quote-card { padding-inline: 26px; }
.cp-about > .pg-split:last-child { width: min(1240px, 100% - 2 * var(--cp-side)); }
@media(max-width:900px) {
 .cp-about .pg-bio { grid-template-columns: 1fr; }
 .cp-about .pg-bio > a { width: min(100% - 14px, 420px); justify-self: center; margin: 0 14px 14px 0; aspect-ratio: 700 / 1017; }
}

/* About page: bigger 5 stars on the quote cards. */
.cp-about .pg-quote-card .checked { font-size: 26px; letter-spacing: 2px; line-height: 1; }

/* Trade shows page: same side room, landscape photo beside the bottom form shown whole. */
.cp-trade .pg-wrap { width: min(1240px, 100% - 2 * var(--cp-side)); }
.cp-trade > .pg-split:last-child .pg-photo > img { aspect-ratio: 1600 / 983; }
@media(max-width:900px) { .cp-trade > .pg-split:last-child .pg-photo > img { aspect-ratio: 1600 / 983; } }

/* ===== Prose bands: trade shows and the Netskope case study (words untouched, layout varied) ===== */
.cp-band { padding-block: var(--cp-space); }
.cp-band > .pg-narrow { width: min(1174px, 100% - 2 * var(--cp-side)); }
.cp-band h2 { margin-top: 0; }
.cp-band.cp-dark { background: var(--green); color: var(--cream); }
.cp-band.cp-dark h2, .cp-band.cp-dark a { color: var(--gold); }
.cp-band.cp-dark p, .cp-band.cp-dark li { color: var(--cream); }
.cp-band ul { list-style: none; padding: 0; margin: 0; }
.cp-band li { margin: 0; }
.cp-brand li, .cp-stand li { padding: 18px 22px; background: #fff; border: 1px solid #d3b89099; border-left: 4px solid var(--gold); border-radius: 12px; font-size: 17px; line-height: 1.5; }
.cp-band blockquote { margin: 0; }
.cp-band cite { display: block; margin-top: 16px; font-style: normal; font-size: 16px; font-weight: 600; }

/* two columns: words on the left, the list as cards on the right */
.cp-brand > .pg-narrow, .cp-tech > .pg-narrow, .cp-results > .pg-narrow, .cp-brief > .pg-narrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(32px, 6vw, 88px); align-items: start; }
.cp-brand > .pg-narrow > :not(ul), .cp-tech > .pg-narrow > :not(blockquote) { grid-column: 1; }
.cp-brand ul { grid-column: 2; grid-row: 1 / span 4; display: grid; gap: 14px; }
.cp-tech blockquote { grid-column: 2; grid-row: 1 / span 3; padding-left: 28px; border-left: 2px solid var(--gold); font-family: var(--font-head); font-weight: 700; font-size: clamp(22px, 2.4vw, 32px); line-height: 1.3; color: var(--cream); }
.cp-tech cite { font-family: inherit; font-weight: 400; color: var(--gold); }

/* cream band, list as a grid of cards */
.cp-stand { background: var(--cream); }
.cp-stand > .pg-narrow > :not(ul) { max-width: 62ch; }
.cp-stand ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 32px 0; }

/* a case study as a card with a gold edge behind it */
.cp-cs > .pg-narrow { position: relative; isolation: isolate; width: min(940px, 100% - 2 * var(--cp-side) - 18px); margin-right: auto; margin-left: max(var(--cp-side), calc((100% - 940px) / 2)); padding: clamp(28px, 4vw, 56px); background: #fff; border-radius: 18px; }
.cp-cs > .pg-narrow::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 2px solid var(--gold); border-radius: 18px; z-index: -1; }
.cp-cs blockquote { font-family: var(--font-head); font-weight: 700; font-size: clamp(20px, 2vw, 26px); line-height: 1.35; color: var(--green); margin: 24px 0; }
.cp-cs a { text-decoration: underline; text-underline-offset: 4px; }

/* Netskope case study */
.cp-brief > .pg-narrow > h2 { grid-column: 1; grid-row: 1 / span 3; font-size: clamp(34px, 4vw, 56px); color: var(--green); }
.cp-brief > .pg-narrow > p { grid-column: 2; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.6; }
.cp-results > .pg-narrow > h2 { grid-column: 1; grid-row: 1 / span 3; font-size: clamp(34px, 4vw, 56px); }
.cp-results > .pg-narrow > p { grid-column: 2; font-size: clamp(18px, 1.5vw, 21px); line-height: 1.65; }
.cp-hl { color: var(--gold); font-weight: 700; }
.cp-words > .pg-narrow { text-align: center; }
.cp-words h2 { color: var(--green); }
.cp-words blockquote { max-width: 30em; margin: 0 auto; font-family: var(--font-head); font-weight: 700; font-size: clamp(24px, 2.8vw, 38px); line-height: 1.25; color: var(--green); background: none; border: 0; padding: 0; }
.cp-words blockquote::before { content: ""; display: block; width: 56px; height: 2px; margin: 0 auto 28px; background: var(--gold); transform: skewX(21deg); }
.cp-words p { margin-top: 22px; }
.cp-pair { padding-top: 0; }
.cp-pair > .pg-narrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(32px, 6vw, 88px); }
.cp-pair h2 { border-top: 2px solid var(--gold); padding-top: 22px; font-size: clamp(26px, 2.8vw, 38px); color: var(--green); }
.cp-pair h2:nth-of-type(1), .cp-pair p:nth-of-type(1) { grid-column: 1; }
.cp-pair h2:nth-of-type(2), .cp-pair p:nth-of-type(2) { grid-column: 2; }
.cp-bigquote { background: var(--cream); }
.cp-bigquote > .pg-narrow { text-align: center; }
.cp-bigquote blockquote { max-width: 34em; margin: 0 auto; font-family: var(--font-head); font-weight: 700; font-size: clamp(22px, 2.6vw, 34px); line-height: 1.3; color: var(--green); background: none; border: 0; padding: 0; }
.cp-bigquote cite { color: var(--brown); font-family: inherit; font-weight: 400; }
.cp-cta { padding-block: clamp(48px, 6vw, 84px); }
.cp-cta > .pg-narrow { text-align: center; }
.cp-cta p { font-family: var(--font-head); font-weight: 700; font-size: clamp(24px, 2.8vw, 38px); line-height: 1.25; margin: 0; }
.cp-cta a { text-decoration: underline; text-underline-offset: 6px; }
.cp-ns .pg-wrap { width: min(1240px, 100% - 2 * var(--cp-side)); }
.cp-ns > .pg-split:last-child .pg-photo > img { aspect-ratio: 1600 / 1135; }

@media(max-width:900px) {
 .cp-brand > .pg-narrow, .cp-tech > .pg-narrow, .cp-results > .pg-narrow, .cp-brief > .pg-narrow, .cp-pair > .pg-narrow { display: block; }
 .cp-brand ul { margin-top: 24px; }
 .cp-tech blockquote { margin: 28px 0; }
 .cp-brief > .pg-narrow > h2, .cp-results > .pg-narrow > h2 { margin-bottom: 20px; }
 .cp-pair h2 { margin-top: 36px; }
 .cp-pair h2:first-of-type { margin-top: 0; }
 .cp-ns > .pg-split:last-child .pg-photo > img { aspect-ratio: 1600 / 1135; }
 .cp-cs > .pg-narrow { width: min(100% - 2 * var(--cp-side) - 14px, 940px); margin-left: var(--cp-side); }
}

/* ===== Custom magic ===== */
.cp-custom .cm-hero, .cp-custom .cm-mosaic, .cp-custom .cm-chips { width: min(1240px, 100% - 2 * var(--cp-side)); }
.cp-custom .cm-promo { width: min(1040px, 100% - 2 * var(--cp-side)); }
.cp-custom .cm-steps { width: min(940px, 100% - 2 * var(--cp-side)); }
.cp-custom .cm-statement, .cp-custom .cm-case-wrap { padding-inline: var(--cp-side); }
.cp-custom .cm-why, .cp-custom .cm-cta { padding-inline: max(var(--cp-side), calc((100% - 1240px) / 2)); }
.cp-custom .cm-cut, .cp-custom .cm-hero-visual img, .cp-custom .cm-tile > img, .cp-custom .cm-tile-green, .cp-custom .cm-tile-gold, .cp-custom .cm-case { clip-path: none; border-radius: 18px; }
.cp-custom .cm-loop { border-radius: 12px; }
.cp-custom .cm-hero-visual { position: relative; isolation: isolate; margin-right: 22px; }
.cp-custom .cm-hero-visual::before { content: ""; position: absolute; left: 22px; right: -22px; top: 22px; aspect-ratio: 3 / 2; border: 2px solid var(--gold); border-radius: 18px; z-index: -1; }
.cp-custom .cm-hero-visual figcaption { margin-top: 38px; }

/* ===== Contact ===== */
.cp-contact .cx { background: none; padding-inline: max(var(--cp-side), calc((100% - 1240px) / 2)); }
.cp-contact .cx-pic { position: relative; isolation: isolate; margin: 0 22px 22px 0; }
.cp-contact .cx-pic::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 2px solid var(--gold); border-radius: 18px; z-index: -1; }
.cp-contact .cx-pic img { clip-path: none; border-radius: 18px; aspect-ratio: 1200 / 800; }
.cp-contact .cx .form-card { border-radius: 18px; }

/* Synology card: the client's quote */
.cp-custom .cm-case-quote { margin: 30px 0 0; padding-left: 26px; border-left: 2px solid var(--gold); }
.cp-custom .cm-case-quote p { margin: 0; font-family: var(--font-head); font-weight: 700; font-size: clamp(18px, 1.7vw, 23px); line-height: 1.4; color: var(--green); }
.cp-custom .cm-case-quote footer { margin-top: 14px; font-size: 15px; letter-spacing: .12em; text-transform: uppercase; color: var(--brown); }
.cp-custom .cm-promo-text .cm-case-quote { margin: 0; }
.cp-custom .cm-promo-text .cm-case-quote p { font-size: clamp(19px, 1.9vw, 26px); }

/* ===== Synology case study ===== */
.cp-band.cp-cream { background: var(--cream); }
.cp-bigquote.cp-dark blockquote { color: var(--cream); }
.cp-bigquote.cp-dark cite { color: var(--gold); }
.cs-main-wrap { padding: clamp(8px, 2vw, 24px) var(--cp-side) var(--cp-space); }
.cs-main { position: relative; isolation: isolate; width: min(1040px, 100% - 22px); margin: 0 auto; padding-right: 22px; box-sizing: content-box; }
.cs-main img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 18px; }
.cs-main::before { content: ""; position: absolute; left: 22px; right: 0; top: 22px; aspect-ratio: 3 / 2; border: 2px solid var(--gold); border-radius: 18px; z-index: -1; }
.cs-main figcaption { margin-top: 38px; font-size: 14px; color: #4b5f50; text-align: center; }
.cp-gallery { display: flex; gap: clamp(12px, 1.6vw, 22px); width: min(1240px, 100% - 2 * var(--cp-side)); margin: 0 auto; padding-block: var(--cp-space); }
.cp-gallery figure { margin: 0; flex: var(--ar) 1 0; min-width: 0; }
.cp-gallery img { display: block; width: 100%; height: auto; aspect-ratio: var(--ar); border-radius: 18px; }
.cp-closing { padding-top: 0; }
.cp-closing > .pg-narrow { text-align: center; max-width: 760px; }
.cp-closing h2 { color: var(--green); }
.cp-closing a { text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:767px) { .cp-gallery { flex-direction: column; } .cp-gallery figure { flex: none; } }

/* Synology case study: the two Synology videos side by side */
.cs-videos { display: flex; justify-content: center; align-items: flex-start; gap: clamp(24px, 5vw, 64px); width: min(1240px, 100% - 2 * var(--cp-side)); margin: 0 auto; padding-top: var(--cp-space); }
.cs-promo, .cs-nas { width: min(340px, 100%); margin: 0; }
.cs-nas video { display: block; width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 12px; }
@media(max-width:767px) { .cs-videos { flex-direction: column; align-items: center; } }
.cs-videos .cs-promo.video-frame { width: min(340px, 100%); }

.cp-synology .photo-reel { margin-top: 0; padding-bottom: var(--cp-space); }

/* Stage shows page (23 Oct 2026) */
.cp-stage .st-fig { margin: 0; }
.cp-stage .st-fig img { display: block; width: 100%; height: auto; border-radius: 18px; }
.cp-stage .st-fig figcaption { margin-top: 12px; font-size: 15px; }
.cp-stage .st-photo { padding-block: 0 var(--cp-space); max-width: 1120px; }
.cp-stage .st-screen { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(28px, 6vw, 80px); align-items: center; padding-block: 0 var(--cp-space); max-width: 1120px; }
.cp-stage .st-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 28px); padding-block: 0 var(--cp-space); max-width: 1120px; }
.cp-stage .st-trio img { aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 900px) { .cp-stage .st-screen, .cp-stage .st-trio { grid-template-columns: 1fr; } }
