/* Shared styles for the Trinity Church Astro site. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');

:root { --ink:#07142d; --ink-2:#102858; --blue:#0a4daa; --blue-light:#e8f0fb; --paper:#fbfcff; --warm:#f4efe7; --line:#dce3ed; --white:#fff; --sans:"DM Sans",Arial,sans-serif; --serif:"Playfair Display",Georgia,serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); font:400 16px/1.6 var(--sans); } a { color:inherit; text-decoration:none; } img { max-width:100%; display:block; } .wrap { width:min(1160px, calc(100% - 48px)); margin:auto; } .sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.skip-link:focus { position:fixed; top:1rem; left:1rem; z-index:50; background:white; padding:.75rem 1rem; }
.hero { min-height:730px; height:100vh; max-height:1000px; color:white; position:relative; display:flex; flex-direction:column; overflow:hidden; } .hero__video,.hero__veil { position:absolute; inset:0; width:100%; height:100%; } .hero__video { object-fit:cover; } .hero__veil { background:linear-gradient(100deg,rgba(2,10,28,.87) 0%,rgba(5,15,39,.62) 44%,rgba(4,12,31,.25) 100%); } .nav,.hero__content,.hero__scroll { position:relative; z-index:1; }.nav { z-index:2; flex-shrink:0; min-height:104px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.23); }.brand img { width:185px; }.nav__links { display:flex; align-items:center; gap:25px; font-size:.89rem; font-weight:600; }.nav__links > a:not(.nav__give) { opacity:.92; }.nav__links > a:not(.nav__give):hover { opacity:1; }.nav__give { border:1px solid rgba(255,255,255,.65); padding:9px 14px; border-radius:2px; }.nav__toggle { display:none; }.hero__content { margin-top:auto; margin-bottom:auto; padding:100px 0 80px; max-width:min(1160px, calc(100% - 48px)); width:100%; }.eyebrow { font-size:.76rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin:0 0 18px; }.hero h1 { font:600 clamp(3.3rem,8vw,7.2rem)/.98 var(--serif); letter-spacing:-.055em; margin:0; max-width:800px; }.hero h1 em { font-weight:600; color:#a9caff; }.hero__copy { font-size:1.16rem; max-width:500px; margin:28px 0 34px; }.hero__actions { display:flex; gap:13px; flex-wrap:wrap; }.button { display:inline-flex; justify-content:center; align-items:center; min-height:49px; padding:12px 21px; border-radius:2px; font-size:.9rem; font-weight:700; transition:transform .18s, background .18s; }.button:hover { transform:translateY(-2px); }.button--primary { color:white; background:var(--blue); }.button--quiet,.button--light { border:1px solid rgba(255,255,255,.55); color:white; }.button--dark { color:white; background:var(--ink); }.button--outline { border:1px solid #8fa1b9; color:var(--ink); }.hero__scroll { margin:0 auto 31px; width:min(1160px,calc(100% - 48px)); color:rgba(255,255,255,.8); font-size:.82rem; font-weight:600; }.hero__scroll span { padding-left:9px; font-size:1.2rem; }
.welcome { padding:116px 0 123px; }.section-label { color:var(--blue); font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; font-weight:700; padding-bottom:20px; border-bottom:1px solid var(--line); }.welcome__grid { display:grid; grid-template-columns:1.2fr .8fr; gap:8%; padding-top:42px; }.welcome h2,.paths h2,.events h2,.worship h2,.messages h2,.prayer h2 { font:600 clamp(2.4rem,4.2vw,4.25rem)/1.06 var(--serif); letter-spacing:-.04em; margin:0; }.lead { font-size:1.18rem; max-width:640px; margin:29px 0 0; color:#3a4a65; }.welcome__details { display:flex; flex-direction:column; gap:18px; }.welcome__details>div { display:flex; align-items:flex-start; gap:20px; border-bottom:1px solid var(--line); padding-bottom:18px; }.welcome__details p { margin:0; }.detail__mark,.path-card>span { color:#7092c7; font-family:var(--serif); }.text-link { display:inline-block; color:var(--blue); font-weight:700; margin-top:4px; }.text-link span { padding-left:4px; }
.worship { display:grid; grid-template-columns:1.08fr .92fr; min-height:550px; background:white; }.worship__image { overflow:hidden; }.worship__image img { width:100%; height:100%; object-fit:cover; min-height:400px; }.worship__content { background:var(--warm); padding:clamp(48px,8vw,115px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }.eyebrow--blue { color:var(--blue); }.worship__content p:not(.eyebrow) { color:#3c4a60; max-width:440px; margin:25px 0 28px; }
.paths { padding:124px 0; }.paths__intro { max-width:720px; }.paths__intro h2 { max-width:710px; }.paths__grid { margin-top:50px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }.path-card { padding:29px 27px 30px 0; min-height:305px; border-bottom:1px solid var(--line); border-right:1px solid var(--line); display:flex; flex-direction:column; }.path-card:not(:first-child) { padding-left:27px; }.path-card:last-child { border-right:0; }.path-card h3 { font:600 1.65rem/1.2 var(--serif); margin:28px 0 10px; letter-spacing:-.02em; }.path-card p { margin:0; color:#53627a; font-size:.95rem; }.path-card b { margin-top:auto; color:var(--blue); font-size:.87rem; }.path-card i { font-style:normal; padding-left:5px; }
.messages { background:var(--ink); color:white; padding:113px 0; }.messages__grid { display:grid; grid-template-columns:1fr .91fr; gap:12%; align-items:center; }.messages .eyebrow { color:#adc9f5; }.messages h2 { max-width:450px; }.messages p:not(.eyebrow) { color:#c4cfdf; max-width:480px; margin:23px 0 30px; }.message-card { min-height:280px; background:linear-gradient(140deg,#1e4b93,#0c1e41 60%); padding:39px; display:flex; flex-direction:column; justify-content:center; box-shadow:22px 22px 0 rgba(60,104,173,.22); }.message-card p { font-size:.77rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; margin:0!important; color:#b9d5ff!important; }.message-card h3 { font:600 2rem/1.12 var(--serif); letter-spacing:-.025em; margin:6px 0; }.message-card__meta { font-size:.83rem; color:#d5def0; }.message-card__audio { width:100%; height:39px; margin-top:23px; accent-color:var(--blue); }
.events { padding:119px 0; }.events__head { display:flex; justify-content:space-between; gap:40px; align-items:end; }.events__head h2 { max-width:630px; }.events__notice { border:1px solid var(--line); margin-top:47px; padding:29px 30px; display:flex; align-items:center; gap:25px; }.events__notice p { margin:2px 0 0; color:#52617a; }.notice__cross { color:var(--blue); font-size:1.7rem; }.events__notice .button { margin-left:auto; flex:0 0 auto; }
.prayer { background:var(--blue); color:white; text-align:center; padding:118px 0 124px; }.prayer__inner { max-width:730px; }.prayer h2 { font-size:clamp(2.7rem,5.3vw,5.3rem); }.prayer p:not(.eyebrow) { font-size:1.1rem; max-width:580px; margin:24px auto 31px; color:#dceaff; }.footer { color:white; background:#050d1d; padding:67px 0 23px; }.footer__grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:60px; }.footer__logo { width:150px; }.footer p { color:#adbbd0; }.footer__label { color:white!important; font-weight:700; font-size:.85rem; }.footer a { display:block; color:#adbbd0; margin:.35rem 0; }.footer a:hover { color:white; }.footer__bottom { display:flex; justify-content:space-between; gap:1rem; border-top:1px solid #253248; padding-top:22px; margin-top:45px; color:#8b9ab0; font-size:.78rem; }
@media (max-width:800px) { .hero { min-height:650px; }.nav { min-height:83px; }.brand img { width:142px; }.nav__toggle { display:flex; flex-direction:column; gap:5px; padding:10px 0 10px 10px; border:0; background:none; }.nav__toggle span:not(.sr-only) { width:24px; height:1px; background:white; }.nav__links { display:none; position:absolute; top:100%; left:0; right:0; padding:20px 24px 25px; background:var(--ink); flex-direction:column; align-items:flex-start; gap:18px; }.nav__links.is-open { display:flex; }.hero__content { padding-top:70px; }.welcome,.paths,.events { padding:78px 0; }.welcome__grid,.messages__grid { grid-template-columns:1fr; gap:40px; }.worship { grid-template-columns:1fr; }.worship__image img { height:360px; }.worship__content { padding:64px 24px; }.paths__grid { grid-template-columns:1fr; }.path-card,.path-card:not(:first-child) { border-right:0; padding:27px 0; min-height:220px; }.message-card { min-height:290px; }.events__head { align-items:start; flex-direction:column; gap:10px; }.events__notice { flex-wrap:wrap; }.events__notice .button { margin-left:0; }.footer__grid { grid-template-columns:1fr; gap:22px; }.footer__bottom { flex-direction:column; }.prayer { padding:83px 0; } }
@media (max-width:480px) { .wrap { width:min(100% - 32px,1160px); }.hero__content { max-width:calc(100% - 32px); }.hero h1 { font-size:3.25rem; }.hero__copy { font-size:1rem; }.hero__actions .button { width:100%; }.message-card { padding:27px; box-shadow:12px 12px 0 rgba(60,104,173,.22); }.events__notice { padding:25px 20px; gap:14px; } }

/* Contact page */
.page-header { color:white; background:linear-gradient(115deg,#07142d 0%,#0b3475 100%); }.nav--page { border-bottom:1px solid rgba(255,255,255,.18); }.page-header__content { padding:108px 0 116px; }.page-header__content .eyebrow { color:#abc9fa; }.page-header h1 { font:600 clamp(3.5rem,7vw,6.4rem)/.98 var(--serif); letter-spacing:-.055em; margin:0; }.page-header h1 em { color:#a9caff; }.page-header__content > p:last-child { max-width:540px; font-size:1.12rem; color:#d8e5f8; margin:25px 0 0; }
.page-header--compact .page-header__content { padding-bottom:94px; }
.contact { display:grid; grid-template-columns:.78fr 1.22fr; gap:10%; padding:118px 0 125px; }.contact__intro h2,.contact-details h2,.contact-visit h2 { font:600 clamp(2.6rem,4.4vw,4.35rem)/1.05 var(--serif); letter-spacing:-.045em; margin:0; }.contact__intro > p:not(.eyebrow) { max-width:360px; margin:24px 0; color:#52617a; }.contact-form { background:white; border:1px solid var(--line); padding:43px; box-shadow:15px 18px 0 var(--blue-light); }.contact-form label { display:block; margin-bottom:19px; color:#263b5c; font-size:.86rem; font-weight:700; }.contact-form input,.contact-form textarea { width:100%; display:block; margin-top:7px; padding:12px 13px; border:1px solid #c6d1e0; border-radius:1px; outline:0; background:#fff; color:var(--ink); font:400 1rem/1.5 var(--sans); transition:border-color .18s, box-shadow .18s; }.contact-form textarea { resize:vertical; min-height:135px; }.contact-form input:focus,.contact-form textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px #e4efff; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:17px; }.field-optional { color:#78879c; font-weight:400; }.contact-form .button { border:0; cursor:pointer; margin-top:3px; }.contact-form .button span { margin-left:8px; font-size:1.1rem; }.contact-form__note { margin:14px 0 0; color:#75839a; font-size:.79rem; }.contact-form__status { margin:16px 0 0; font-size:.88rem; font-weight:700; }.contact-form__status[data-state="success"] { color:#1c7045; }.contact-form__status[data-state="error"] { color:#a12a2a; }
.contact-details { background:var(--ink); color:white; padding:105px 0 110px; }.contact-details__grid { display:grid; grid-template-columns:1.2fr repeat(3,1fr); gap:31px; }.contact-details .eyebrow { color:#a9caff; }.contact-details__heading h2 { max-width:310px; }.contact-details__item { padding-left:25px; border-left:1px solid #354869; }.contact-details__number { color:#8eb3ed; font:600 1.15rem var(--serif); }.contact-details__item h3 { font:600 1.55rem var(--serif); margin:24px 0 12px; }.contact-details__item p,.contact-details__item address { color:#b8c7dc; font-style:normal; margin:0 0 14px; }.contact-details__item strong { color:white; }.contact-details .text-link { color:#b7d4ff; margin-top:7px; font-size:.9rem; }
.contact-visit { padding:102px 0; display:grid; grid-template-columns:1.1fr .8fr auto; align-items:center; gap:54px; }.contact-visit > p { color:#52617a; margin:0; }.contact-visit .button { white-space:nowrap; }

/* Prayer request page */
.prayer-header { background:linear-gradient(120deg,#07142d 0%,#0c3c86 100%); }.prayer-request { display:grid; grid-template-columns:.8fr 1.2fr; align-items:start; gap:10%; padding:118px 0 125px; }.prayer-request__intro h2,.prayer-next h2 { font:600 clamp(2.6rem,4.4vw,4.35rem)/1.05 var(--serif); letter-spacing:-.045em; margin:0; }.prayer-request__intro > p:not(.eyebrow) { color:#52617a; max-width:375px; margin:24px 0; }.prayer-request__promise { display:flex; gap:13px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); max-width:400px; }.prayer-request__promise span { color:var(--blue); font-size:1.2rem; }.prayer-request__promise p { margin:0; color:#334c73; font-size:.92rem; font-weight:600; }.prayer-request__help { font-size:.9rem; }.prayer-request__help a,.contact-form__note a { color:var(--blue); font-weight:700; }.prayer-form { box-shadow:15px 18px 0 var(--blue-light); }.field-help { display:block; color:#71819a; font-size:.78rem; font-weight:400; margin-top:6px; line-height:1.45; }.field-required { color:var(--blue); font-size:.76rem; }.audience-fieldset { padding:0; margin:3px 0 24px; border:0; }.audience-fieldset legend { color:#263b5c; font-size:.86rem; font-weight:700; padding:0; }.audience-fieldset > p { color:#71819a; font-size:.8rem; margin:6px 0 12px; }.audience-fieldset label { display:flex; gap:11px; align-items:flex-start; padding:13px 14px; margin:0 0 8px; border:1px solid #c6d1e0; font-weight:400; cursor:pointer; transition:border-color .18s,background .18s; }.audience-fieldset label:hover { border-color:var(--blue); background:#f6f9ff; }.audience-fieldset input { width:16px; height:16px; margin:4px 0 0; accent-color:var(--blue); }.audience-fieldset strong,.audience-fieldset small { display:block; }.audience-fieldset strong { color:#263b5c; font-size:.88rem; }.audience-fieldset small { color:#71819a; font-size:.78rem; margin-top:2px; line-height:1.35; }.prayer-next { color:white; background:var(--ink); padding:89px 0; }.prayer-next__grid { display:grid; grid-template-columns:1.1fr .85fr auto; align-items:center; gap:60px; }.prayer-next .eyebrow { color:#a9caff; }.prayer-next h2 { max-width:410px; }.prayer-next > div > p:not(.eyebrow) { color:#c4cfdf; margin:0; }.prayer-next .button { white-space:nowrap; }
@media (max-width:800px) { .page-header__content { padding:75px 0 84px; }.contact { grid-template-columns:1fr; gap:45px; padding:78px 0 88px; }.contact__intro > p:not(.eyebrow) { max-width:540px; }.contact-details { padding:76px 0; }.contact-details__grid { grid-template-columns:1fr 1fr; gap:38px 28px; }.contact-details__heading { grid-column:1 / -1; }.contact-details__heading h2 { max-width:500px; }.contact-visit { grid-template-columns:1fr; gap:24px; padding:75px 0; }.contact-visit .button { justify-self:start; } }
@media (max-width:480px) { .page-header h1 { font-size:3.4rem; }.contact-form { padding:28px 21px; box-shadow:9px 11px 0 var(--blue-light); }.form-row,.contact-details__grid { grid-template-columns:1fr; }.contact-details__heading { grid-column:auto; }.contact-details__item { padding:0; border-left:0; border-top:1px solid #354869; padding-top:27px; } }

@media (max-width:800px) { .prayer-request { grid-template-columns:1fr; gap:45px; padding:78px 0 88px; }.prayer-request__intro > p:not(.eyebrow) { max-width:540px; }.prayer-next { padding:73px 0; }.prayer-next__grid { grid-template-columns:1fr; gap:25px; }.prayer-next .button { justify-self:start; } }

/* Privacy policy */
.policy { display:grid; grid-template-columns:250px minmax(0,720px); justify-content:space-between; gap:70px; padding:112px 0 126px; }.policy__meta { align-self:start; position:sticky; top:25px; padding-top:8px; }.policy__meta > p:not(.eyebrow) { color:#61718a; margin:0 0 17px; font-size:.9rem; }.policy__content { font-size:1rem; color:#40516b; }.policy__lead { color:var(--ink); font:600 clamp(1.45rem,2.3vw,2rem)/1.4 var(--serif); letter-spacing:-.015em; margin:0 0 51px; }.policy__content section { border-top:1px solid var(--line); padding:29px 0 31px; }.policy__content h2 { color:var(--ink); font:600 1.72rem/1.2 var(--serif); letter-spacing:-.025em; margin:0 0 12px; }.policy__content p { margin:0; }.policy__content a { color:var(--blue); font-weight:700; }.policy__content a:hover { text-decoration:underline; }
@media (max-width:800px) { .policy { grid-template-columns:1fr; gap:32px; padding:76px 0 85px; }.policy__meta { position:static; padding:0; }.policy__lead { margin-bottom:39px; } }

/* Live public feeds */
.feed-page { padding:112px 0 125px; }.feed-page__intro { max-width:620px; margin-bottom:48px; }.feed-page__intro h2,.feed-state h2 { font:600 clamp(2.7rem,4.5vw,4.4rem)/1.05 var(--serif); letter-spacing:-.045em; margin:0; }.sermon-list { border-top:1px solid var(--line); }.sermon-card { display:grid; grid-template-columns:1.05fr 1.55fr; column-gap:55px; padding:37px 0; border-bottom:1px solid var(--line); }.sermon-card__top { grid-column:1; display:flex; justify-content:space-between; gap:12px; }.sermon-card__top > span { color:#71819a; font-size:.82rem; }.feed-kicker { color:#5e7190; font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin:0; }.sermon-card h3,.event-card h3,.announcement-card h3 { color:var(--ink); font:600 2rem/1.12 var(--serif); letter-spacing:-.025em; margin:0 0 13px; }.sermon-card > h3,.sermon-card > .feed-copy,.sermon-card > audio,.sermon-card > .text-link { grid-column:2; }.feed-copy { color:#52617a; }.feed-copy p + p { margin-top:1em; }.feed-copy ul,.feed-copy ol { padding-left:1.2rem; }.sermon-card audio { width:100%; height:38px; margin-top:20px; }.sermon-card .text-link { margin-top:17px; }.event-list { border-top:1px solid var(--line); }.event-card { display:grid; grid-template-columns:120px minmax(0,1.2fr) minmax(190px,.8fr); gap:34px; align-items:start; padding:31px 0; border-bottom:1px solid var(--line); }.event-card--special { background:#eff5ff; margin:0 -25px; padding:31px 25px; }.event-card__date { color:var(--blue); font:600 1.35rem/1.15 var(--serif); }.event-card__details { color:#52617a; font-size:.9rem; }.event-card__details p { margin:0 0 5px; }.announcement-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }.announcement-card { display:flex; flex-direction:column; background:white; border:1px solid var(--line); }.announcement-card.priority-high { border-top:4px solid var(--blue); }.announcement-card > img { width:100%; height:235px; object-fit:cover; }.announcement-card__content { padding:31px; }.announcement-card h3 { margin-top:9px; }.announcement-card .text-link { margin-top:19px; }.feed-state { border:1px solid var(--line); background:white; padding:49px; }.feed-state h2 { font-size:2.4rem; }.feed-state p { color:#52617a; margin:12px 0 0; }
@media (max-width:800px) { .feed-page { padding:78px 0 88px; }.sermon-card { grid-template-columns:1fr; row-gap:14px; }.sermon-card > h3,.sermon-card > .feed-copy,.sermon-card > audio,.sermon-card > .text-link { grid-column:1; }.event-card { grid-template-columns:105px 1fr; gap:18px 28px; }.event-card__details { grid-column:2; }.announcement-grid { grid-template-columns:1fr; }.announcement-card > img { height:280px; } }
@media (max-width:480px) { .event-card { grid-template-columns:1fr; gap:11px; }.event-card__details { grid-column:1; }.event-card--special { margin:0 -16px; padding:27px 16px; }.announcement-card__content { padding:25px 21px; }.feed-state { padding:31px 23px; } }

/* Announcement image previews */
.announcement-image-button { display:block; width:100%; height:235px; padding:0; border:0; background:none; cursor:pointer; overflow:hidden; }
.announcement-image-button img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.announcement-image-button:hover img,.announcement-image-button:focus-visible img { transform:scale(1.04); }
.announcement-image-button:focus-visible { outline:3px solid var(--blue); outline-offset:-3px; }
.worship__attire { width:100%; max-width:440px; margin:0 0 28px; padding:16px 0 0 19px; border-left:2px solid #c9b99e; }.worship__attire strong { display:block; color:var(--ink); font:600 1.15rem/1.2 var(--serif); }.worship__attire p { margin:7px 0 0!important; color:#52617a!important; font-size:.92rem; }
.expect { padding:112px 0 124px; }.expect__intro { max-width:650px; }.expect__intro h2 { font:600 clamp(2.4rem,4.2vw,4.25rem)/1.06 var(--serif); letter-spacing:-.04em; margin:0; }.expect__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0 55px; margin-top:52px; border-top:1px solid var(--line); }.expect-card { padding:27px 0 30px; border-bottom:1px solid var(--line); }.expect-card:last-child { grid-column:1 / -1; max-width:calc(50% - 27px); }.expect-card > span { color:#7092c7; font:600 1.1rem var(--serif); }.expect-card h3 { font:600 1.65rem/1.2 var(--serif); letter-spacing:-.02em; margin:17px 0 9px; }.expect-card p { color:#52617a; margin:0; max-width:500px; }
.image-lightbox { width:min(92vw,1100px); max-width:none; max-height:90vh; padding:0; border:0; background:transparent; overflow:visible; }
.image-lightbox::backdrop { background:rgba(3,10,24,.82); backdrop-filter:blur(3px); }
.image-lightbox__frame { position:relative; display:grid; place-items:center; padding:20px; background:#07142d; box-shadow:0 20px 70px rgba(0,0,0,.35); }
.image-lightbox__image { display:block; width:auto; max-width:100%; max-height:calc(90vh - 40px); object-fit:contain; }
.image-lightbox__close { position:absolute; top:7px; right:9px; z-index:1; width:38px; height:38px; border:1px solid rgba(255,255,255,.55); border-radius:50%; color:white; background:rgba(7,20,45,.8); font-size:1.65rem; line-height:1; cursor:pointer; }
.image-lightbox__close:hover,.image-lightbox__close:focus-visible { background:var(--blue); }
@media (max-width:800px) { .announcement-image-button { height:280px; } }
@media (max-width:800px) { .expect { padding:78px 0; }.expect__grid { grid-template-columns:1fr; gap:0; margin-top:38px; }.expect-card:last-child { grid-column:auto; max-width:none; } }

/* Keep giving discoverable without making it the dominant navigation action. */
.nav__give { border:0; padding:0; color:#b9d5ff; }
.nav__give:hover { color:white; }
.nav__links > a[href="#new"],.nav__links > a[href="/#new"] { display:none; }
.messages-page__intro-copy { color:#52617a; margin:20px 0 0; }.messages-page__video-links { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }.messages-page__video-links .button { min-height:44px; padding:10px 16px; }.messages-page__video-links .button span { margin-left:6px; }
.serve { padding:0 0 124px; }.serve__intro { max-width:680px; }.serve__intro h2 { font:600 clamp(2.4rem,4.2vw,4.25rem)/1.06 var(--serif); letter-spacing:-.04em; margin:0; }.serve__intro > p:last-child { color:#52617a; max-width:540px; margin:22px 0 0; }.serve__grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:50px; border-top:1px solid var(--line); border-left:1px solid var(--line); }.serve-card { min-height:190px; padding:22px 22px 24px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:background .18s,transform .18s; }.serve-card:hover,.serve-card:focus-visible { background:var(--blue-light); transform:translateY(-2px); }.serve-card > span { color:#7092c7; font:600 1.05rem var(--serif); }.serve-card h3 { font:600 1.35rem/1.15 var(--serif); letter-spacing:-.02em; margin:17px 0 8px; }.serve-card h3 small { display:block; color:#71819a; font:600 .72rem/1.35 var(--sans); letter-spacing:0; margin-top:6px; }.serve-card b { color:var(--blue); font-size:.8rem; margin-top:auto; }.serve-card i { font-style:normal; padding-left:4px; }.serve__note { max-width:760px; color:#52617a; font-size:.88rem; margin:25px 0 0; padding:15px 18px; border-left:2px solid #c9b99e; }.serve__note strong { color:var(--ink); }
.contact-form__note { max-width:500px; }
@media (max-width:800px) { .serve { padding:0 0 78px; }.serve__grid { grid-template-columns:repeat(2,1fr); margin-top:38px; }.serve-card { min-height:170px; padding:19px 17px 21px; } }
@media (max-width:480px) { .serve__grid { grid-template-columns:1fr; }.serve-card { min-height:145px; } }

/* Groups page */
.groups-header { background:linear-gradient(120deg,#07142d 0%,#123e7d 100%); }.groups-intro { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:end; padding:112px 0 66px; }.groups-intro h2,.groups-cta h2 { font:600 clamp(2.6rem,4.4vw,4.35rem)/1.05 var(--serif); letter-spacing:-.045em; margin:0; }.groups-intro__schedule { display:flex; gap:18px; align-items:flex-start; padding:24px 0 0; border-top:1px solid var(--line); }.groups-intro__mark { color:var(--blue); font-size:1.3rem; }.groups-intro__schedule p { margin:0; color:#52617a; }.groups-intro__schedule .groups-intro__time { color:var(--ink); font:600 1.9rem/1.1 var(--serif); }.groups-intro__schedule .text-link { font-size:.9rem; margin-top:10px; }.groups-list { padding-bottom:118px; }.group-card { display:grid; grid-template-columns:90px 1fr 40px; gap:25px; align-items:start; border-top:1px solid var(--line); padding:31px 0; }.group-card:last-child { border-bottom:1px solid var(--line); }.group-card__number { color:#7092c7; font:600 1.15rem var(--serif); }.group-card h3 { font:600 clamp(1.7rem,3vw,2.5rem)/1.1 var(--serif); letter-spacing:-.03em; margin:0 0 9px; }.group-card p { color:#52617a; max-width:610px; margin:0; }.group-card__details { display:inline-block; color:#71819a; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-top:15px; }.group-card__arrow { color:var(--blue); font-size:1.5rem; justify-self:end; }.groups-cta { background:var(--blue); color:white; text-align:center; padding:105px 0 112px; }.groups-cta__inner { max-width:730px; }.groups-cta .eyebrow { color:#c0d8fa; }.groups-cta h2 { font-size:clamp(2.7rem,5.3vw,5.3rem); }.groups-cta p:not(.eyebrow) { color:#dceaff; font-size:1.08rem; max-width:550px; margin:22px auto 30px; }
.groups-intro__schedule .groups-intro__day { color:var(--blue); font-weight:700; margin-bottom:8px; }
.groups-intro__story { color:#52617a; margin-top:24px; max-width:560px; }.groups-intro__story p { margin:0; }.groups-intro__story p + p { margin-top:16px; }
@media (max-width:800px) { .groups-intro { grid-template-columns:1fr; gap:42px; padding:78px 0 48px; }.groups-list { padding-bottom:78px; }.group-card { grid-template-columns:55px 1fr 25px; gap:17px; }.groups-cta { padding:78px 0 83px; } }
@media (max-width:480px) { .group-card { grid-template-columns:1fr 20px; }.group-card__number { grid-column:1 / -1; }.group-card__arrow { grid-column:2; grid-row:2; }.group-card h3 { grid-column:1; grid-row:2; } }
