/* Calm Breathing Therapies resource library, 24 October 2026.
   Scoped additions preserve the site's existing design and hashed assets. */
.resource-page { background:#fffefa; }
.resource-page main { overflow:visible; }
.resource-wrap { width:min(1160px,calc(100% - 48px)); margin-inline:auto; }
.resource-page h1 { font-size:clamp(2.4rem,4.8vw,4.4rem); line-height:1.08; }
.resource-page h2 { font-size:clamp(1.8rem,3vw,2.55rem); line-height:1.2; }
.resource-page h3 { font-size:1.5rem; line-height:1.25; }
.resource-page h4 { font:700 1rem var(--sans); margin:22px 0 8px; }
.resource-page [hidden] { display:none !important; }
.resource-hero { display:grid; grid-template-columns:1.2fr .8fr; gap:50px; align-items:center; padding-block:70px 54px; }
.resource-hero h1 { max-width:700px; margin-bottom:24px; }
.resource-hero h1 em { display:block; font-style:normal; color:var(--teal-dark); }
.resource-hero figure { margin:0; padding:20px; border-radius:50% 50% 28px 28px; background:#edf4ef; }
.resource-hero figure img { border-radius:22px; width:100%; height:auto; }
.resource-hero figcaption { font-size:.8rem; color:var(--ink-soft); text-align:center; margin-top:15px; }
.resource-lead { font-size:1.27rem; color:var(--teal-dark); max-width:760px; line-height:1.55; }
.resource-actions { display:flex; gap:22px; flex-wrap:wrap; align-items:center; margin-block:25px; }
.resource-actions a { font-weight:650; }
.resource-small { font-size:.87rem; color:var(--ink-soft); line-height:1.6; }
.resource-notice { border-left:4px solid #a9c9c1; background:#eef5f1; border-radius:0 20px 20px 0; padding:28px 32px; margin-block:26px 42px; }
.resource-notice h2 { font:700 1.2rem var(--sans); letter-spacing:0; margin-bottom:15px; }
.resource-notice p { font-size:.97rem; max-width:980px; }
.resource-notice p:last-child { margin-bottom:0; }
.resource-section { padding-block:32px; scroll-margin-top:160px; }
.resource-section>.eyebrow { margin-bottom:12px; }
.topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:30px; }
.topic-card { display:flex; align-items:center; gap:16px; padding:17px; border:1px solid var(--line); border-radius:18px; text-decoration:none; background:white; color:var(--ink); transition:background .15s,border-color .15s; }
.topic-card:hover { background:#f1f6f3; border-color:#7ea9a5; }
.topic-card img { width:80px; height:64px; object-fit:cover; border-radius:12px; }
.topic-card>span:nth-child(2) { flex:1; }
.topic-card strong { display:block; font-size:1.08rem; }
.topic-card small { display:block; color:var(--ink-soft); font-size:.81rem; line-height:1.4; margin-top:4px; }
.resource-filters { display:grid; grid-template-columns:1.3fr 1fr auto; gap:18px; padding:25px; background:#edf3f1; border-radius:18px; align-items:end; margin-top:26px; }
.resource-filters label { display:block; font-size:.9rem; font-weight:700; margin-bottom:7px; }
.resource-filters input,.resource-filters select { width:100%; min-height:49px; border:1px solid #8daaaa; border-radius:8px; padding:10px 12px; background:white; color:var(--ink); }
.resource-filters button { min-height:49px; border:1px solid var(--teal); border-radius:8px; background:transparent; padding:10px 18px; cursor:pointer; }
.resource-page a:focus-visible,.resource-page button:focus-visible,.resource-page input:focus-visible,.resource-page select:focus-visible,.resource-page summary:focus-visible { outline:3px solid #bc8b26; outline-offset:4px; }
#resource-results { margin:12px 0 20px; }
.resource-group { margin-block:14px; background:white; border:1px solid var(--line); border-radius:18px; overflow:clip; scroll-margin-top:170px; }
.resource-group>summary { display:flex; gap:18px; align-items:center; padding:23px 25px; cursor:pointer; font:500 1.45rem var(--serif); }
.resource-group>summary::before { content:'+'; font:400 1.4rem var(--sans); width:20px; }
.resource-group[open]>summary::before { content:'−'; }
.resource-group>summary::-webkit-details-marker { display:none; }
.resource-group .group-count { margin-left:auto; font:500 .85rem var(--sans); color:var(--ink-soft); }
.resource-group-inner { padding:0 24px 25px; }
.resource-group-inner>p { max-width:850px; }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.resource-card { background:white; border:1px solid var(--line); border-radius:16px; padding:25px; display:flex; flex-direction:column; align-items:flex-start; min-width:0; scroll-margin-top:170px; }
.resource-card h3 { margin:15px 0; }
.resource-card>p { font-size:.94rem; line-height:1.65; }
.resource-kind { font-size:.72rem; letter-spacing:.045em; text-transform:uppercase; font-weight:700; color:var(--teal-dark); background:#edf4ef; border-radius:5px; padding:5px 8px; }
.resource-card>.resource-file { margin-top:auto; font-size:.77rem; color:var(--ink-soft); padding-top:10px; }
.resource-download { display:inline-flex; justify-content:space-between; align-items:center; gap:18px; font-size:.95rem; font-weight:700; padding-block:9px; min-height:44px; }
.resource-guide-link { font-size:.85rem; padding-block:7px; }
.resource-instructions { width:100%; margin-top:14px; border-top:1px solid var(--line); padding-top:14px; }
.resource-instructions summary { cursor:pointer; font-size:.9rem; font-weight:650; }
.resource-instructions>div { padding-top:18px; font-size:.94rem; line-height:1.65; overflow-wrap:anywhere; }
.resource-instructions ol { padding-left:22px; }
.resource-instructions li { margin-bottom:9px; }
.resource-instructions p { font-size:inherit; }
.category-resources { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.category-resources .resource-card { height:auto; }
.resource-usage { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding:25px 0; border-block:1px solid var(--line); margin-block:30px; }
.resource-usage p { font-size:.94rem; margin:0; }
.resource-prose { max-width:850px; }
.resource-prose>h1 { margin-top:40px; }
.resource-prose h2 { margin-top:35px; }
.resource-prose h3 { margin-top:30px; }
.resource-consult { background:#e8f0ed; border-radius:24px; padding:clamp(28px,4vw,50px); margin-block:35px; }
.resource-consult p { max-width:840px; }
.resource-consult .resource-small { margin-bottom:0; }
.resource-support { max-width:850px; margin:65px auto; padding:35px; border:1px solid #d6ded5; border-radius:20px; background:#faf9f2; }
.resource-support h2 { font-size:2rem; }
.resource-support>p { max-width:720px; }
.stripe-embed { min-height:254px; max-width:100%; margin-block:22px 12px; }
stripe-buy-button { display:block; max-width:100%; }
.stripe-fallback { display:inline-block; min-height:44px; padding-block:8px; font-weight:650; }
.resource-breadcrumb { font-size:.87rem; padding-top:30px; display:flex; gap:8px; flex-wrap:wrap; }
.resource-category-hero { display:grid; grid-template-columns:1.4fr .6fr; align-items:center; gap:40px; padding-block:40px; }
.resource-category-hero h1 { font-size:clamp(2.2rem,4vw,3.5rem); }
.resource-category-hero img { width:100%; height:auto; border-radius:24px; }
.toolkit-download { display:grid; grid-template-columns:1fr auto; align-items:center; gap:32px; padding:30px; background:#e8f1ee; border-radius:20px; margin-block:25px; }
.toolkit-download h2 { font-size:1.7rem; }
.toolkit-download p { margin:0; font-size:.92rem; }
.toolkit-download .button { max-width:320px; text-align:center; }
.resource-sources { overflow-wrap:anywhere; font-size:.91rem; }
.resource-sources li { margin-bottom:13px; }
.resource-shared,.phobia-paths { padding:28px; border:1px solid var(--line); border-radius:18px; margin-block:24px; }
.resource-shared h2,.phobia-paths h2 { font-size:1.7rem; }
@media(max-width:950px) {
 .resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .resource-hero { gap:25px; }
 .toolkit-download { grid-template-columns:1fr; gap:20px; }
 .resource-category-hero { grid-template-columns:1fr; }
 .resource-category-hero img { display:none; }
}
@media(max-width:680px) {
 .resource-wrap { width:calc(100% - 32px); }
 .resource-hero { grid-template-columns:1fr; padding-block:38px 20px; }
 .resource-hero figure { display:none; }
 .resource-hero h1 { font-size:2.65rem; }
 .resource-lead { font-size:1.15rem; }
 .resource-section { padding-block:25px; }
 .resource-grid,.category-resources,.topic-grid,.resource-usage { grid-template-columns:1fr; }
 .resource-filters { grid-template-columns:1fr; padding:20px; gap:14px; }
 .resource-filters button { justify-self:start; }
 .resource-notice { padding:22px; }
 .resource-group>summary { font-size:1.25rem; padding:20px 15px; gap:8px; }
 .resource-group .group-count { font-size:.75rem; white-space:nowrap; }
 .resource-group-inner { padding:0 13px 17px; }
 .resource-card { padding:23px; }
 .resource-actions { gap:18px; }
 .resource-actions .button { width:100%; }
 .resource-support { margin-block:35px; padding:23px; }
 .resource-support h2 { font-size:1.8rem; }
 .resource-usage { gap:20px; }
 .topic-card img { width:70px; height:58px; }
 .toolkit-download { padding:24px; }
 .toolkit-download .button { max-width:100%; }
}
@media(max-width:380px) {
 /* The official Stripe component needs 288px; reserve that width without scaling text. */
 .resource-support { margin-inline:-10px; padding:23px 0; }
 .resource-support>p,.resource-support>h2,.resource-support>.eyebrow { margin-inline:16px; }
 .resource-support>.eyebrow { display:block; }
 .resource-support .stripe-embed { display:grid; justify-items:center; }
}
@media print {
 .resource-filters,.resource-support,.resource-consult,.resource-hero figure { display:none; }
 .resource-wrap { width:100%; }
 .resource-grid,.category-resources { display:block; }
 .resource-card { break-inside:avoid; margin-bottom:15px; }
}
/* v2: the worksheet itself leads each resource. */
.resource-hero { padding-block:42px 32px; }
.resource-hero h1 { font-size:clamp(2.4rem,4.5vw,4rem); }
.resource-hero figure { border-radius:18px; padding:12px; background:#eef3f1; }
.resource-hero figure img { border-radius:0; }
.resource-hero figcaption { margin:12px 0 4px; }
.worksheet-preview { display:grid; place-items:center; gap:12px; padding:20px; width:100%; background:#edf3f0; text-decoration:none; color:#155f67; border-radius:15px 15px 0 0; }
.worksheet-preview img { display:block; width:auto; height:338px; max-width:100%; object-fit:contain; border-radius:0; box-shadow:0 3px 12px #163b3920; background:white; }
.worksheet-preview:hover { background:#e2eeea; }
.preview-caption { display:flex; gap:8px; align-items:center; font:650 .88rem var(--sans); text-decoration:underline; text-underline-offset:3px; min-height:24px; }
.hero-preview { border-radius:12px; padding:20px 14px; }
.hero-preview img { height:390px; }
.resource-card { padding:0; display:flex; align-items:stretch; overflow:visible; }
.resource-card-content { display:flex; flex-direction:column; align-items:flex-start; padding:22px; flex:1; }
.resource-card-content h3 { margin:13px 0 10px; font-size:1.4rem; }
.resource-card-content>p { font-size:.94rem; line-height:1.55; margin-bottom:12px; }
.resource-card-content>.resource-file { font-size:.77rem; margin-top:auto; padding-top:6px; color:var(--ink-soft); }
.resource-card-content>.resource-download { margin-top:0; }
.resource-grid,.category-resources { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; }
.resource-instructions { align-self:stretch; }
.resource-instructions ul { padding-left:20px; }
.diagram-example { margin:16px 0; padding:18px; background:#eef5f1; border-radius:8px; }
.diagram-example dt { font-weight:700; margin-top:12px; }
.diagram-example dt:first-child { margin-top:0; }
.diagram-example dd { margin:5px 0 0; }
.topic-picker { scroll-margin-top:160px; margin-block:10px 20px; }
.topic-picker>details { border-block:1px solid var(--line); }
.topic-picker>details>summary { display:flex; justify-content:space-between; padding:18px 0; cursor:pointer; font-weight:700; list-style:none; }
.topic-picker>details>summary::-webkit-details-marker { display:none; }
.topic-picker>details[open]>summary>span { transform:rotate(45deg); }
.topic-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:0 0 20px; }
.topic-card { border-radius:10px; padding:14px; gap:9px; }
.topic-card>span:first-child { flex:1; }
.topic-card>span:last-child { flex:0; }
.topic-card strong { font-size:.94rem; }
.topic-card small { font-size:.77rem; }
.resource-category-hero { grid-template-columns:1fr 300px; padding-block:32px; }
.resource-category-hero .hero-preview img { height:320px; }
.resource-category-hero h1 { font-size:clamp(2rem,3.5vw,3.2rem); }
.phobia-paths { padding:18px 24px; }
.phobia-paths p { margin:0; }
.worksheet-dialog { width:min(1100px,calc(100% - 24px)); height:calc(100dvh - 24px); max-width:1100px; max-height:calc(100dvh - 24px); border:1px solid #9aafac; border-radius:14px; padding:0; background:white; color:#102d37; box-shadow:0 12px 70px #102d3755; }
.worksheet-dialog::backdrop { background:#082d3bc7; }
.worksheet-dialog-inner { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.worksheet-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 20px; }
.worksheet-dialog-heading h2 { font-size:clamp(1.1rem,2.3vw,1.5rem); margin:4px 0 0; line-height:1.25; }
.worksheet-dialog-heading .eyebrow { font-size:.7rem; margin:0; }
.worksheet-dialog button { font:650 .9rem var(--sans); min-width:44px; min-height:44px; border:1px solid #8daaaa; border-radius:8px; background:#fff; color:#155f67; padding:8px 12px; cursor:pointer; }
.worksheet-dialog .preview-close { flex-shrink:0; font-size:1.6rem; }
.worksheet-dialog button:disabled { opacity:.4; cursor:default; }
.worksheet-viewer { min-height:0; overflow:auto; padding:16px; background:#e5ebe8; overscroll-behavior:contain; }
.worksheet-viewer img { display:block; height:100%; width:auto; max-width:100%; max-height:100%; margin:0 auto; object-fit:contain; }
.worksheet-viewer.is-zoomed img { width:1240px; height:auto; max-width:none; max-height:none; margin:0; }
.preview-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; padding:12px 18px; border-top:1px solid #d0deda; }
.preview-paging { display:flex; flex:1; align-items:center; gap:10px; min-width:210px; }
.preview-page-status { font-size:.84rem; line-height:1.35; }
.preview-full-size { font-size:.84rem; min-height:44px; display:inline-flex; align-items:center; }
.preview-toolbar .button { font-size:.9rem; min-height:44px; }
@media(max-width:950px) {
 .resource-grid,.category-resources { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .topic-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .resource-category-hero { grid-template-columns:1fr; }
 .resource-category-hero>.hero-preview { display:none; }
}
@media(max-width:680px) {
 .resource-hero { padding-block:30px 18px; }
 .resource-hero h1 { font-size:2.4rem; }
 .resource-grid,.category-resources { grid-template-columns:1fr; }
 .resource-card { padding:0; }
 .resource-card-content { padding:21px; }
 .worksheet-preview img { height:350px; }
 .topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .resource-category-hero { gap:0; padding-bottom:0; }
 .worksheet-dialog { width:calc(100% - 12px); height:calc(100dvh - 12px); max-height:calc(100dvh - 12px); }
 .worksheet-dialog-heading { padding:12px; gap:10px; }
 .worksheet-viewer { padding:8px; }
 .preview-toolbar { padding:10px; gap:8px; }
 .preview-paging { flex-basis:calc(100% - 100px); min-width:160px; }
 .preview-toolbar>.preview-pdf { margin-left:auto; }
 .resource-filters { padding:16px; }
}
@media print { .worksheet-dialog { display:none!important; } .worksheet-preview img { height:280px; } }

/* V3: restrained support, clearer formats and the existing brand wave. */
.resource-top-wave { height:clamp(35px,4.8vw,65px); background:url('images/branding/brand-waves.svg') center bottom / 100% 100% no-repeat; transform:rotate(180deg); pointer-events:none; }
.resource-formats { display:flex; flex-wrap:wrap; gap:10px 18px; }
.resource-support { text-align:center; }
.resource-support p { margin-inline:auto; }
.resource-support .eyebrow { justify-content:center; }
.stripe-embed { display:flex; align-items:center; justify-content:center; width:100%; margin-inline:auto; }
.stripe-embed stripe-buy-button { display:block; width:288px; max-width:100%; flex:0 0 auto; margin-inline:auto; }
.resource-floating-support { position:fixed; z-index:80; left:20px; bottom:22px; width:246px; padding:12px 40px 12px 14px; background:#fffdf7; border:1px solid #bbd1ce; border-radius:12px; box-shadow:0 4px 18px #102d3726; }
.resource-floating-support a { display:block; color:#155f67; text-decoration:none; line-height:1.35; font-size:13px; }
.resource-floating-support strong { display:block; font-size:14px; }
.resource-floating-support a>span { display:block; margin-top:3px; }
.resource-floating-support .support-dismiss { position:absolute; right:1px; top:1px; width:36px; height:36px; border:0; background:transparent; color:#155f67; font-size:23px; cursor:pointer; }
.resource-floating-support[hidden] { display:none!important; }
.resource-floating-support a:focus-visible,.resource-floating-support button:focus-visible { outline:3px solid #c18c28; outline-offset:3px; }
body:has(.worksheet-dialog[open]) .resource-floating-support { display:none; }
@media(max-width:680px) {
 .resource-floating-support { left:auto; right:12px; bottom:calc(82px + env(safe-area-inset-bottom)); width:232px; }
 .resource-support { padding-inline:16px; }
 .stripe-embed stripe-buy-button { width:288px; max-width:100%; }
 .resource-formats { flex-direction:column; gap:6px; }
}
@media print { .resource-floating-support,.resource-top-wave { display:none!important; } }
