/* Small layout extension for programs.php, FrontPage.php and email-communications.php.
   Reuses cogran-modern-core.css and the approved cogran-campaign-landings.css.
   Pixel-based text sizing protects these pages from the legacy site's root font size. */
#content.cp-page .cp-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
#content.cp-page .cp-hero-grid h1{font-size:clamp(46px,4.65vw,68px);line-height:1.06;letter-spacing:-.045em}
#content.cp-page .cp-hero-visual{min-width:0}
#content.cp-page .cp-photo{margin:0;overflow:hidden;border-radius:24px;background:var(--cg-soft)}
#content.cp-page .cp-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
#content.cp-page .cp-hero-visual .cp-photo{border-radius:24px 24px 72px 24px}
#content.cp-page .cp-caption-card{position:relative;display:flex;gap:18px;align-items:center;margin:-24px 22px 0;padding:24px;border:1px solid var(--cg-line);border-radius:18px;background:#fff;box-shadow:0 12px 34px #0b302211}
#content.cp-page .cp-caption-card .cl-icon{margin:0;flex-shrink:0}
#content.cp-page .cp-caption-card strong{display:block;font-size:20px;line-height:1.35;color:var(--cg-deep)}
#content.cp-page .cp-caption-card span:not(.cl-icon){display:block;font-size:15px;line-height:1.5;color:var(--cg-muted);margin-top:6px}
#content.cp-page .cp-split,#content.cp-page .cp-cta{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}
#content.cp-page .cp-split .cl-section-heading{margin-bottom:28px}
#content.cp-page .cp-split h2{font-size:clamp(34px,3.6vw,52px)}
#content.cp-page .cp-example{padding:36px;border:1px solid var(--cg-line);border-radius:24px;background:#fff;box-shadow:0 16px 40px #0b302209}
#content.cp-page .cp-example h3{font-size:30px}
#content.cp-page .cp-example .cp-example-note{font-size:14px;line-height:1.6;margin:24px 0 0}
#content.cp-page .cp-definition{margin:28px 0 0}
#content.cp-page .cp-definition>div{display:grid;grid-template-columns:1fr 1.1fr;gap:20px;padding:19px 0;border-top:1px solid var(--cg-line)}
#content.cp-page .cp-definition dt{font-size:16px;font-weight:500;color:var(--cg-muted)}
#content.cp-page .cp-definition dd{margin:0;font-size:17px;font-weight:650;color:var(--cg-ink);line-height:1.5}
#content.cp-page .cp-two-cards{display:grid;grid-template-columns:1fr 1fr;gap:28px}
#content.cp-page .cp-feature-card{border:1px solid var(--cg-line);border-radius:20px;padding:36px}
#content.cp-page .cp-feature-card:last-child{background:var(--cg-soft)}
#content.cp-page .cp-feature-card p:last-child{margin-bottom:0}
#content.cp-page .cp-journey-row{display:flex;gap:18px;align-items:center;padding:24px 0;border-bottom:1px solid var(--cg-line)}
#content.cp-page .cp-journey-row .cl-icon{margin:0;flex-shrink:0}
#content.cp-page .cp-journey-row strong{display:block;font-size:19px;line-height:1.45;color:var(--cg-ink)}
#content.cp-page .cp-journey-row span:not(.cl-icon){display:block;font-size:16px;line-height:1.5;color:var(--cg-muted);margin-top:6px}
#content.cp-page .cp-callout{display:flex;gap:20px;align-items:flex-start;padding:26px;margin-top:32px;border:1px solid var(--cg-line);border-radius:16px;background:var(--cg-soft)}
#content.cp-page .cp-callout .cl-icon{margin:0;flex-shrink:0}
#content.cp-page .cp-callout h3{font-size:24px;margin-bottom:12px}
#content.cp-page .cp-callout p{font-size:17px;margin-bottom:14px}
#content.cp-page .cp-message-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
#content.cp-page .cp-message{display:flex;flex-direction:column;padding:28px;border:1px solid var(--cg-line);border-radius:20px;background:#fff;min-width:0}
#content.cp-page .cp-message-label{display:flex;align-items:center;gap:12px;color:var(--cg-green-dark);font-size:12px;font-weight:750;letter-spacing:.06em;line-height:1.5;margin-bottom:30px}
#content.cp-page .cp-message .cp-message-subject{color:var(--cg-deep);font-size:25px;line-height:1.25;letter-spacing:-.02em;font-weight:700;margin-bottom:24px}
#content.cp-page .cp-message-body{padding-top:24px;border-top:1px solid var(--cg-line)}
#content.cp-page .cp-message-body p{font-size:17px;line-height:1.7}
#content.cp-page .cp-message .cp-message-purpose{font-size:15px;line-height:1.6;margin:auto 0 0;padding-top:24px;color:var(--cg-green-dark);font-weight:600}
#content.cp-page .cp-sms{padding:22px;background:#e7f3e9;border-radius:18px 18px 18px 4px;margin-bottom:24px}
#content.cp-page .cp-sms p{margin:0;font-size:18px;line-height:1.65;color:var(--cg-deep)}
#content.cp-page .cp-related{padding-block:48px 64px;background:var(--cg-soft)}
#content.cp-page .cp-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
#content.cp-page .cp-related-grid>a{display:block;padding-top:22px;border-top:1px solid #b7cbbc}
#content.cp-page .cp-related-grid strong{display:block;color:var(--cg-green-dark);font-size:21px;line-height:1.4}
#content.cp-page .cp-related-grid>a>span{display:block;color:var(--cg-muted);font-size:17px;line-height:1.6;margin-top:10px}
#content.cp-page .cp-related-grid>a:hover strong{text-decoration:underline;text-underline-offset:5px}
.cp-product-body .cgr-footer__cta{display:none}
@media(max-width:1080px){#content.cp-page .cp-hero-grid,#content.cp-page .cp-split,#content.cp-page .cp-cta{gap:36px}#content.cp-page .cp-message{padding:24px}}
@media(max-width:880px){#content.cp-page .cp-hero-grid,#content.cp-page .cp-split,#content.cp-page .cp-cta{grid-template-columns:1fr}#content.cp-page .cp-hero-visual{max-width:720px;width:100%}#content.cp-page .cp-message-grid{grid-template-columns:1fr}#content.cp-page .cp-message{padding:30px}#content.cp-page .cp-message-label{margin-bottom:20px}#content.cp-page .cp-split>.cp-photo{max-width:720px}}
@media(max-width:760px){#content.cp-page .cp-hero-grid h1{font-size:clamp(43px,8.8vw,64px)}#content.cp-page .cp-caption-card{padding:20px;margin:-15px 12px 0;gap:14px}#content.cp-page .cp-caption-card strong{font-size:18px}#content.cp-page .cp-example,#content.cp-page .cp-feature-card{padding:26px}#content.cp-page .cp-two-cards,#content.cp-page .cp-related-grid{grid-template-columns:1fr}#content.cp-page .cp-callout{padding:22px;gap:14px}#content.cp-page .cp-definition>div{gap:16px}#content.cp-page .cl-actions{gap:20px}#content.cp-page .cl-button{max-width:100%}}
@media(max-width:400px){#content.cp-page .cp-caption-card .cl-icon{display:none}#content.cp-page .cp-definition>div{grid-template-columns:1fr;gap:6px}#content.cp-page .cp-callout{display:block}#content.cp-page .cp-callout .cl-icon{margin-bottom:18px}}
