/* Shared presentation for new and existing Content Studio pages. */
.utpcs-main { margin-top: 0 !important; }
.utpcs-content {
    --utpcs-green: var(--wp--preset--color--custom-utp-green, #1e5a3a);
    --utpcs-ink: var(--wp--preset--color--custom-utp-black, #1f1f1f);
    --utpcs-heading: var(--utpcs-ink);
    --utpcs-text: #415047;
    --utpcs-accent: var(--utpcs-green);
    --utpcs-link: var(--utpcs-green);
    --utpcs-gutter: clamp(22px, 4vw, 40px);
    --utpcs-band-padding: max(var(--utpcs-gutter), calc((100% - 1140px) / 2));
    --utpcs-gradient: linear-gradient(135deg, #1f1f1f 0%, #1f1f1f 48%, #123824 100%);
    font-family: var(--wp--preset--font-family--inter, Inter, Arial, sans-serif);
    color: var(--utpcs-text);
    background: #fff;
    font-size: 17px;
    line-height: 1.7;
    width: 100%;
    max-width: none !important;
    margin: 0 auto !important;
}
.utpcs-content *, .utpcs-content *::before, .utpcs-content *::after { box-sizing: border-box; }
.utpcs-content > .wp-block-group { margin-block-start: 0 !important; }
.utpcs-content h1, .utpcs-content h2, .utpcs-content h3 {
    color: var(--utpcs-heading);
    font-family: inherit;
    font-weight: 700;
    letter-spacing: -.035em;
    text-wrap: balance;
    overflow-wrap: break-word;
}
.utpcs-content h1 { font-size: clamp(38px, 5vw, 72px); line-height: 1.08; max-width: 21ch; margin: 18px 0 26px; }
.utpcs-content h2 { font-size: clamp(28px, 3.25vw, 44px); line-height: 1.16; max-width: 29ch; margin: 0 0 26px; }
.utpcs-content h2::before { content: ""; display: block; width: 46px; height: 3px; margin-bottom: 22px; background: var(--utpcs-accent); border-radius: 3px; }
.utpcs-content h3 { font-size: 20px; line-height: 1.3; letter-spacing: -.02em; margin: 0 0 12px; }
.utpcs-content p { color: var(--utpcs-text); max-width: 68ch; margin: 0 0 20px; text-wrap: pretty; overflow-wrap: break-word; }
.utpcs-content a { color: var(--utpcs-link); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.utpcs-content :is(a, summary):focus-visible { outline: 3px solid var(--utpcs-link); outline-offset: 5px; }

/* Full-width bands preserve the original saved text and block structure. */
.utpcs-content > .utpcs-hero, .utpcs-content > .utpcs-section {
    width: 100%; max-width: none; margin: 0 auto;
    padding: clamp(52px, 6.5vw, 88px) var(--utpcs-band-padding);
    border: 0; background: #fff;
}
.utpcs-content > .utpcs-hero, .utpcs-content > .utpcs-section:nth-child(odd), .utpcs-content > .utpcs-cta {
    --utpcs-heading: #fff; --utpcs-text: #e7f0e9; --utpcs-accent: #c1e0cd; --utpcs-link: #fff;
    color: var(--utpcs-text); background: var(--utpcs-gradient);
}
.utpcs-content > .utpcs-hero { padding-top: clamp(64px, 7.2vw, 100px); padding-bottom: clamp(64px, 7.2vw, 100px); }
.utpcs-content .utpcs-hero > p:not(.utpcs-eyebrow), .utpcs-content .utpcs-hero-copy > p:not(.utpcs-eyebrow) { font-size: clamp(17px, 1.5vw, 19px); line-height: 1.75; max-width: 61ch; }
.utpcs-content .utpcs-eyebrow { display: flex; align-items: center; gap: 12px; color: var(--utpcs-accent); font-size: 11px; line-height: 1.65; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; margin-bottom: 18px; }
.utpcs-content .utpcs-eyebrow::before { content: ""; flex: 0 0 28px; height: 2px; background: currentColor; }
.utpcs-content .utpcs-split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; gap: clamp(28px, 5vw, 64px); }
.utpcs-content .utpcs-split > div { min-width: 0; margin-block-start: 0; }
.utpcs-content .utpcs-hero.utpcs-split h1 { font-size: clamp(38px, 4.5vw, 62px); max-width: 18ch; }

/* Alternate the visual photo position on desktop; mobile keeps copy first. */
.utpcs-content > .utpcs-section.utpcs-split:nth-child(odd) > .utpcs-section-copy { order: 2; }
.utpcs-content > .utpcs-section.utpcs-split:nth-child(odd) > .utpcs-section-photos { order: 1; }
.utpcs-content img { display: block; max-width: 100%; height: auto; border-radius: 12px; }
.utpcs-content figure { margin: 26px 0 0; }
.utpcs-content .utpcs-split figure { margin: 0; }
.utpcs-content :is(.utpcs-hero-photo, .utpcs-section-photos) { display: grid; gap: 18px; }
.utpcs-content :is(.utpcs-hero-photo, .utpcs-section-photos) img { width: 100%; max-height: 540px; object-fit: contain; background: #edf2ee; border: 1px solid #dce5df; box-shadow: 0 14px 32px rgb(0 0 0 / 12%); }
.utpcs-content figcaption { color: var(--utpcs-text); font-size: 13px; line-height: 1.55; margin-top: 12px; }

.utpcs-content .utpcs-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 20px; margin: 28px 0 0; }
.utpcs-content .utpcs-card, .utpcs-content .wp-block-details, .utpcs-content .wp-block-table {
    --utpcs-heading: var(--utpcs-ink); --utpcs-text: #415047; --utpcs-accent: var(--utpcs-green); --utpcs-link: var(--utpcs-green);
    color: var(--utpcs-text);
}
.utpcs-content .utpcs-cards > .utpcs-card { margin: 0; background: #fff; border: 1px solid #dfe7e1; border-top: 3px solid var(--utpcs-green); border-radius: 12px; padding: 28px; box-shadow: 0 5px 18px rgb(20 45 31 / 4%); }
.utpcs-content .utpcs-card p { font-size: 16px; line-height: 1.65; }
.utpcs-content .utpcs-card p:last-child, .utpcs-content .utpcs-section-copy > p:last-child { margin-bottom: 0; }

.utpcs-content .wp-block-buttons { display: flex; gap: 12px; flex-wrap: wrap; margin: 30px 0 0; }
.utpcs-content .wp-block-button__link {
    display: inline-flex; align-items: center; justify-content: center; min-height: 50px;
    font-family: inherit; font-size: 15px; font-weight: 650; line-height: 1.5; padding: 13px 23px;
    background: var(--utpcs-green); color: #fff; border: 2px solid var(--utpcs-green);
    border-radius: 6px; text-align: center; text-decoration: none;
    transition: background-color .15s ease, color .15s ease;
}
.utpcs-content .is-style-outline .wp-block-button__link { background: transparent; color: var(--utpcs-link); border-color: var(--utpcs-link); }
.utpcs-content :is(.utpcs-hero, .utpcs-cta) .wp-block-button__link { color: #173e2c; background: #fff; border-color: #fff; }
.utpcs-content :is(.utpcs-hero, .utpcs-cta) .is-style-outline .wp-block-button__link { color: #fff; background: transparent; border-color: #c1e0cd; }
.utpcs-content .wp-block-button__link:hover { background: #153e29; color: #fff; }
.utpcs-content :is(.utpcs-hero, .utpcs-cta) .wp-block-button__link:hover { background: #e1eee6; color: #173e2c; }

.utpcs-content .wp-block-list { max-width: 72ch; padding-left: 25px; margin: 24px 0 0; }
.utpcs-content li { padding-left: 6px; margin: 14px 0; }
.utpcs-content li::marker { color: var(--utpcs-accent); font-weight: 700; }
.utpcs-content .wp-block-table { overflow-x: auto; background: #fff; border: 1px solid #dfe7e1; border-radius: 10px; }
.utpcs-content table { color: var(--utpcs-text); border-collapse: collapse; width: 100%; font-size: 16px; table-layout: fixed; }
.utpcs-content th, .utpcs-content td { border: 1px solid #dfe7e1; padding: 18px; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.utpcs-content th { color: var(--utpcs-ink); background: #edf3ee; font-weight: 700; }
.utpcs-content .wp-block-details { margin: 14px 0 0; padding: 20px 24px; background: #fff; border: 1px solid #dfe7e1; border-radius: 10px; }
.utpcs-content summary { cursor: pointer; color: var(--utpcs-heading); font-size: 17px; font-weight: 650; line-height: 1.55; }
.utpcs-content summary::marker { color: var(--utpcs-green); }
.utpcs-content details p { margin-top: 14px; margin-bottom: 4px; font-size: 16px; }
.utpcs-content .utpcs-related p { margin-bottom: 14px; }
.utpcs-content .utpcs-related a { display: inline-block; font-weight: 600; }

.utpcs-content > .utpcs-cta {
    width: calc(100% - var(--utpcs-gutter) * 2); max-width: 1140px;
    margin: clamp(38px, 5.5vw, 72px) auto !important;
    padding: clamp(30px, 5vw, 58px); border: 0; border-radius: 18px;
}
.utpcs-content .utpcs-cta h2 { max-width: 25ch; }

/* Articles retain a reading column between their branded hero and final CTA. */
/* Photo groups use ordinary editable WordPress groups and images. */
.utpcs-content .utpcs-photo-story{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:30px 0 0;align-items:start}
.utpcs-content .utpcs-photo-timeline{grid-template-columns:repeat(3,minmax(0,1fr))}
.utpcs-content .utpcs-photo-stage{--utpcs-text:#415047;--utpcs-heading:var(--utpcs-ink);min-width:0;background:#fff;color:var(--utpcs-text);border:1px solid #dce5df;border-radius:14px;padding:18px;margin:0;box-shadow:0 10px 28px rgb(0 0 0 / 7%)}
.utpcs-content .utpcs-photo-label{display:inline-block;background:#edf3ee;color:#244b35;font-size:12px;font-weight:700;letter-spacing:.065em;line-height:1.5;text-transform:uppercase;padding:7px 12px;border-radius:5px;margin:0 0 14px}
.utpcs-content .utpcs-stage-after>.utpcs-photo-label{background:var(--utpcs-green);color:#fff}
.utpcs-content .utpcs-photo-stage figure{margin:0 0 18px}.utpcs-content .utpcs-photo-stage figure:last-child{margin-bottom:0}
.utpcs-content .utpcs-photo-stage img,.utpcs-content .utpcs-photo-gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#edf2ee;border:1px solid #dce5df;border-radius:9px}
.utpcs-content .utpcs-photo-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:22px;margin:28px 0 0;align-items:start}
.utpcs-content .utpcs-photo-gallery figure{--utpcs-text:#415047;min-width:0;background:#fff;border:1px solid #dce5df;border-radius:14px;padding:14px;margin:0}
.utpcs-content .utpcs-photo-gallery.utpcs-single-photo{grid-template-columns:minmax(0,1fr);max-width:760px}
.utpcs-content .utpcs-photo-gallery.utpcs-single-photo img{aspect-ratio:auto;max-height:540px}
.utpcs-content .utpcs-section-photos .utpcs-photo-gallery{grid-template-columns:1fr;margin:0}
.utpcs-content .utpcs-photo-story+.utpcs-photo-gallery{margin-top:22px}
@media(max-width:900px){.utpcs-content .utpcs-photo-timeline{grid-template-columns:1fr}}
@media(max-width:740px){.utpcs-content .utpcs-photo-story{grid-template-columns:1fr;gap:18px}.utpcs-content .utpcs-photo-gallery{grid-template-columns:1fr;gap:18px}.utpcs-content .utpcs-photo-stage{padding:16px}.utpcs-content .utpcs-photo-story,.utpcs-content .utpcs-photo-gallery{margin-top:24px}}

body.single-post .utpcs-content > .utpcs-section {
    --utpcs-heading: var(--utpcs-ink); --utpcs-text: #415047; --utpcs-accent: var(--utpcs-green); --utpcs-link: var(--utpcs-green);
    max-width: 900px; padding: 44px var(--utpcs-gutter); background: #fff; border-bottom: 1px solid #e3eae5;
}

@media (max-width: 740px) {
    .utpcs-content { font-size: 16px; }
    .utpcs-content > .utpcs-hero, .utpcs-content > .utpcs-section { padding: 44px var(--utpcs-gutter); }
    .utpcs-content > .utpcs-hero { padding-top: 54px; padding-bottom: 54px; }
    .utpcs-content h1 { font-size: clamp(34px, 8.5vw, 46px); }
    .utpcs-content h2 { font-size: clamp(27px, 6.5vw, 34px); margin-bottom: 22px; }
    .utpcs-content h2::before { margin-bottom: 18px; }
    .utpcs-content .utpcs-split { grid-template-columns: 1fr; gap: 30px; }
    .utpcs-content > .utpcs-section.utpcs-split:nth-child(odd) > :is(.utpcs-section-copy, .utpcs-section-photos) { order: initial; }
    .utpcs-content .utpcs-hero.utpcs-split h1 { font-size: clamp(34px, 8.5vw, 46px); max-width: 21ch; }
    .utpcs-content .utpcs-cards { grid-template-columns: 1fr; gap: 16px; }
    .utpcs-content .utpcs-cards > .utpcs-card { padding: 24px; }
    .utpcs-content .wp-block-button { width: 100%; }
    .utpcs-content .wp-block-button__link { width: 100%; }
    .utpcs-content :is(.utpcs-hero-photo, .utpcs-section-photos) img { max-height: 420px; }
    .utpcs-content th, .utpcs-content td { padding: 12px; font-size: 15px; }
    .utpcs-content .wp-block-details { padding: 18px; }
    body.single-post .utpcs-content > .utpcs-section { padding: 36px var(--utpcs-gutter); }
}
@media (prefers-reduced-motion: reduce) {
    .utpcs-content .wp-block-button__link { transition: none; }
}
