/* Shared visual and typography system for the public Second Diet website. */
:root {
  --type-display:clamp(43px,4.55vw,66px);
  --type-page:clamp(36px,3.55vw,54px);
  --type-section:clamp(29px,2.8vw,42px);
  --type-subsection:clamp(23px,2.05vw,30px);
  --type-card:clamp(18px,1.35vw,22px);
  --type-body:16px;
  --type-small:13px;
  --type-label:11px;
  --leading-heading:1.09;
  --leading-body:1.68;
  --color-forest:#203f14;
  --color-leaf:#357018;
  --color-lime:#86a629;
  --color-citrus:#df870e;
  --color-ink:#1d3018;
  --color-muted:#56664e;
  --color-ivory:#fbfcf7;
  --color-sage:#edf4e4;
  --color-rule:#dbe6d0;
  --shadow-card:0 18px 42px rgba(39,75,22,.075);
}
body { color:var(--color-ink); background:var(--color-ivory); font-size:var(--type-body); line-height:var(--leading-body); }
#siteMain h1,#siteMain h2,#siteMain h3 { color:inherit; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; font-weight:760; letter-spacing:-.04em; }
#siteMain h1,#siteMain h2 { text-wrap:balance; }
#siteMain h3 { line-height:1.23; }
#siteMain p { line-height:var(--leading-body); }
.eyebrow,.kicker,.hero-label,.service-card-label { font-size:var(--type-label); font-weight:800; letter-spacing:.145em; text-transform:uppercase; }
.section-head h2,.editorial-copy h2,.phase2-home-support h2,.about-dark-grid h2,.platform-story-grid h2,.founder-copy h2,.recipe-intro h2,.consent-story-band h2 {
  font-size:var(--type-section); line-height:var(--leading-heading); letter-spacing:-.045em;
}
.section-head h2,.editorial-copy h2 { max-width:700px; }
.section-head p,.editorial-copy p,.content-prose p { color:var(--color-muted); }
.section-head p { font-size:15px; line-height:1.7; }
.service-card h3,.program-card h3,.article-card h3,.resource-hub-card h3,.contact-paths h3,.phase2-step-card h3 { font-size:var(--type-card); }
.content-prose h2,.service-detail-section .content-prose>h2,.program-detail-layout .program-main>h2,.recipe-detail-layout .recipe-main>h2 { font-size:var(--type-subsection); line-height:1.2; }
.unsure-band h2,.process-band h2,.review-before-plan h2,.resource-disclaimer h2,.consent-story-band h2 { font-size:var(--type-section); line-height:var(--leading-heading); }
.resource-hub-card h2 { font-size:clamp(33px,3vw,44px); }
.blog-featured h2 { font-size:clamp(27px,2.5vw,36px); }
.founder-copy h2 { font-size:clamp(33px,3.2vw,47px); }
.cta-band-premium h2 { font-size:clamp(35px,3.45vw,49px); }
.about-quote strong { font-family:inherit; font-size:20px; font-weight:650; }

