/* Ginger Creative site engine — team-made pages (Your pages).
   Five layouts: story, gallery, cards, promo, prices. Each site sets the --cp-*
   variables in its own stylesheet so the pages wear that site's colours and type. */
:root{
  --cp-fg:inherit; --cp-muted:#6B6B66; --cp-accent:#2B3A33; --cp-accent-fg:#fff;
  --cp-title:inherit; --cp-title-font:inherit; --cp-title-size:clamp(38px,6vw,64px);
  --cp-panel:#fff; --cp-panel-fg:inherit; --cp-callout:#8E2A2F; --cp-callout-fg:#fff;
  --cp-card:#2B3A33; --cp-card-fg:#fff; --cp-rule:rgba(0,0,0,.12); --cp-radius:3px;
  --cp-width:1100px; --cp-pad:clamp(28px,6vw,64px) clamp(16px,4vw,40px);
}
/* A site's own rules for header/section (padding, margins, backgrounds) must not reach inside a team page. */
.cp>header,.cp>section{padding:0;margin:0;border:0;background:none;min-height:0}
.cp{max-width:var(--cp-width);margin:0 auto;padding:var(--cp-pad);display:grid;gap:clamp(24px,4vw,40px);color:var(--cp-fg)}
.cp-head{display:grid;gap:14px}
.cp-title{margin:0;font-family:var(--cp-title-font);font-size:var(--cp-title-size);line-height:1;color:var(--cp-title);text-wrap:balance}
.cp-lede{margin:0;font-size:clamp(17px,2vw,20px);line-height:1.55;max-width:62ch}
.cp-text{display:grid;gap:18px;font-size:17px;line-height:1.65;max-width:62ch;justify-items:start}
.cp-text p{margin:0}
.cp-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,40px);align-items:start}
.cp-story.solo{grid-template-columns:minmax(0,1fr)}
.cp-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--cp-radius)}
.cp-gallery{columns:3 260px;column-gap:10px}
.cp-gallery.n2{columns:2 260px}
.cp-gallery.n1{columns:1;max-width:900px}
.cp-gallery img{display:block;width:100%;margin:0 0 10px;border-radius:var(--cp-radius);break-inside:avoid}
.cp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:18px}
.cp-card{background:var(--cp-card);color:var(--cp-card-fg);border-radius:var(--cp-radius);overflow:hidden}
.cp-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.cp-card-bd{padding:18px 20px;display:grid;gap:8px}
.cp-card h2{margin:0;font-family:var(--cp-title-font);font-size:24px;line-height:1.1;color:inherit}
.cp-card p{color:inherit}
.cp-card p{margin:0}
.cp-promo{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,4vw,36px);align-items:start}
.cp-ticks{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px;font-size:17px}
.cp-ticks li::before{content:"✦";color:var(--cp-accent);margin-right:10px}
.cp-callout{background:var(--cp-callout);color:var(--cp-callout-fg);padding:26px 28px;border-radius:var(--cp-radius);display:grid;gap:10px}
.cp-callout h2{margin:0;font-family:var(--cp-title-font);font-size:28px;line-height:1.1;color:inherit}
.cp-callout p,.cp-callout a{color:inherit}
.cp-callout p{margin:0}
.cp-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),560px));justify-content:center;gap:22px;align-items:start}
.cp-pricecard{background:var(--cp-panel);color:var(--cp-panel-fg);padding:28px clamp(18px,4vw,34px);border-radius:var(--cp-radius);display:grid;gap:12px}
.cp-pricecard h2{margin:0;text-align:center;font-family:var(--cp-title-font);font-size:28px;line-height:1.1}
.cp-pricecard table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.cp-pricecard th,.cp-pricecard td{padding:10px 0;border-bottom:1px solid var(--cp-rule);text-align:left;vertical-align:top}
.cp-pricecard th{font-weight:700}
.cp-pricecard th small{display:block;font-weight:400;font-size:13px;opacity:.75}
.cp-pricecard td{text-align:right;font-weight:700;white-space:nowrap;padding-left:16px}
.cp-note{margin:0;text-align:center;opacity:.8}
.cp-btns{margin:0}
.cp-btn,.cp-btn:visited,.cp-btn:hover{color:var(--cp-accent-fg)}
.cp-btn{display:inline-block;background:var(--cp-accent);color:var(--cp-accent-fg);text-decoration:none;padding:13px 18px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:13px;border-radius:2px}
.cp-btn:hover{filter:brightness(1.1)}
.cp-foot{margin:0;font-size:14px;color:var(--cp-muted);max-width:70ch}
@media (max-width:760px){.cp-story,.cp-promo{grid-template-columns:minmax(0,1fr)}}
/* The Jobs page (gc_jobs_body): one panel per role, then how to apply. */
.cp-jobs{display:grid;gap:18px;max-width:820px}
.cp-job{background:var(--cp-panel);color:var(--cp-panel-fg);padding:clamp(20px,4vw,30px) clamp(18px,4vw,34px);border-radius:var(--cp-radius);display:grid;gap:12px;justify-items:start}
.cp-job h2{margin:0;font-family:var(--cp-title-font);font-size:clamp(24px,3vw,30px);line-height:1.1;color:inherit}
.cp-job p{margin:0;line-height:1.6;color:inherit;max-width:65ch}
.cp-job-meta{font-weight:700;font-size:15px}
.cp-job-closes{font-size:15px;opacity:.8}
.cp-job-links{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:4px!important}
.cp-job-links a:not(.cp-btn){color:inherit}
.cp-job-apply{display:grid;gap:10px;max-width:65ch}
.cp-job-apply h2{margin:0;font-family:var(--cp-title-font);font-size:clamp(24px,3vw,30px);line-height:1.1;color:var(--cp-title)}
.cp-job-apply p{margin:0;line-height:1.6}
.cp-job-apply a{color:inherit}

/* Newsletter sign-up (engine/sender.php gc_newsletter_box / gc_newsletter_form). Sites
   usually pass their own form classes; these are the plain defaults. */
.gc-nl{display:grid;gap:12px;max-width:560px}
.gc-nl-title{margin:0;font-family:var(--cp-title-font);color:var(--cp-title)}
.gc-nl-text{margin:0}
.gc-nl-form{display:grid;gap:12px}
.gc-nl-field{display:grid;gap:5px}
.gc-nl-label{font-weight:600;font-size:14px}
.gc-nl-input{font:inherit;font-size:16px;padding:11px 12px;border:1px solid var(--cp-rule);border-radius:var(--cp-radius);width:100%;box-sizing:border-box}
.gc-nl-btn{justify-self:start;font:inherit;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:13px;background:var(--cp-accent);color:var(--cp-accent-fg);border:0;border-radius:2px;padding:13px 18px;cursor:pointer}
.gc-nl-btn:disabled{opacity:.6;cursor:wait}
.gc-nl-msg,.gc-nl-note{margin:0;font-size:14px}
.gc-nl-note{color:var(--cp-muted)}
.gc-nl-msg.is-error{color:#B3261E;font-weight:600}
/* The bot trap is kept off screen by its own inline style, so it works without this file too. */

