/* Complete project themes: full-bleed artwork, section treatments and useful details. */
body[data-project-theme] {
  --project-deep: #092e4f;
  --project-paper: #fbfaf5;
  --project-tint: #edf2ec;
  --project-accent: #e6c468;
  --project-ink: #153549;
  --project-muted: #4b626c;
  --project-scene: url('project-anchor-hero.webp');
  background: var(--project-paper);
}
body[data-project-theme="sessions"] { --project-deep:#0c3036; --project-paper:#f8faf3; --project-tint:#e7f0df; --project-accent:#bedb86; --project-ink:#153c37; --project-muted:#46645b; --project-scene:url('project-sessions-hero.webp'); }
body[data-project-theme="walk"] { --project-deep:#083653; --project-paper:#fffaf2; --project-tint:#f2eee4; --project-accent:#f3a25b; --project-ink:#13374a; --project-muted:#53626a; }
body[data-project-theme="dignity"] { --project-deep:#422f2a; --project-paper:#fffaf3; --project-tint:#f3e8db; --project-accent:#efa568; --project-ink:#45362d; --project-muted:#746252; }
body[data-project-theme="comfort"] { --project-deep:#1b3653; --project-paper:#fdfaf1; --project-tint:#f1e8cf; --project-accent:#e7c56e; --project-ink:#203a50; --project-muted:#596674; --project-scene:url('project-comfort-hero.webp'); }
body[data-project-theme="garden"] { --project-deep:#173a2b; --project-paper:#faf9ef; --project-tint:#e6ecdb; --project-accent:#c2d794; --project-ink:#24452f; --project-muted:#5a6b50; --project-scene:url('project-garden-hero.webp'); }
body[data-project-theme] main { background:var(--project-paper); }
body[data-project-theme] .site-footer { border-top:.45rem solid var(--project-accent); background:var(--project-deep); }
body[data-project-theme] .header-support { background:var(--project-deep); }
.project-symbol { display:block; width:3rem; height:3rem; flex-shrink:0; }

/* The hero artwork is the background of the whole opening section. */
.project-hero { position:relative; isolation:isolate; overflow:hidden; padding:0; color:#fff; background:var(--project-deep); }
.project-hero::before { display:none; }
.project-hero-backdrop, .project-hero-shade { position:absolute; inset:0; pointer-events:none; }
.project-hero-backdrop { z-index:-3; }
.project-hero-backdrop > img, .project-hero-backdrop > .project-source-window { display:block; width:100%; max-width:none; height:100%; object-fit:cover; object-position:66% 43%; }
.project-hero--anchor .project-hero-backdrop > img { object-position:70% 47%; }
.project-hero--comfort .project-hero-backdrop > img { object-position:65% 53%; }
.project-hero--garden .project-hero-backdrop > img { object-position:62% 50%; }
.project-hero-shade { z-index:-2; background:linear-gradient(90deg,rgba(5,25,39,.94) 0%,rgba(5,25,39,.79) 32%,rgba(5,25,39,.36) 58%,rgba(5,25,39,.04) 86%),linear-gradient(0deg,rgba(5,25,39,.84),transparent 58%); }
.project-hero--garden .project-hero-shade { background:linear-gradient(90deg,rgba(12,35,22,.93),rgba(12,35,22,.66) 38%,rgba(12,35,22,.1) 82%),linear-gradient(0deg,rgba(12,35,22,.88),transparent 58%); }
.project-hero--dignity .project-hero-shade { background:linear-gradient(90deg,rgba(40,25,19,.95),rgba(40,25,19,.77) 37%,rgba(40,25,19,.16) 82%),linear-gradient(0deg,rgba(40,25,19,.88),transparent 65%); }
.project-hero > .shell { width:min(calc(100% - 4rem),100rem); position:relative; z-index:1; padding-block:3rem 4.5rem; }
.project-hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr); align-items:center; gap:2.5rem; min-height:clamp(31rem,62svh,44rem); }
.project-hero-copy { min-width:0; max-width:45rem; }
.project-hero .breadcrumbs { margin-bottom:2.2rem; color:#fff; font-size:.8rem; }
.project-hero .breadcrumbs a, .project-hero .breadcrumbs span { color:#e7edf0; }
.project-hero .eyebrow { color:var(--project-accent); letter-spacing:.16em; font-size:.75rem; }
.project-hero h1 { color:#fff; font-size:clamp(3rem,5.3vw,5.7rem); line-height:1.04; letter-spacing:-.05em; max-width:48rem; text-wrap:balance; }
.project-hero .lead { margin-top:1.6rem; max-width:38rem; color:#f0f4f5; font-size:clamp(1rem,1.35vw,1.22rem); line-height:1.65; }
.project-hero-actions { margin-top:2rem; }
.project-hero .button { display:inline-flex; align-items:center; gap:1.5rem; background:var(--project-accent); border-color:var(--project-accent); color:#102d36; box-shadow:0 8px 30px rgba(0,0,0,.12); }
.project-hero .button:hover { background:#fff; border-color:#fff; color:#102d36; }
.project-hero .button > span { font-size:1.4rem; line-height:1; }
.project-hero-signature { align-self:end; justify-self:end; max-width:29rem; padding-bottom:1rem; color:#fff; text-align:right; text-shadow:0 3px 22px rgba(0,0,0,.35); }
.project-hero-signature p { margin:0; font-size:clamp(1.8rem,2.5vw,2.9rem); line-height:1.2; letter-spacing:-.035em; font-weight:800; }
.project-hero-signature p span { display:block; }
.project-hero-signature p span:last-child { color:var(--project-accent); }
.project-hero-signature > .project-symbol { width:3.5rem; height:3.5rem; margin:1rem 0 0 auto; color:var(--project-accent); }
.project-art-credit { position:absolute; left:0; bottom:1rem; margin:0; color:#e0e7e9; font-size:.65rem; line-height:1.5; }

/* Repeated section colours and large quiet motifs carry the theme down the page. */
.project-section { position:relative; isolation:isolate; overflow:hidden; padding-block:clamp(3.5rem,6vw,6rem); color:var(--project-ink); background:var(--project-paper); }
.project-section > .shell { position:relative; z-index:1; }
.project-section--paper { background:var(--project-paper); }
.project-section--tint { background:var(--project-tint); }
.project-section--gold { background:var(--project-accent); }
.project-section--deep { color:#fff; background:var(--project-deep); }
.project-section--deep::before { content:""; position:absolute; z-index:-1; inset:0; background-image:var(--project-scene); background-position:center 45%; background-size:cover; opacity:.075; pointer-events:none; }
body[data-project-theme="walk"] .project-section--deep::before, body[data-project-theme="dignity"] .project-section--deep::before { display:none; }
.project-section-motif { position:absolute; z-index:0; top:1.5rem; right:-2rem; color:var(--project-ink); opacity:.055; transform:rotate(-14deg); pointer-events:none; }
.project-section-motif > .project-symbol { width:19rem; height:19rem; stroke-width:.7; }
.project-section--deep .project-section-motif { color:var(--project-accent); opacity:.11; }
.project-section:nth-of-type(even) .project-section-motif { top:auto; bottom:1rem; right:-1rem; transform:rotate(13deg); }
.project-section > .shell > h2 { max-width:65rem; color:var(--project-ink); font-size:clamp(2rem,3.2vw,3.5rem); line-height:1.16; letter-spacing:-.035em; }
.project-section > .shell > h2::after { content:""; display:block; width:4.5rem; height:.28rem; margin-top:1.25rem; background:var(--project-accent); border-radius:2rem; }
.project-section--deep > .shell > h2, .project-section--deep > .shell > .eyebrow { color:#fff; }
.project-section .section-content > p, .project-section .section-content > ul { color:var(--project-muted); }
.project-section .section-content > .lead { max-width:65rem; }
.project-section--deep .section-content > p, .project-section--deep .section-content > ul { color:#e7edf0; }
.project-section--deep .section-content > a, .project-section--deep .feed-links a { color:#fff; }
.project-section .button { background:var(--project-deep); border-color:var(--project-deep); color:#fff; }
.project-section .button:hover { background:var(--project-ink); border-color:var(--project-ink); }
.project-section .button--secondary { background:transparent; color:var(--project-deep); }
.project-section .button--secondary:hover { background:var(--project-deep); color:#fff; }
.project-section--deep .section-content > .button-row > .button { background:var(--project-accent); border-color:var(--project-accent); color:#102d36; }
.project-section--deep .section-content > .button-row > .button--secondary { background:transparent; color:#fff; border-color:#a3bac8; }
.project-section .card-grid { gap:1.5rem; }
.project-section .card { color:var(--project-ink); background:rgba(255,255,255,.97); border:1px solid color-mix(in srgb,var(--project-ink) 14%,white); border-top:.3rem solid var(--project-accent); border-radius:1.2rem; box-shadow:0 12px 34px rgba(8,36,43,.055); padding:clamp(1.5rem,2.5vw,2.3rem); }
.project-section .card h3 { color:var(--project-ink); font-size:clamp(1.4rem,1.9vw,1.9rem); line-height:1.2; }
.project-section .card p, .project-section .card ul { color:var(--project-muted); }
.project-section .card a { color:var(--project-deep); }
.project-section .card a.button { color:#fff; }
.project-section .card a.button--secondary { color:var(--project-deep); }
.project-section .card a.button--secondary:hover { color:#fff; }
.project-card-symbol { display:grid; place-items:center; width:3.6rem; height:3.6rem; margin-bottom:1.3rem; color:var(--project-deep); background:var(--project-tint); border-radius:1rem; }
.project-card-symbol > .project-symbol { width:2rem; height:2rem; stroke-width:1.4; }
.project-step-number { margin-bottom:1rem; color:var(--project-accent); font-size:3rem; font-weight:800; letter-spacing:-.07em; line-height:1; }
.project-section .tag { padding:.4rem .7rem; color:var(--project-deep); background:var(--project-tint); border-color:transparent; font-size:.72rem; }
.project-section .blue-panel { background:var(--project-deep); border:1px solid rgba(255,255,255,.1); border-top:.3rem solid var(--project-accent); }
.project-section .blue-panel h3 { color:#fff; }
.project-section .blue-panel p { color:#e7edf0; }
.project-section .blue-panel .button { color:var(--project-deep); background:#fff; border-color:#fff; }
.project-section .guidance-panel { color:var(--project-ink); border-left-color:var(--project-accent); background:var(--project-tint); }
.project-section .guidance-panel p { color:var(--project-muted); }
.project-section details { color:var(--project-ink); background:#fff; border-color:color-mix(in srgb,var(--project-ink) 18%,white); }
.project-section details summary { color:var(--project-deep); }
.project-section details a { color:var(--project-deep); }
.project-section .offer-code { color:var(--project-deep); background:var(--project-tint); }
.project-section .filter-button { border-color:rgba(255,255,255,.45); background:transparent; color:#fff; }
.project-section .filter-button[aria-pressed="true"] { background:var(--project-accent); border-color:var(--project-accent); color:#102d36; }
.project-section .event-facts { padding:1.6rem; border-radius:1.2rem; background:var(--project-tint); gap:1rem 1.4rem; }
.project-section .event-facts dt { color:var(--project-deep); }
.project-section .event-facts dd { color:var(--project-ink); }
.project-section .source-poster { padding:1rem; background:#fff; border:1px solid var(--project-tint); border-radius:1.25rem; box-shadow:0 12px 30px rgba(0,0,0,.06); }
.project-section .source-poster figcaption { color:var(--project-muted); }
.project-section .source-poster img { border-radius:.6rem; }
.project-story-gallery { margin:2.8rem 0 0; }
.project-story-gallery > div { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.project-story-gallery .project-source-window { width:100%; height:clamp(13rem,22vw,23rem); border-radius:1.2rem; overflow:hidden; background:var(--project-tint); }
.project-story-gallery figcaption { margin-top:.8rem; font-size:.72rem; color:var(--project-muted); }
body[data-project-theme="anchor"] .project-story-gallery { max-width:76rem; margin-inline:auto; }
body[data-project-theme="anchor"] .project-story-gallery > div { grid-template-columns:repeat(3,minmax(0,1fr)); }
body[data-project-theme="anchor"] .project-story-gallery .anchor-story-window { display:block; height:auto; aspect-ratio:334/294; }

/* Individual projects retain a recognisable layout and their own rhythm. */
body[data-project-theme="sessions"] [data-project-section="1"] .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
body[data-project-theme="sessions"] [data-project-section="1"] .card { border-top-width:.5rem; }
body[data-project-theme="sessions"] .offer-card > .project-card-symbol { background:#e8f0dd; }
body[data-project-theme="anchor"] [data-project-section="2"] .card { background:#faf8ed; }
body[data-project-theme="anchor"] [data-project-section="2"] .project-step-number { color:#a8882d; }
body[data-project-theme="comfort"] #packing-list .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
body[data-project-theme="comfort"] #packing-list .card { background:#fffaf0; }
body[data-project-theme="comfort"] #packing-list .project-card-symbol { background:#f3e5bd; }
body[data-project-theme="comfort"] .project-section--gold > .shell > h2::after { background:var(--project-deep); }
body[data-project-theme="garden"] .project-section a:not(.button) { color:#295b35; }
body[data-project-theme="garden"] .project-story-gallery > div { grid-template-columns:1.2fr .8fr; }
body[data-project-theme="garden"] .project-story-gallery .project-source-window { height:clamp(15rem,25vw,27rem); }
body[data-project-theme="dignity"] .project-section--deep a:not(.button) { color:#f6c79a; }
body[data-project-theme="dignity"] .project-section--deep .card a { color:var(--project-deep); }

@media (max-width:75rem) { .project-hero > .shell { width:calc(100% - 3rem); } .project-hero-grid { gap:1.8rem; } .project-hero h1 { font-size:clamp(2.8rem,5.5vw,4.6rem); } }
@media (max-width:40rem) {
  body[data-project-theme="anchor"] .project-story-gallery > div { grid-template-columns:minmax(0,1fr); max-width:24rem; margin-inline:auto; gap:1rem; }
}
@media (max-width:60rem) {
  .project-hero > .shell { padding-block:2.5rem 4rem; }
  .project-hero-grid { grid-template-columns:1fr; gap:2rem; min-height:35rem; }
  .project-hero-copy { max-width:40rem; }
  .project-hero h1 { font-size:clamp(2.8rem,7vw,4.5rem); max-width:42rem; }
  .project-hero .lead { max-width:35rem; }
  .project-hero-signature { max-width:27rem; padding-bottom:0; }
  .project-hero-signature p { font-size:clamp(1.8rem,4vw,2.5rem); }
  .project-hero-shade { background:linear-gradient(90deg,rgba(5,25,39,.83),rgba(5,25,39,.35)),linear-gradient(0deg,rgba(5,25,39,.95),transparent 78%); }
  .project-section .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .project-section-motif > .project-symbol { width:14rem; height:14rem; }
}
@media (max-width:40rem) {
  .project-hero > .shell { width:calc(100% - 2rem); padding-top:2rem; }
  .project-hero-grid { min-height:35rem; gap:2.5rem; }
  .project-hero .breadcrumbs { font-size:.7rem; margin-bottom:1.8rem; }
  .project-hero h1 { font-size:clamp(2.5rem,10vw,3.6rem); }
  .project-hero .lead { font-size:1rem; }
  .project-hero-signature p { font-size:1.75rem; }
  .project-hero-signature > .project-symbol { width:2.7rem; height:2.7rem; margin-top:.7rem; }
  .project-hero-backdrop > img { object-position:63% center; }
  .project-art-credit { max-width:90%; font-size:.6rem; }
  .project-section .card-grid, body[data-project-theme="sessions"] [data-project-section="1"] .card-grid, body[data-project-theme="comfort"] #packing-list .card-grid { grid-template-columns:1fr; }
  .project-section .event-facts { padding:1.1rem; }
  .project-story-gallery > div, body[data-project-theme="garden"] .project-story-gallery > div { gap:.6rem; }
  .project-story-gallery .project-source-window { height:12rem; border-radius:.7rem; }
  .project-section-motif { right:-4rem; }
}
@media print {
  .project-hero, .project-section-motif, .project-card-symbol, .project-step-number, .project-story-gallery { display:none!important; }
  .project-section { color:#111; background:#fff!important; }
  .project-section--deep::before { display:none; }
  .project-section > .shell > h2, .project-section .section-content > p, .project-section .section-content > ul { color:#111; }
}

/* Keep poster illustrations at their original proportions without enlarging a
   portrait crop to fill a panoramic frame. */
body[data-project-theme="garden"] .project-story-gallery { max-width:54rem; margin-inline:auto; }
body[data-project-theme="garden"] .project-story-gallery > div { grid-template-columns:1.763fr 1fr; align-items:center; gap:1.25rem; }
body[data-project-theme="garden"] .project-story-gallery .project-source-window { display:block; width:100%; height:auto; }
.garden-vegetable-window { aspect-ratio:280/300; }
.garden-flower-window { aspect-ratio:270/510; }
.project-hero--walk .project-hero-backdrop,
.project-hero--dignity .project-hero-backdrop { display:flex; justify-content:flex-end; align-items:center; padding:2rem; }
.project-hero--walk .project-hero-backdrop > .project-source-window,
.project-hero--dignity .project-hero-backdrop > .project-source-window { width:56%; height:auto; flex:none; border-radius:1.25rem; overflow:hidden; }
.project-hero--walk .project-hero-backdrop > .project-source-window { aspect-ratio:528/394; }
.project-hero--dignity .project-hero-backdrop > .project-source-window { aspect-ratio:391/253; }
@media (max-width:60rem) {
  .project-hero--walk .project-hero-backdrop, .project-hero--dignity .project-hero-backdrop { align-items:flex-end; padding:1rem; }
  .project-hero--walk .project-hero-backdrop > .project-source-window,
  .project-hero--dignity .project-hero-backdrop > .project-source-window { width:100%; }
}
@media (max-width:40rem) {
  body[data-project-theme="garden"] .project-story-gallery > div { grid-template-columns:1fr; max-width:23rem; margin-inline:auto; gap:1rem; }
  body[data-project-theme="garden"] .garden-flower-window { max-width:15rem; margin-inline:auto; }
}
