/* ============================================================
   PASSION — Contact  (/contact)
   BRAND PALETTE: ivory light, charcoal closing + footer, pink accent.
   Short, low-key, by appointment. Reuses .cform / .btn / .foot from styles.css.
   Page-specific classes prefixed ct-
   ============================================================ */

.ct-iv{background:var(--canvas);color:var(--ink);position:relative;overflow:hidden;}
.ct-ch{background:var(--ink);color:#fff;position:relative;overflow:hidden;}

/* ── 1 · HERO (ivory) ───────────────────────────────────── */
.ct-hero{padding:184px 0 70px;text-align:center;}
.ct-hero-inner{position:relative;z-index:3;max-width:760px;margin:0 auto;}
.ct-hero h1{font-size:clamp(2.8rem,6vw,4.8rem);font-weight:540;line-height:1.05;padding-bottom:.18em;}
.ct-h1-ink{color:var(--ink);}
.ct-h1-pink{display:inline-block;position:relative;color:var(--pink);}
.ct-hero-sub{font-size:1.22rem;color:var(--ink-soft);margin:22px auto 0;max-width:32em;line-height:1.6;}

/* ── 2 · FORM + REASSURANCE (ivory) ─────────────────────── */
.ct-body{padding:40px 0 130px;}
.ct-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:start;position:relative;z-index:2;}

/* the form card */
.ct-formcard{background:var(--white);border-radius:32px;padding:40px 40px 42px;box-shadow:var(--shadow-soft);}
.ct-formcard h2{font-family:var(--font-head);font-weight:560;font-size:1.6rem;color:var(--ink);margin-bottom:6px;}
.ct-formcard .ct-formlede{color:var(--ink-soft);font-size:1rem;margin-bottom:26px;line-height:1.5;}
/* three-option selector */
.ct-choose{display:flex;flex-direction:column;gap:9px;margin-bottom:22px;}
.ct-choose-label{font-size:.84rem;font-weight:600;color:var(--ink-soft);}
.ct-choose-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.ct-opt{position:relative;}
.ct-opt input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0;}
.ct-opt span{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;
  padding:13px 10px;border-radius:16px;border:1.5px solid rgba(31,22,32,.14);background:var(--canvas);
  font-weight:600;font-size:.95rem;color:var(--ink-soft);cursor:pointer;
  transition:border-color .3s,background .3s,color .3s,transform .35s cubic-bezier(.2,.7,.2,1);}
.ct-opt span svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none;}
.ct-opt:hover span{transform:translateY(-2px);border-color:var(--pink);}
.ct-opt input:checked + span{border-color:var(--pink);background:var(--pink-soft);color:var(--pink);}
.ct-opt input:focus-visible + span{box-shadow:0 0 0 4px rgba(198,11,127,.12);}

/* right reassurance column */
.ct-note{background:var(--pink-soft);border-radius:28px;padding:34px 32px;position:relative;overflow:hidden;}
.ct-note .blob{position:absolute;width:56%;aspect-ratio:1;right:-12%;top:-14%;
  border-radius:46% 54% 62% 38%/52% 44% 56% 48%;background:radial-gradient(circle at 38% 32%,#fff,var(--blush));opacity:.7;z-index:0;}
.ct-note-inner{position:relative;z-index:2;}
.ct-note h3{font-family:var(--font-head);font-weight:560;font-size:1.42rem;color:var(--ink);line-height:1.14;margin-bottom:16px;}
.ct-note-list{list-style:none;padding:0;margin:0 0 26px;display:flex;flex-direction:column;gap:15px;}
.ct-note-list li{display:flex;gap:13px;align-items:flex-start;color:var(--ink);font-size:1rem;line-height:1.45;}
.ct-note-mk{flex:none;width:30px;height:30px;border-radius:50%;background:#fff;display:grid;place-items:center;margin-top:1px;}
.ct-note-mk svg{width:16px;height:16px;stroke:var(--pink);fill:none;stroke-width:1.9;}
.ct-contact{border-top:1px solid rgba(31,22,32,.12);padding-top:22px;display:flex;flex-direction:column;gap:12px;}
.ct-contact a{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:600;font-size:1rem;transition:color .25s;}
.ct-contact a:hover{color:var(--pink);}
.ct-contact a svg{width:20px;height:20px;stroke:var(--pink);fill:none;stroke-width:1.8;flex:none;}
.ct-place{display:flex;align-items:center;gap:12px;color:var(--ink-soft);font-size:.96rem;}
.ct-place svg{width:20px;height:20px;stroke:var(--pink);fill:none;stroke-width:1.8;flex:none;}
.ct-socials{display:flex;gap:11px;margin-top:20px;}
.ct-socials a{width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center;
  transition:background .3s,transform .3s;}
.ct-socials a:hover{background:var(--pink);transform:translateY(-3px);}
.ct-socials a:hover svg{fill:#fff;}
.ct-socials svg{width:18px;height:18px;fill:var(--pink);transition:fill .3s;}

/* ── 3 · CLOSING (charcoal) ─────────────────────────────── */
.ct-close{padding:100px 0;text-align:center;}
.ct-close .gc-close{top:50%;left:50%;transform:translate(-50%,-50%);width:min(620px,90vw);z-index:0;}
.ct-close .gc-close circle{stroke:var(--pink);opacity:.22;}
.ct-close-inner{position:relative;z-index:2;max-width:660px;margin:0 auto;}
.ct-close p{font-family:var(--font-head);font-weight:500;font-size:clamp(1.5rem,3.2vw,2.3rem);line-height:1.3;color:#fff;}
.ct-close p .ct-pink{color:var(--blush);}

/* ── RESPONSIVE ─────────────────────────────────────────── */
@media(max-width:880px){
  .ct-grid{grid-template-columns:1fr;gap:26px;}
}
@media(max-width:560px){
  .ct-hero{padding:148px 0 50px;}
  .ct-formcard{padding:32px 26px 34px;}
  .ct-choose-opts{grid-template-columns:1fr;}
}
