@import url('/assets/css/book-cover-shadow.css');
.tgp-footer{--tgp-blue:#1B538D;--tgp-teal:#0D90A2;--tgp-sans:'Montserrat',system-ui,sans-serif;--tgp-body:'Montserrat',system-ui,sans-serif;width:100%;margin:0;padding:66px 0 30px;background:#1A1816;color:#CFCCC7;font-family:var(--tgp-body);font-size:14.5px;line-height:1.62;-webkit-font-smoothing:antialiased}.tgp-footer,.tgp-footer *{box-sizing:border-box}.tgp-footer .tgp-footer-wrap{max-width:1240px;margin:0 auto;padding:0 32px}.tgp-footer .tgp-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px}.tgp-footer .tgp-footer-logo{display:block;width:170px;max-width:100%;height:auto;aspect-ratio:1157/393;margin:0 0 16px}.tgp-footer .tgp-footer-tagline{margin:0;color:#CFCCC7;font-family:var(--tgp-body);font-size:14.5px;line-height:1.62}.tgp-footer h4{display:flex;align-items:center;gap:14px;margin:0 0 18px;color:#C1C54D;font-family:var(--tgp-sans);font-size:12px;font-weight:700;line-height:1.62;letter-spacing:.14em;text-transform:uppercase}.tgp-footer h4::before{content:"";width:26px;height:2px;background:#0E8FA2;flex:none}.tgp-footer ul{list-style:none;margin:0;padding:0}.tgp-footer li{margin:0 0 12px;padding:0}.tgp-footer a{color:#CFCCC7;text-decoration:none;font-family:var(--tgp-sans);font-size:12.5px;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.tgp-footer a:hover{color:#fff}.tgp-footer a:focus-visible{outline:3px solid var(--tgp-teal);outline-offset:4px}.tgp-footer .tgp-footer-social{display:flex;gap:12px;margin-top:22px}.tgp-footer .tgp-social-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #514D47;border-radius:50%;color:#CFCCC7;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.tgp-footer .tgp-social-icon:hover{background-color:var(--tgp-blue);border-color:var(--tgp-blue);color:#fff}.tgp-footer .tgp-social-icon svg{display:block;width:22px;height:22px;fill:currentColor}.tgp-footer .tgp-footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:52px;padding-top:22px;border-top:1px solid #35322E;color:#8E8A85;font-size:13px}.tgp-footer .tgp-footer-bottom a{font-size:13px;letter-spacing:0;text-transform:none;text-decoration:underline}

/* Shared closing photo banners above the footer. */
.closing .over > .wrap{width:100%;text-align:left}
.closing .over > .wrap > .box{margin-left:0;margin-right:auto;text-align:left}
.closing .box .btnrow{justify-content:flex-start}

/* On-demand side-by-side pricing cards and decorative feature icons. */
.prices{align-items:stretch}
.prices > .pcard{display:flex;flex-direction:column;min-width:0}
.prices > .pcard > hr{width:100%;flex-shrink:0}
.prices > .pcard > .badge{align-self:flex-start}
.prices > .pcard > .btn{margin-top:auto}
.prices > .pcard .feat{position:relative;padding-left:40px;flex-shrink:0}
.prices > .pcard .feat .t::before{content:"";position:absolute;left:0;top:-3px;width:28px;height:26px;background-repeat:no-repeat;background-position:center;background-size:contain}
.prices > .pcard.blue .feat .t::before{background-image:url('/assets/images/pricing-best-for.svg')}
.prices > .pcard.blue .feat + .feat .t::before{background-image:url('/assets/images/pricing-included.svg')}
.prices > .pcard.blue .feat + .feat + .feat .t::before{background-image:url('/assets/images/pricing-community.svg')}
.prices > .pcard.light .feat .t::before{background-image:url('/assets/images/pricing-perspective.svg')}
.prices > .pcard.light .feat + .feat .t::before{background-image:url('/assets/images/pricing-encouragement.svg')}
.prices > .pcard.light .feat + .feat + .feat .t::before{background-image:url('/assets/images/pricing-accountability.svg')}

/* Pricing-card heading colors and tighter two-line journey heading. */
.prices > .pcard.light :is(h1,h2,h3,h4),.prices > .pcard.light .feat .t{color:#1B538D}
.prices > .pcard.light > h3{line-height:1.05;margin-bottom:12px}
.prices > .pcard.blue > .kick{color:#FFFFFF}
.prices > .pcard.blue > h3{color:#C1C549}
.prices > .pcard.blue > .badge{color:#C1C549;background:rgba(13,144,162,0.3);font-weight:700}

/* Hide the thin outer edge of the shared book cover without altering the source. */
.book img[src="/assets/images/book-cover--89f6abb74f88.jpg"]{clip-path:inset(4px)}

/* Enterprise card: scoped to the On-Demand page, outside .prices. */
body:has(.ghero) .two.top > .pcard.light > .badge{color:#0D90A2!important;background:rgba(13,144,162,.2)!important;font-weight:700}
body:has(.ghero) .two.top > .pcard.light > .kick{color:#0D90A2}
body:has(.ghero) .two.top > .pcard.light > .feat > .t{color:#1B538D}
body:has(.ghero) .two.top > .pcard.light > .feat{position:relative;padding-left:36px}
body:has(.ghero) .two.top > .pcard.light > .feat > .t::before{content:"";position:absolute;left:4px;top:-2px;width:24px;height:24px;background:linear-gradient(90deg,#0D90A2,#C1C549);-webkit-mask:var(--enterprise-icon) center / contain no-repeat;mask:var(--enterprise-icon) center / contain no-repeat}
body:has(.ghero) .two.top > .pcard.light > .feat{--enterprise-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M14 2L17.5 10.5L26 11L19.5 17L21.5 25L14 20.5L6.5 25L8.5 17L2 11L10.5 10.5Z'/%3E%3C/svg%3E")}
body:has(.ghero) .two.top > .pcard.light > .feat + .feat{--enterprise-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='2.5'%3E%3Cpath d='M4 14L10.5 20L24 6'/%3E%3C/svg%3E")}
body:has(.ghero) .two.top > .pcard.light > .feat + .feat + .feat{--enterprise-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='14' cy='14' r='11.5'/%3E%3Ccircle cx='14' cy='14' r='8'/%3E%3C/svg%3E")}

/* Groups hero: citron heading accent and matching per-user badge. */
html:has(link[rel="canonical"][href="https://thegrandplan.org/groups"]) .phero h1 em.accent{color:#C1C549}
html:has(link[rel="canonical"][href="https://thegrandplan.org/groups"]) .phero .pricebox .tag{color:#0D90A2;background:rgba(13,144,162,.2);font-weight:700}

/* Align Groups audience descriptions with heading text, clear of the icons. */
html:has(link[rel="canonical"][href="https://thegrandplan.org/groups"]) .aud > p:not(.t){padding-left:29px}

/* About hero: match the citron accent used in the other gradient heroes. */
html:has(link[rel="canonical"][href="https://thegrandplan.org/about"]) .banner h1 em.accent{color:#C1C549}

/* Individual Access audience icons: original Figma artwork and aligned text. */
html:has(link[rel="canonical"][href="https://thegrandplan.org/individual-access"]) .aud{position:relative;padding-left:54px;min-height:42px}
html:has(link[rel="canonical"][href="https://thegrandplan.org/individual-access"]) .aud::before{content:"";position:absolute;left:0;top:-6px;width:42px;height:42px;background:url('/assets/images/individual-compass.svg') center / 34px 34px no-repeat;pointer-events:none}
html:has(link[rel="canonical"][href="https://thegrandplan.org/individual-access"]) .aud + .aud::before{background-image:url('/assets/images/individual-map.svg');background-size:35px 32px}
html:has(link[rel="canonical"][href="https://thegrandplan.org/individual-access"]) .aud + .aud + .aud::before{background-image:url('/assets/images/individual-sun.svg');background-size:42px 42px}

/* Individual Access book callout and 6-Summit-style community band. */
body:has(.individual-framed) .notready{position:relative;min-height:148px;padding:60px 0 60px 124px;margin-bottom:0}
body:has(.individual-framed) .notready::before{content:"";position:absolute;left:0;top:50%;width:100px;height:148px;transform:translateY(-50%);background:url('/assets/images/book-cover--89f6abb74f88.jpg') center / cover no-repeat;clip-path:inset(4px);pointer-events:none}
body:has(.individual-framed) .commband{--community-inset:16px;--community-overlap:110px;--community-scale:2.3;position:relative;isolation:isolate;background:none;color:#fff;padding:0;margin:24px 0 40px;overflow:visible}
body:has(.individual-framed) .commband::before{content:"";position:absolute;inset:0 0 0 var(--community-inset);z-index:-1;background:linear-gradient(90deg,var(--blue),var(--teal))}
body:has(.individual-framed) .commband .grid{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);gap:40px}
body:has(.individual-framed) .commband .copy{position:relative;z-index:1;max-width:440px;padding:56px 0 56px 48px}
body:has(.individual-framed) .commband h2{color:#fff;max-width:12ch}
body:has(.individual-framed) .commband h2 em.accent{color:var(--citron)}
body:has(.individual-framed) .commband p{color:#DCE9EF}
body:has(.individual-framed) .commband .eyebrow{color:var(--citron)}
body:has(.individual-framed) .commband .lede{max-width:38ch;font-size:15.5px;line-height:1.55}
body:has(.individual-framed) .commband .grid > div:last-child{position:relative;align-self:stretch;min-width:0}
body:has(.individual-framed) .commband .grid > div:last-child img{position:absolute;right:0;bottom:0;width:100%;height:calc(100% + var(--community-overlap));aspect-ratio:auto;object-fit:contain;object-position:center bottom;transform:scale(var(--community-scale));transform-origin:center bottom}
body:has(.individual-framed) .commband .btnrow{justify-content:flex-start}
@media(min-width:941px){body:has(.individual-framed) .commband .grid > div:last-child img{width:min(100%,420px);left:50%;right:auto;transform:translateX(-50%) scale(var(--community-scale));transform-origin:center bottom}}
@media(max-width:940px){body:has(.individual-framed) .commband .grid{grid-template-columns:1fr;gap:28px}body:has(.individual-framed) .commband{--community-inset:12px;--community-overlap:0px;--community-scale:1;margin-top:0}body:has(.individual-framed) .commband .copy{max-width:none;padding:48px 0 0}body:has(.individual-framed) .commband .lede{max-width:40ch}body:has(.individual-framed) .commband .grid > div:last-child{height:380px}body:has(.individual-framed) .commband .grid > div:last-child img{height:100%}}
@media(max-width:600px){body:has(.individual-framed) .notready{min-height:118px;padding:32px 0 32px 100px}body:has(.individual-framed) .notready::before{width:80px;height:118px}}

/* Individual Access closing enrollment button: blue with white text. */
body:has(.individual-framed) .closing .btn.white{background:#1B538D;color:#fff}

/* Community artwork: mobile only; preserve all desktop sizing and overlap. */
@media(max-width:940px){
body .commband,body:has(.individual-framed) .commband{--community-scale:1.65}
body .commband .community-visual,body:has(.individual-framed) .commband .grid > div:last-child{height:320px;overflow:hidden}
}

/* On-Demand hero photo: home-style mobile frame, with no SVG overlay. */
@media(max-width:940px){
body .ghero{background:#fff}
body .ghero .copy{background:linear-gradient(90deg,#1B538D 0%,#0D90A2 100%);background-size:100% calc(100% - 20px);background-repeat:no-repeat}
body .ghero .shot{min-height:0;margin:0 var(--pad) 24px}
body .ghero .shot > img{position:static;inset:auto;width:100%;height:auto;aspect-ratio:310/356;object-fit:cover;object-position:center;padding:4.516129%;background:linear-gradient(135deg,#0E8FA2 0%,#0E8FA2 35%,#1B538D 68%,#A7BE61 100%)}
body .ghero .shot > .qcard{position:static;max-width:none;margin:28px 0 0;box-shadow:0 5px 20px rgba(10,31,54,.20)}
body .ghero + section{padding-top:32px}
}

/* Groups mobile partner CTA: prevent nowrap links from widening the grid. */
@media(max-width:940px){
html:has(link[rel="canonical"][href="https://thegrandplan.org/groups"]) .two.top{grid-template-columns:minmax(0,1fr)}
html:has(link[rel="canonical"][href="https://thegrandplan.org/groups"]) .two.top > div{min-width:0}
html:has(link[rel="canonical"][href="https://thegrandplan.org/groups"]) .two.top .tlink{max-width:100%;white-space:normal;overflow-wrap:anywhere}
html:has(link[rel="canonical"][href="https://thegrandplan.org/groups"]) .two.top .btnrow > .btn.citron{width:100%;max-width:100%;white-space:normal;text-align:center}
html:has(link[rel="canonical"][href="https://thegrandplan.org/groups"]) .two.top .btnrow:has(> .tlink[href="/individual-access"]){padding-bottom:28px;border-bottom:1px solid var(--rule)}
}

/* Home closing CTA: desktop row only; leave mobile and other pages unchanged. */
@media(min-width:941px){
html:has(link[rel="canonical"][href="https://thegrandplan.org/"]) .closing .box{max-width:800px}
html:has(link[rel="canonical"][href="https://thegrandplan.org/"]) .closing .btnrow{flex-wrap:nowrap}
html:has(link[rel="canonical"][href="https://thegrandplan.org/"]) .closing .btnrow > .btn{white-space:nowrap}
}

/* Individual Access Mary testimonial: reference layout, desktop only. */
@media(min-width:941px){
body:has(.individual-framed) .pullq{background:#0A1F36 url('/assets/images/individual-quote-mountains.svg') center bottom / 100% 100% no-repeat;padding:60px 0}
body:has(.individual-framed) .pullq .grid{grid-template-columns:minmax(0,.21fr) minmax(0,.79fr);gap:36px;align-items:stretch}
body:has(.individual-framed) .pullq .grid > div:first-child{align-self:center;padding-left:54px}
body:has(.individual-framed) .pullq .who{color:#C1C549;font-size:15px;line-height:1.5}
body:has(.individual-framed) .pullq .role{color:#fff;font-size:14.5px;line-height:1.5}
body:has(.individual-framed) .pullq blockquote{position:relative;margin:0;border-left:1px solid rgba(255,255,255,.35);padding:16px 0 20px 88px;font-family:var(--serif);font-size:clamp(32px,3.5vw,44px);font-weight:400;line-height:1.14;color:#fff;text-wrap:balance}
body:has(.individual-framed) .pullq blockquote em{color:#C1C549;font-style:italic}
body:has(.individual-framed) .pullq .mark{position:absolute;left:38px;top:12px;margin:0;color:#C1C549;font-family:var(--serif);font-size:70px;line-height:1;vertical-align:baseline}
}

/* Match both outer white edges on the two desktop community bands. */
@media(min-width:941px){
body .commband::before,body:has(.individual-framed) .commband::before{right:var(--community-inset)}
}