/* The home opening combines an editorial image, a subtle light field, and a clear type hierarchy. */
.hero.home-hero {
  min-height:min(735px,calc(100svh - 77px));
  padding:66px 0;
  background:
    radial-gradient(ellipse at 79% 24%,rgba(171,213,69,.18),transparent 34%),
    radial-gradient(ellipse at 8% 91%,rgba(226,131,5,.12),transparent 26%),
    linear-gradient(118deg,#173b11 0%,#275d13 61%,#3f7218 100%);
}
.hero.home-hero:before { width:710px; height:710px; top:-330px; right:-160px; border:1px solid rgba(220,242,179,.15); background:none; }
.home-hero .hero-grid { grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(44px,5.1vw,90px); }
.home-hero .hero-grid:before { content:""; position:absolute; inset:-24px auto -24px -28px; width:1px; background:linear-gradient(transparent,rgba(226,191,105,.55) 24% 72%,transparent); }
.home-hero .hero-content { padding-left:10px; }
.home-hero .hero-content .eyebrow { display:flex; align-items:center; gap:12px; color:#d5e9ad; }
.home-hero .hero-content .eyebrow:before { content:""; display:block; width:27px; height:2px; background:#e4a747; }
.hero-content h1 { font-size:var(--type-display); line-height:1.035; max-width:690px; letter-spacing:-.058em; margin:18px 0 20px; }
.home-hero .hero-copy { font-size:clamp(16px,1.1vw,18px); line-height:1.72; max-width:600px; }
.home-hero .hero-actions { margin-top:26px; }
.home-hero .hero-proof-grid { margin-top:31px; }
.home-hero .hero-proof-grid>div { border-radius:12px; background:rgba(255,255,255,.075); box-shadow:inset 0 1px rgba(255,255,255,.09); }
.home-hero .hero-proof-grid b { font-family:inherit; font-size:17px; color:#ecc783; }
.home-hero .hero-visual-wrap { isolation:isolate; }
.home-hero .hero-visual-wrap:after { content:""; position:absolute; z-index:-1; inset:-20px -22px 25px 35px; border-radius:160px 28px 130px 28px; background:rgba(180,217,81,.19); transform:rotate(5deg); filter:blur(1px); }
.hero.home-hero .hero-visual-wrap .image-slot { border-radius:130px 28px 120px 28px; border:1px solid rgba(251,253,242,.6); box-shadow:0 38px 90px rgba(9,30,8,.32); }
.hero.home-hero .hero-visual-wrap .image-slot.image-ready { min-height:0; aspect-ratio:1/1.07; }
.home-hero .hero-visual-wrap .image-slot.image-ready img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; min-height:0; max-height:none; object-fit:cover; }
.home-hero .hero-float-card { left:-30px; bottom:24px; border-left:3px solid var(--color-citrus); border-radius:5px 16px 16px 5px; }
.home-hero .hero-float-card strong { color:#214719; }
.home-hero .hero-side-note { position:absolute; right:max(16px,calc((100vw - 1500px)/2)); top:50%; z-index:2; color:#d8e6c7; opacity:.75; font-size:10px; font-weight:800; letter-spacing:.2em; writing-mode:vertical-rl; text-transform:uppercase; }
.home-hero .hero-bottom-note { position:absolute; bottom:25px; left:max(24px,calc((100vw - var(--max))/2)); color:#d0e2bf; font-size:10px; letter-spacing:.18em; text-transform:uppercase; font-weight:800; opacity:.72; }
.home-hero:after { opacity:.13; animation:light-sweep 18s ease-in-out infinite; }
@media(prefers-reduced-motion:no-preference){
  .home-hero .hero-content { animation:hero-enter .85s both; }
  .home-hero .hero-visual-wrap { animation:hero-enter 1.05s .16s both; }
  .home-hero .hero-float-card { animation:float-card 6s ease-in-out infinite; }
}
@keyframes hero-enter { from{opacity:.75;transform:translateY(12px)} to{opacity:1;transform:none} }
@keyframes float-card { 0%,100%{translate:0 0} 50%{translate:0 -7px} }

/* One compact header composition across the public information, service, and program pages. */
.page-hero-premium {
  min-height:0;
  padding:57px 0 62px;
  background:
    radial-gradient(circle at 90% 5%,rgba(117,165,36,.18),transparent 26%),
    linear-gradient(122deg,#f0f6e7,#fdfcf7 55%,#f4f5e9);
}
.page-hero-premium .page-hero-pattern {
  opacity:.7;
  background:
    linear-gradient(90deg,transparent calc(50% - .5px),rgba(78,119,41,.065) 50%,transparent calc(50% + .5px)),
    repeating-linear-gradient(0deg,transparent 0 51px,rgba(78,119,41,.04) 52px 53px);
  mask-image:linear-gradient(90deg,transparent,black 15% 84%,transparent);
}
.page-hero-premium .page-hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,.87fr); gap:clamp(40px,5.5vw,94px); align-items:center; }
.page-hero-copy { position:relative; padding:11px 0 10px 25px; }
.page-hero-copy:before { content:""; position:absolute; left:0; top:8px; bottom:8px; width:2px; background:linear-gradient(var(--color-citrus) 0 48px,#8aa748 48px 75%,transparent); }
.page-hero-premium .breadcrumbs { font-size:11px; margin:0 0 23px; line-height:1.35; }
.page-hero-premium .breadcrumbs span:last-child { max-width:380px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.page-hero-premium .hero-label { margin:0; font-size:10px; letter-spacing:.16em; }
.page-hero-premium .hero-label-line { display:none; }
.page-hero-copy h1 { max-width:690px; font-size:var(--type-page); line-height:1.065; letter-spacing:-.052em; margin:15px 0 15px; }
.page-hero-copy>p { font-size:clamp(15px,1.05vw,17px); line-height:1.7; max-width:620px; margin:0; }
.page-hero-copy .hero-actions { margin-top:24px; }
.page-hero-copy .hero-footnote { margin-top:29px; }
.page-hero-visual { padding:14px 14px 20px 0; }
.page-hero-visual:before { content:""; position:absolute; z-index:-1; inset:1px 1px 33px 32px; border:1px solid rgba(91,135,47,.37); border-radius:130px 20px 100px 20px; transform:rotate(4deg); }
.page-hero-visual:after { content:""; position:absolute; right:2px; top:6px; width:18px; height:18px; border-radius:50%; background:var(--color-citrus); box-shadow:0 0 0 9px rgba(226,131,5,.1); }
.page-hero-visual .hero-photo-frame { padding:8px; border:1px solid rgba(111,145,61,.18); background:rgba(255,255,255,.45); border-radius:100px 20px 90px 20px; }
.page-hero-visual .hero-photo-frame .image-slot { border-radius:92px 15px 82px 15px; }
.page-hero-visual .image-slot.image-ready img { aspect-ratio:1.48/1; max-height:360px; }
.page-hero-visual .visual-caption { left:25px; bottom:21px; border-radius:7px; padding:8px 11px; }
.hero-family-service {
  background:radial-gradient(circle at 82% 7%,rgba(174,213,87,.19),transparent 27%),linear-gradient(125deg,#1a3e11,#2c5e19 60%,#456d24);
}
.hero-family-service .page-hero-pattern { background:repeating-linear-gradient(0deg,transparent 0 51px,rgba(241,255,220,.045) 52px 53px); }
.hero-family-service .page-hero-copy:before { background:linear-gradient(#f5b54d,#c0da8b 80%,transparent); }
.hero-family-service .page-hero-visual:before { border-color:rgba(234,246,209,.3); }
.hero-family-service .page-hero-visual .hero-photo-frame { border-color:rgba(240,248,221,.3); background:rgba(255,255,255,.045); }
.hero-family-program { background:radial-gradient(circle at 79% 8%,rgba(232,176,68,.16),transparent 30%),linear-gradient(117deg,#f7f2e6,#fffdf7 57%,#edf4df); }
.hero-family-journal,.hero-family-recipe { background:radial-gradient(circle at 80% 7%,rgba(228,158,58,.15),transparent 28%),linear-gradient(116deg,#f9f3e8,#fffdf9 59%,#eff5e9); }
.page-hero-type { padding:62px 0; }
.page-hero-type .page-hero-copy { max-width:900px; padding:11px 0 10px 25px; }
.page-hero-type .page-hero-copy h1 { max-width:880px; font-size:clamp(35px,3.2vw,48px); }
.page-hero-type:before { content:"SD"; position:absolute; right:8%; top:50%; translate:0 -50%; color:rgba(68,113,42,.085); font-size:clamp(180px,21vw,340px); line-height:1; font-weight:850; letter-spacing:-.14em; pointer-events:none; }
.page-hero-type.hero-family-journal:before { color:rgba(151,113,55,.085); }

/* Balanced editorial compositions and a consistent section rhythm. */
.section { padding:clamp(58px,4.8vw,76px) 0; }
.section-head { margin-bottom:clamp(25px,2.5vw,36px); align-items:end; }
.section-head>div { max-width:690px; }
.section-head .eyebrow,.editorial-copy .kicker { display:inline-flex; gap:11px; align-items:center; }
.section-head .eyebrow:before,.editorial-copy .kicker:before { content:""; display:block; width:22px; height:2px; background:var(--color-citrus); }
.section.soft { background:radial-gradient(circle at 8% 18%,rgba(218,233,191,.2),transparent 31%),linear-gradient(180deg,#f8f8f1,#f5f5eb); }
.section.sage { background:radial-gradient(circle at 95% 7%,rgba(214,233,174,.33),transparent 30%),linear-gradient(180deg,#eff5e8,#eaf2e0); }
.section.why-section { background:radial-gradient(circle at 93% 13%,rgba(226,166,64,.12),transparent 28%),linear-gradient(125deg,#fffcf7,#f6f4e9); }
.section.dark { background:radial-gradient(circle at 95% 10%,rgba(140,183,67,.15),transparent 29%),linear-gradient(120deg,#1d3d15,#284e1a); }
.editorial-grid,.editorial-grid-premium { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; gap:clamp(34px,5vw,75px); }
.editorial-grid>.editorial-copy { display:flex; flex-direction:column; justify-content:center; min-width:0; }
.editorial-grid>.editorial-copy>* { flex:none; }
.editorial-grid>.image-slot,.editorial-grid>.editorial-visual { align-self:stretch; min-height:clamp(410px,36vw,575px); }
.editorial-grid>.image-slot.image-ready,.editorial-grid>.editorial-visual>.image-slot.image-ready { height:100%; }
.editorial-grid>.image-slot.image-ready img,.editorial-grid>.editorial-visual>.image-slot.image-ready img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
.editorial-grid>.editorial-visual { position:relative; }
.editorial-grid>.editorial-visual>.image-slot { height:100%; }
.editorial-grid>.editorial-visual>.image-slot.image-ready img { max-height:none; }
.editorial-grid .editorial-badge { right:-17px; bottom:28px; }
.editorial-copy h2 { margin:11px 0 17px; }
.editorial-copy p { font-size:15px; }
.editorial-copy .check-stack { margin:20px 0 22px; gap:8px; }
.editorial-copy .check-stack span { padding:10px 13px; font-size:13px; line-height:1.47; }
.editorial-copy .site-btn { align-self:flex-start; }

/* Surface language shared by cards and section-specific modules. */
.why-grid article,.outcome-grid article,.team-standards>div,.program-focus-grid article,.contact-paths a,.resource-preview-grid a,.resource-topic-grid a,.connected-care-grid article,.service-insight-grid div {
  position:relative; overflow:hidden; border-color:var(--color-rule); background:linear-gradient(145deg,#fff,#fcfdf9); box-shadow:var(--shadow-card);
}
.why-grid article:before,.outcome-grid article:before,.team-standards>div:before,.program-focus-grid article:before,.connected-care-grid article:before {
  content:""; position:absolute; top:0; left:23px; width:43px; height:3px; background:linear-gradient(90deg,var(--color-leaf),var(--color-citrus)); border-radius:0 0 6px 6px;
}
.why-grid article:nth-child(even),.outcome-grid article:nth-child(even),.connected-care-grid article:nth-child(even) { background:linear-gradient(145deg,#fff,#f5f9ef); }
.service-card,.program-card,.article-card,.recipe-card,.feature-card { border-color:var(--color-rule); box-shadow:var(--shadow-card); }
.directory-service-card .service-card-art { background:radial-gradient(circle at 92% 0%,rgba(225,176,65,.17),transparent 38%),linear-gradient(110deg,#eaf3dd,#f8fbf3); }
.service-group-showcase { overflow:hidden; border-radius:25px; }
.service-group-copy { position:relative; z-index:1; }
.service-group-copy h3 { font-size:var(--type-section); }
.program-method-grid article:nth-child(even) { background:rgba(255,255,255,.04); }
.resource-hub-card:not(.featured) { background:radial-gradient(circle at 100% 0,rgba(151,191,72,.15),transparent 38%),#fff; }
.contact-paths a:hover,.resource-preview-grid a:hover { border-color:#b4d091; }
.process-band,.unsure-band,.review-before-plan,.resource-disclaimer { background:radial-gradient(circle at 97% 0,rgba(161,202,77,.15),transparent 28%),linear-gradient(128deg,#fff,#f6faef); }
.program-card-teaser .program-card-body,.home-service-card .service-card-body { background:linear-gradient(180deg,#fff,#fcfdf9); }
.footer-newsletter { background:radial-gradient(circle at 85% 5%,rgba(154,192,83,.13),transparent 35%),rgba(255,255,255,.065); }
.final-cta-section { padding:70px 0 78px; }
.service-detail-section { background:radial-gradient(circle at 93% 4%,rgba(190,217,140,.19),transparent 23%),linear-gradient(180deg,#f9fcf4,#fff 42%); }
.service-intro-band { border-left:4px solid var(--color-citrus); background:linear-gradient(115deg,#edf5e2,#f8fbf2); }
.service-side-card,.service-ready-card,.program-enroll-card,.contact-form,.calculator-card,.account-access-card,.join-card { border-color:var(--color-rule); box-shadow:var(--shadow-card); }
.service-side-card { background:radial-gradient(circle at 100% 0,rgba(159,195,75,.16),transparent 33%),linear-gradient(155deg,#f4f9ec,#fff); }
.process-timeline article { padding:24px 20px; border-bottom-color:var(--color-rule); }
.process-timeline article:nth-child(even) { background:linear-gradient(90deg,#f4f9ed,transparent 87%); border-radius:12px; }
.process-timeline article>span { font-family:inherit; font-size:31px; font-weight:750; color:#8da35a; }
.process-timeline h3 { font-size:var(--type-card); }
.phase2-step-card { overflow:hidden; border:1px solid var(--color-rule); border-radius:23px; box-shadow:var(--shadow-card); background:#fff; }
.platform-story-grid h2,.about-dark-grid h2 { font-size:var(--type-section); }
.contact-panel,.join-aside { background:radial-gradient(circle at 92% 0,rgba(160,206,79,.22),transparent 33%),linear-gradient(145deg,#1c3d13,#2c5918); }
.contact-panel h2 { font-size:var(--type-section); line-height:var(--leading-heading); }
.contact-form h3 { font-size:var(--type-subsection); }
.account-access,.join-wrap { background:radial-gradient(circle at 83% 10%,rgba(179,212,113,.2),transparent 27%),linear-gradient(120deg,#f5f8ef,#fbfbf6); }
.account-access-copy h1,.verify-access h1 { font-size:var(--type-page); line-height:var(--leading-heading); }
.join-card h1 { font-size:clamp(28px,2.4vw,36px); line-height:1.13; }
.join-aside h2 { font-size:clamp(28px,2.5vw,36px); }
.article-body h2,.legal>h2 { font-size:var(--type-subsection); }
.recipe-method { background:#f3f8ee; border-color:var(--color-rule); }
.faq-item button { font-size:17px; }
.faq-item:nth-child(even) { background:linear-gradient(90deg,#f8faf3,transparent 80%); }
.legal-contact { background:radial-gradient(circle at 100% 0,rgba(165,205,91,.16),transparent 31%),#eff7e6; }

@media(max-width:1050px){
  .home-hero .hero-grid,.page-hero-premium .page-hero-grid,.editorial-grid,.editorial-grid-premium { grid-template-columns:1fr; }
  .home-hero .hero-grid:before,.home-hero .hero-side-note { display:none; }
  .home-hero .hero-content { padding-left:0; }
  .home-hero .hero-visual-wrap .image-slot.image-ready img { max-height:530px; }
  .editorial-grid>.image-slot,.editorial-grid>.editorial-visual { min-height:400px; }
  .editorial-grid>.image-slot.image-ready,.editorial-grid>.editorial-visual>.image-slot.image-ready { height:auto; min-height:400px; }
  .editorial-grid>.image-slot.image-ready img,.editorial-grid>.editorial-visual>.image-slot.image-ready img { position:absolute; }
}
@media(max-width:700px){
  :root { --type-display:clamp(40px,10vw,50px); --type-page:clamp(34px,8.8vw,45px); --type-section:clamp(28px,7vw,36px); --type-subsection:25px; }
  .site-container { width:calc(100% - 36px); }
  .section { padding:55px 0; }
  .section-head { align-items:start; gap:15px; }
  .hero.home-hero { min-height:0; padding:48px 0 60px; }
  .home-hero .hero-content .eyebrow { font-size:10px; }
  .hero-content h1 { font-size:var(--type-display); line-height:1.08; margin:14px 0 17px; }
  .home-hero .hero-copy { font-size:15px; }
  .home-hero .hero-proof-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .home-hero .hero-proof-grid>div { padding:10px; }
  .home-hero .hero-proof-grid span { font-size:10px; line-height:1.3; }
  .home-hero .hero-bottom-note { display:none; }
  .hero.home-hero .hero-visual-wrap .image-slot.image-ready { aspect-ratio:1/1; }
  .hero.home-hero .hero-visual-wrap .image-slot { border-radius:75px 17px 68px 17px; }
  .page-hero-premium { padding:38px 0 48px; }
  .page-hero-copy { padding:6px 0 5px 17px; }
  .page-hero-type .page-hero-copy { padding:6px 0 5px 17px; }
  .page-hero-copy:before { top:3px; bottom:3px; }
  .page-hero-premium .breadcrumbs { margin-bottom:15px; }
  .page-hero-copy h1 { font-size:var(--type-page); }
  .page-hero-type .page-hero-copy h1 { font-size:var(--type-page); }
  .page-hero-copy>p { font-size:15px; }
  .page-hero-copy .hero-footnote { margin-top:24px; }
  .page-hero-visual { padding:8px 8px 5px 0; }
  .page-hero-visual .image-slot.image-ready img { max-height:none; }
  .editorial-grid>.image-slot,.editorial-grid>.editorial-visual { min-height:300px; }
  .editorial-grid>.image-slot.image-ready,.editorial-grid>.editorial-visual>.image-slot.image-ready { min-height:300px; }
  .editorial-grid .editorial-badge { right:auto; bottom:auto; }
  .floating-whatsapp { right:10px; bottom:10px; padding:9px 11px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce){
  .home-hero .hero-content,.home-hero .hero-visual-wrap,.home-hero .hero-float-card { animation:none!important; }
}
