:root{
    --paper:#F2FFFF;
    --paper-card:#FBFCFF;
    --ink:#222222;
    --ink-soft:#565272;
    --pine:#4422BB;
    --pine-dark:#2E1785;
    --pine-tint:#CCCCFF;
    --rose:#7C5CF0;
    --rose-deep:#4422BB;
    --honey:#e88d4d;
    --line:#E4E2F5;
    --footer-muted:#B7B3D6;
    --radius:18px;
    --shadow:0 24px 48px -28px rgba(68,34,187,.28);
    --ease:cubic-bezier(.22,.61,.36,1);
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:'Poppins',sans-serif; line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  button{ font-family:inherit; }
  h1,h2,h3{ font-family:'Bricolage Grotesque',sans-serif; margin:0; color:var(--ink); font-weight:600; letter-spacing:-0.01em; }
  p{ margin:0; }
  ul{ margin:0; padding:0; list-style:none; }

  .skip-link{ position:absolute; left:1rem; top:-60px; background:var(--pine); color:#fff; padding:.75rem 1.25rem; border-radius:8px; z-index:100; transition:top .25s var(--ease); }
  .skip-link:focus{ top:1rem; }

  :focus-visible{ outline:3px solid var(--rose-deep); outline-offset:3px; }

  .container{ width:min(1200px, calc(100% - 3rem)); margin-inline:auto; }
  .section{ padding-block:clamp(3rem,6vw,6rem); }
  .section-head{ max-width:640px; margin-bottom:2.75rem; }
  .section-head p{ color:var(--ink-soft); font-size:1.05rem; margin-top:.9rem; }
  .section-head.center{ margin-inline:auto; text-align:center; }

  .eyebrow{ text-transform:uppercase; letter-spacing:.14em; font-size:.75rem; font-weight:600; color:var(--pine-dark); display:inline-flex; align-items:center; gap:.5rem; margin-bottom:1rem; }
  .eyebrow::before{ content:''; width:.4rem; height:.4rem; border-radius:50%; background:var(--rose); display:inline-block; }

  .btn{ display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 1.6rem; border-radius:999px; font-weight:600; font-size:.95rem; text-decoration:none; border:1px solid transparent; cursor:pointer; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease); white-space:nowrap; }
  .btn-primary{ background:var(--pine); color:#fff; box-shadow:var(--shadow); }
  .btn-primary:hover{ background:var(--pine-dark); transform:translateY(-2px); }
  .btn-outline{ background:transparent; border-color:var(--ink); color:var(--ink); }
  .btn-outline:hover{ background:var(--ink); color:var(--paper); transform:translateY(-2px); }
  .btn-sm{ padding:.6rem 1.2rem; font-size:.88rem; }

  /* Header */
  .site-header{ position:sticky; top:0; z-index:50; background:rgba(239,242,233,.88); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom:1px solid transparent; transition:box-shadow .3s var(--ease), border-color .3s var(--ease); }
  .site-header.scrolled{ box-shadow:0 8px 24px -18px rgba(38,35,30,.4); border-color:var(--line); }
  .nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-block:.85rem; }
  .brand{ display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
  .brand img{ height:50px; width:auto; }
  .nav-links{ display:flex; align-items:center; gap:1.9rem; }
  .nav-links a{ text-decoration:none; font-size:.95rem; font-weight:500; color:var(--ink-soft); }
  .nav-links a:hover{ color:var(--pine-dark); }
  .nav-cta{ display:flex; align-items:center; gap:.75rem; flex-shrink:0; }
  .nav-toggle{ display:none; background:none; border:none; padding:.5rem; cursor:pointer; }
  .nav-toggle span{ display:block; width:22px; height:2px; margin:4px 0; background:var(--ink); border-radius:2px; transition:transform .25s var(--ease), opacity .25s var(--ease); }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

  /* Hero */
  .hero{ position:relative; overflow:hidden; padding-block:clamp(3rem,8vw,5.5rem) clamp(2.5rem,6vw,4rem); }
  .hero-grid{ position:relative; z-index:2; display:grid; grid-template-columns:1.05fr .95fr; gap:3rem; align-items:center; }
  .hero h1{ font-size:clamp(2.3rem,3.2vw + 1.3rem,4rem); line-height:1.08; }
  .hero h1 em{ font-style:italic; color:var(--pine-dark); font-weight:500; }
  .hero .lede{ font-size:1.12rem; color:var(--ink-soft); max-width:44ch; margin-block:1.3rem 1.6rem; }
  .chip-row{ display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:1.8rem; }
  .chip{ background:var(--paper-card); border:1px solid var(--line); padding:.4rem .95rem; border-radius:999px; font-size:.82rem; color:var(--ink-soft); }
  .hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; }
  .hero-visual{ position:relative; }
  .hero-visual img{ border-radius:var(--radius); box-shadow:var(--shadow); position:relative; z-index:2; aspect-ratio:4/5; object-fit:cover; width:100%; }
  .blob{ position:absolute; border-radius:50%; filter:blur(55px); opacity:.5; z-index:1; }
  .blob.rose{ background:var(--rose); width:220px; height:220px; top:-36px; right:-40px; }
  .blob.honey{ background:var(--honey); width:170px; height:170px; bottom:-30px; left:-30px; }
  .hero-wave{ position:absolute; left:0; right:0; bottom:-10px; width:100%; height:auto; color:var(--pine); opacity:.16; z-index:1; }
  @media (prefers-reduced-motion:no-preference){
    .hero-wave{ animation:breathe 6s ease-in-out infinite; transform-origin:center; }
  }
  @keyframes breathe{ 0%,100%{ transform:scaleY(1); } 50%{ transform:scaleY(1.2); } }

  .wave-divider{ line-height:0; color:var(--line); }
  .wave-divider svg{ display:block; width:100%; height:36px; }

  /* Values */
  .values{ display:grid; grid-template-columns:repeat(3,1fr); gap:2.25rem; }
  .value-icon{ width:56px; height:56px; margin-bottom:1.1rem; }
  .value-card h3{ font-size:1.3rem; margin-bottom:.5rem; }
  .value-card p{ color:var(--ink-soft); font-size:.98rem; }

  /* Courses */
  .courses-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.75rem; margin-bottom:2rem; }
  .course-card{ background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius); padding:2.1rem; position:relative; overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
  .course-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:6px; background:linear-gradient(90deg,var(--pine),var(--pine-tint)); }
  .course-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
  .course-date{ font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; color:var(--honey); font-weight:700; margin-bottom:.75rem; display:block; }
  .course-card h3{ font-size:1.5rem; margin-bottom:.85rem; }
  .course-meta{ display:flex; gap:1rem; color:var(--ink-soft); font-size:.88rem; margin-block:0 1.1rem; flex-wrap:wrap; }
  .course-card .desc{ color:var(--ink-soft); font-size:.98rem; margin-bottom:1.5rem; }
  .see-all{ text-align:center; }
  .see-all a{ font-weight:600; text-decoration:none; color:var(--pine-dark); }
  .see-all a:hover{ text-decoration:underline; }

  /* Templates / lead magnet */
  .template-panel{ background:var(--pine); color:#fff; border-radius:calc(var(--radius) + 6px); padding:clamp(2.4rem,5vw,3.6rem); }
  .template-panel .eyebrow{ color:var(--honey); }
  .template-panel .eyebrow::before{ background:var(--honey); }
  .template-panel h2{ color:#fff; max-width:26ch; }
  .template-panel p.desc{ color:#DCE3D8; max-width:52ch; margin-top:1rem; font-size:1.05rem; }
  .template-form{ display:flex; gap:.75rem; margin-block:1.75rem 1rem; flex-wrap:wrap; max-width:520px; }
  .template-form input{ flex:1 1 230px; padding:.9rem 1.2rem; border-radius:999px; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08); color:#fff; font-size:1rem; }
  .template-form input::placeholder{ color:#C3CFC1; }
  .template-form button{ background:var(--honey); color:var(--ink); border:none; }
  .template-form button:hover{ background:#d67735; }
  .form-note{ font-size:.82rem; color:#C3CFC1; max-width:52ch; }
  .form-success{ font-size:1.05rem; font-weight:600; color:var(--honey); }

  /* About */
  .about-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:3rem; align-items:center; }
  .about-panel{ background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius); padding:2.5rem; }
  .about-panel .rings{ width:64px; height:64px; margin-bottom:1.5rem; }
  .about-panel .pull{ font-family:'Bricolage Grotesque',sans-serif; font-style:italic; font-size:1.4rem; line-height:1.35; color:var(--pine-dark); }
  .about-copy p{ color:var(--ink-soft); font-size:1.05rem; margin-top:1.1rem; max-width:52ch; }
  .about-copy .btn{ margin-top:1.75rem; }

  /* Resources */
  .resource-list{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; }
  .resource-chip{ padding:.75rem 1.5rem; border:1px solid var(--line); border-radius:999px; text-decoration:none; color:var(--ink); font-weight:500; background:var(--paper-card); transition:border-color .25s var(--ease), color .25s var(--ease), transform .25s var(--ease); }
  .resource-chip:hover{ border-color:var(--pine); color:var(--pine-dark); transform:translateY(-2px); }

  /* Footer */
  footer{ background:var(--ink); color:var(--paper); padding-block:3.5rem 2rem; }
  .footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:3rem; }
  .footer-brand img{ height:36px; margin-bottom:1rem; filter:brightness(0) invert(1); }
  .footer-brand p{ color:var(--footer-muted); max-width:34ch; font-size:.95rem; }
  footer h4{ font-family:'Poppins',sans-serif; font-size:.82rem; text-transform:uppercase; letter-spacing:.1em; color:var(--footer-muted); margin-bottom:1.1rem; }
  footer .flinks{ display:flex; flex-direction:column; gap:.7rem; }
  footer a{ text-decoration:none; color:#DCE0D6; font-size:.95rem; }
  footer a:hover{ color:#fff; }
  .footer-bottom{ margin-top:3rem; padding-top:1.5rem; border-top:1px solid rgba(239,242,233,.15); display:flex; justify-content:space-between; flex-wrap:wrap; gap:.75rem; font-size:.85rem; color:var(--footer-muted); }

  /* Reveal on scroll */
  .js .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
  .js .reveal.is-visible{ opacity:1; transform:none; }
  @media (prefers-reduced-motion:reduce){
    .js .reveal{ opacity:1; transform:none; transition:none; }
    html{ scroll-behavior:auto; }
  }

  @media (max-width:860px){
        .nav-links{ position:fixed; inset:64px 1rem auto 1rem; background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius); flex-direction:column; align-items:flex-start; padding:1.5rem; gap:1rem; box-shadow:var(--shadow); transform:translateY(-14px); opacity:0; pointer-events:none; transition:transform .3s var(--ease), opacity .3s var(--ease); }
    .nav-links.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
    .nav-toggle{ display:inline-flex; flex-direction:column; }
    .hero-grid{ grid-template-columns:1fr; }
    .hero-visual{ order:-1; max-width:360px; margin-inline:auto; }
    .values{ grid-template-columns:1fr; }
    .courses-grid{ grid-template-columns:1fr; }
    .about-grid{ grid-template-columns:1fr; }
    .footer-grid{ grid-template-columns:1fr; gap:2.25rem; }
    .grid-2{ grid-template-columns:1fr; }
    .grid-3{ grid-template-columns:1fr; }
  }

/* =========================
   Meet the founders
========================= */

.founders-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:2rem;
    margin-top:3rem;
}

.founder-card{
    background:var(--paper-card);
    border:1px solid var(--line);
    border-radius:24px;
    padding:2rem;
    text-align:center;
    transition:.3s ease;
}

.founder-card:hover{
    transform:translateY(-6px);
    box-shadow:0 16px 40px rgba(0,0,0,.08);
}

.founder-photo{
    width:220px;
    height:220px;
    object-fit:cover;
    object-position: 50% 20%;
    border-radius:50%;
    display:block;
    margin:0 auto 1.5rem;
    border:6px solid white;
    box-shadow:0 12px 28px rgba(0,0,0,.12);
}

.founder-card h3{
    margin-bottom:.35rem;
}

.founder-role{
    color:var(--honey);
    font-weight:600;
    margin-bottom:1rem;
}

/* ---- Interior page additions ---- */
.page-hero{ padding-block:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,4vw,2.5rem); text-align:center; }
.page-hero .eyebrow{ justify-content:center; }
.page-hero h1{ font-size:clamp(2.1rem,2.4vw+1.4rem,3.4rem); line-height:1.1; }
.page-hero p.lede{ color:var(--ink-soft); font-size:1.12rem; max-width:60ch; margin:1.1rem auto 0; }
.prose{ max-width:70ch; }
.prose p{ color:var(--ink-soft); font-size:1.05rem; margin-top:1.2rem; }
.prose h2{ margin-top:2.4rem; font-size:1.6rem; }
.prose h3{ margin-top:1.8rem; font-size:1.25rem; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.75rem; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; }
.info-card{ background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius); padding:2rem; }
.info-card h3{ font-size:1.3rem; margin-bottom:.6rem; }
.info-card p{ color:var(--ink-soft); font-size:.98rem; }
.blog-card{ background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.blog-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.blog-card .body{ padding:1.7rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.blog-card .tag{ font-size:.74rem; text-transform:uppercase; letter-spacing:.1em; font-weight:700; color:var(--rose-deep); }
.blog-card h3{ font-size:1.25rem; }
.blog-card p{ color:var(--ink-soft); font-size:.95rem; }
.blog-card .read{ margin-top:auto; font-weight:600; color:var(--honey); text-decoration:none; font-size:.92rem; }
.faq-item{ border:1px solid var(--line); border-radius:14px; background:var(--paper-card); margin-bottom:.9rem; overflow:hidden; }
.faq-item summary{ cursor:pointer; list-style:none; padding:1.15rem 1.4rem; font-weight:600; font-size:1.05rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-size:1.4rem; color:var(--rose-deep); transition:transform .25s var(--ease); }
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item .answer{ padding:0 1.4rem 1.25rem; color:var(--ink-soft); }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.contact-form{ display:grid; gap:1rem; }
.contact-form label{ font-weight:500; font-size:.92rem; display:grid; gap:.4rem; }
.contact-form input, .contact-form textarea{ padding:.85rem 1.1rem; border-radius:12px; border:1px solid var(--line); background:var(--paper-card); font:inherit; color:var(--ink); }
.contact-form textarea{ min-height:130px; resize:vertical; }
.contact-list{ display:grid; gap:1.2rem; }
.contact-list .row{ display:flex; gap:.9rem; align-items:flex-start; }
.contact-list .row strong{ display:block; }
.contact-list .row span{ color:var(--ink-soft); }
/* ==========================
   Event Cards
========================== */

.event-card{
    background:var(--paper-card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:1.75rem;

    display:grid;
    grid-template-columns:100px 1fr 220px;

    gap:1.75rem;
    align-items:center;
}

.event-when{
    text-align:center;
    background:var(--pine-tint);
    border-radius:16px;
    padding:1rem;
}

.event-when .dow{
    display:block;
    font-size:.75rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:var(--pine-dark);
}

.event-when .day{
    display:block;
    font-size:2.2rem;
    font-weight:700;
    color:var(--pine-dark);
    line-height:1;
    margin:.25rem 0;
}

.event-when .mon{
    display:block;
    font-size:.9rem;
    color:var(--ink-soft);
}

.event-body h3{
    margin-bottom:.4rem;
}

.event-meta{
    color:var(--ink-soft);
    margin-bottom:.5rem;
}

.event-body p{
    margin-bottom:1rem;
}

.event-body .btn{
    padding:.65rem 1.25rem;
    font-size:.9rem;
}

.event-image{
    display:flex;
    justify-content:flex-end;
}

.event-image img{
    width:220px;
    height:160px;

    object-fit:cover;
    object-position:center;

    border-radius:16px;

    display:block;
}

/* Mobile */

@media (max-width:900px){

    .event-card{
        grid-template-columns:1fr;
        text-align:center;
    }

    .event-image{
        justify-content:center;
    }

    .event-image img{
        width:100%;
        max-width:320px;
        height:200px;
    }

    .event-body .btn{
        width:100%;
        justify-content:center;
    }

}
/* ---- Light theme accent tweaks ---- */
.event-when .day{ color:var(--pine-dark); }
.template-form button{ color:var(--ink); }

/* Shared layout utilities and responsive safeguards */
.surface-section { background: var(--paper-card); border-block: 1px solid var(--line); }
.content-narrow { max-width: 840px; }
.stack-lg > * + * { margin-top: 2.25rem; }
.text-link { color: var(--rose-deep); }
.footer-location { color: var(--footer-muted); font-size: .95rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.event-note { display: inline-block; margin-top: 1rem; color: var(--pine-dark); font-weight: 600; }
.events-hero { position: relative; min-height: min(520px, 70vh); display: grid; place-items: center; overflow: hidden; color: #fff; text-align: left; }
.events-hero .hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.events-hero .hero-overlay { position: relative; width: 100%; padding: clamp(4rem, 10vw, 7rem) 0; background: linear-gradient(90deg, rgba(34, 34, 34, .74), rgba(34, 34, 34, .18)); }
.events-hero h1, .events-hero .lede { color: #fff; }
.events-hero .lede { max-width: 48ch; font-size: 1.1rem; }
.event-card + .event-card { margin-top: 1.5rem; }
.event-card:not(:has(.event-image)) { grid-template-columns: 100px 1fr; }
.contact-form .form-success { color: var(--pine-dark); }

@media (max-width: 860px) {
  body.menu-open { overflow: hidden; }
  .container { width: min(100% - 2rem, 1200px); }
  .nav-inner { gap: .75rem; }
  .brand img { height: 42px; }
  .nav-links { inset: 72px 1rem auto; max-height: calc(100vh - 88px); overflow: auto; }
  .nav-cta .btn { padding: .6rem .9rem; }
  /* These rules follow the desktop grid definitions, so mobile can override them. */
  .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .template-form .btn { width: 100%; justify-content: center; }
  .event-card:not(:has(.event-image)) { grid-template-columns: 1fr; }
  .events-hero { min-height: 420px; }
  .events-hero .hero-overlay { background: rgba(34, 34, 34, .58); }
}

@media (max-width: 480px) {
  .section { padding-block: 3rem; }
  .nav-cta .btn { font-size: .8rem; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .course-card, .info-card, .about-panel, .founder-card { padding: 1.4rem; }
  .founder-photo { width: min(180px, 100%); height: auto; aspect-ratio: 1; }
  .footer-bottom { margin-top: 2rem; }
}
/* Production polish: shared interaction, form and contact-page components */
body { min-width: 320px; overflow-x: hidden; }
.site-header { background: rgba(242, 255, 255, .88); }
.nav-links a[aria-current="page"] { color: var(--pine-dark); font-weight: 700; }
.btn { min-height: 2.75rem; justify-content: center; }
.btn:active { transform: translateY(0); }
input, select, textarea { font: inherit; }
input:focus, select:focus, textarea:focus { border-color: var(--pine); outline: 3px solid rgba(68, 34, 187, .18); outline-offset: 1px; }

.contact-hero { padding-bottom: clamp(2.75rem, 6vw, 4.5rem); }
.response-promise { display: inline-flex; align-items: center; gap: .55rem; margin: 1.5rem auto 0; padding: .55rem .9rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); font-size: .9rem; background: var(--paper-card); }
.response-promise span { color: #4e9a70; font-size: .7rem; }
.contact-section { padding-top: clamp(1rem, 3vw, 2.75rem); }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr); gap: clamp(1.25rem, 4vw, 3.5rem); align-items: start; }
.contact-form-card { background: var(--paper-card); border: 1px solid var(--line); border-radius: calc(var(--radius) + 4px); padding: clamp(1.4rem, 4vw, 3rem); box-shadow: var(--shadow); }
.contact-card-heading { max-width: 42rem; margin-bottom: 1.75rem; }
.contact-card-heading .eyebrow { margin-bottom: .7rem; }
.contact-card-heading h2, .help-panel h2, .location-copy h2 { font-size: clamp(1.55rem, 2vw + 1rem, 2.25rem); line-height: 1.15; }
.contact-card-heading p:not(.eyebrow), .help-panel p, .location-copy > p:not(.eyebrow) { color: var(--ink-soft); margin-top: .7rem; }
.contact-form { gap: 1.15rem; }
.contact-form label { color: var(--ink); font-weight: 600; gap: .5rem; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: .8rem 1rem; }
.contact-form textarea { min-height: 9rem; }
.contact-form .btn { justify-self: start; margin-top: .35rem; }
.contact-form-card .form-success { margin-top: 1rem; color: var(--pine-dark); }
.contact-help { display: grid; gap: 1rem; }
.help-panel { border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 1.75rem); background: var(--paper-card); }
.help-panel:first-child { background: var(--pine); border-color: var(--pine); color: #fff; }
.help-panel:first-child h2, .help-panel:first-child p { color: #fff; }
.help-panel:first-child p { color: #ded8ff; }
.panel-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; margin-bottom: 1rem; background: var(--pine-tint); color: var(--pine-dark); font-weight: 700; }
.help-panel:first-child .panel-icon { background: rgba(255,255,255,.16); color: #fff; }
.with-arrow { display: inline-flex; gap: .5rem; margin-top: 1.25rem; font-weight: 700; color: var(--honey); text-decoration: none; }
.social-actions, .context-links { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.15rem; }
.social-link, .context-links a { display: inline-flex; align-items: center; gap: .35rem; padding: .55rem .75rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; font-size: .88rem; font-weight: 600; background: #fff; }
.social-link { color: var(--honey); }
.compact-panel { display: flex; gap: 1rem; align-items: flex-start; }
.compact-panel .panel-icon { flex: 0 0 auto; margin-bottom: 0; }
.location-layout { display: grid; grid-template-columns: 1fr minmax(280px, .9fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: center; }
.map-placeholder { position: relative; min-height: 18rem; overflow: hidden; border: 1px solid var(--line); border-radius: calc(var(--radius) + 4px); background: #e8e5fb; display: grid; place-items: center; text-align: center; color: var(--pine-dark); box-shadow: var(--shadow); }
.map-grid { position: absolute; inset: -15%; opacity: .7; background-image: linear-gradient(30deg, transparent 48%, rgba(68,34,187,.16) 49%, rgba(68,34,187,.16) 51%, transparent 52%), linear-gradient(120deg, transparent 48%, rgba(68,34,187,.14) 49%, rgba(68,34,187,.14) 51%, transparent 52%); background-size: 72px 72px; transform: rotate(-7deg) scale(1.15); }
.map-placeholder p { position: relative; z-index: 1; margin: 3.5rem 0 0; font-family: 'Bricolage Grotesque', sans-serif; font-size: 1.35rem; font-weight: 700; line-height: 1.2; }
.map-placeholder small { font-family: 'Poppins', sans-serif; font-size: .78rem; font-weight: 500; color: var(--ink-soft); }
.map-pin { position: relative; z-index: 1; width: 2rem; height: 2rem; margin-bottom: 2.5rem; border-radius: 50% 50% 50% 0; background: var(--pine); transform: rotate(-45deg); box-shadow: 0 10px 18px rgba(68,34,187,.3); }
.map-pin::after { content: ''; position: absolute; inset: .58rem; border-radius: 50%; background: var(--paper); }

@media (hover: hover) {
  .social-link:hover, .context-links a:hover { border-color: var(--pine); color: var(--pine-dark); transform: translateY(-1px); }
  .help-panel, .contact-form-card { transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
  .help-panel:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
}

@media (max-width: 860px) {
  .contact-layout, .location-layout { grid-template-columns: 1fr; }
  .contact-help { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-help .compact-panel { grid-column: 1 / -1; }
  .map-placeholder { min-height: 15rem; }
}

@media (max-width: 560px) {
  .contact-help { grid-template-columns: 1fr; }
  .contact-help .compact-panel { grid-column: auto; }
  .contact-form-card, .help-panel { border-radius: 16px; }
  .contact-form .btn { width: 100%; }
  .location-section { padding-block: 3.25rem; }
}