/* ============================================================
   Tribal Kite School — contact page
   Shared furniture (.pb banner, .fx feature grid, .pcta closing
   CTA) lives in sections.css. The form, the contact rail and the
   briefing notice are unique to this page.
   ============================================================ */

/* ---------- form + contact rail ---------- */
.ct2{padding:clamp(56px,6.5vw,86px) 0}
.ct2__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,3.4vw,52px);
  margin-top:40px;align-items:start;max-width:1080px;margin-inline:auto}
@media(max-width:900px){.ct2__grid{grid-template-columns:1fr;max-width:560px}}

/* the form card */
.frm{background:#fff;border:1px solid rgba(6,19,27,.08);border-radius:20px;
  padding:clamp(24px,3vw,36px);box-shadow:0 16px 40px rgba(6,19,27,.09)}
.frm__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.frm__row{grid-template-columns:1fr}}
.frm__f{display:block;margin:0 0 16px}
.frm__f label{display:block;font-family:var(--r-mono);font-size:10px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:#7A8590;margin:0 0 8px}
.frm__f label i{font-style:normal;color:var(--r-kiteish,#FF3B5C)}
.frm__f input,.frm__f textarea{width:100%;font-family:var(--r-body);font-size:14px;
  color:var(--r-ink);background:#FBFAF7;border:1px solid rgba(6,19,27,.14);border-radius:12px;
  padding:13px 15px;transition:border-color .25s,box-shadow .25s,background .25s}
.frm__f textarea{min-height:150px;resize:vertical;line-height:1.6}
.frm__f input::placeholder,.frm__f textarea::placeholder{color:#A9B2BB}
.frm__f input:focus,.frm__f textarea:focus{outline:none;background:#fff;
  border-color:var(--r-gold);box-shadow:0 0 0 3px rgba(215,156,30,.16)}
.frm__f input[aria-invalid="true"],.frm__f textarea[aria-invalid="true"]{
  border-color:#E0566F;background:#FEF7F8}
.frm__err{display:block;font-family:var(--r-mono);font-size:10.5px;letter-spacing:.06em;
  color:#C4415A;margin:7px 0 0}
.frm__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.frm button{width:100%;justify-content:center;padding:14px 22px;font-size:11px;
  border:0;cursor:pointer;font-family:var(--r-mono)}
.frm__fine{font-family:var(--r-mono);font-size:10px;letter-spacing:.08em;color:#9AA4AE;
  text-align:center;margin:14px 0 0}

/* result banners */
.frm__note{border-radius:14px;padding:16px 18px;margin:0 0 22px;font-size:13.5px;line-height:1.6;
  display:flex;gap:12px;align-items:flex-start}
.frm__note svg{width:17px;height:17px;flex:0 0 17px;margin-top:2px;fill:none;stroke-width:2.3;
  stroke-linecap:round;stroke-linejoin:round}
.frm__note--ok{background:rgba(18,165,184,.09);border:1px solid rgba(18,165,184,.32);color:#0B4A54}
.frm__note--ok svg{stroke:#12A5B8}
.frm__note--bad{background:rgba(224,86,111,.08);border:1px solid rgba(224,86,111,.30);color:#8C2A3E}
.frm__note--bad svg{stroke:#C4415A}
.frm__note a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* the contact rail beside the form */
.crail{display:flex;flex-direction:column;gap:14px}
.crail__card{background:var(--r-navy);color:#fff;border-radius:20px;
  padding:clamp(24px,2.8vw,30px);border:1px solid rgba(245,184,46,.28);position:relative}
.crail__card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,transparent 8%,var(--r-sun) 50%,transparent 92%);
  border-radius:20px 20px 0 0}
.crail__card h3{font-family:var(--r-mono);font-size:10.5px;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--r-sun);margin:0 0 18px}
.crail__list{list-style:none;margin:0;padding:0}
.crail__list li{display:flex;gap:13px;align-items:flex-start;padding:12px 0;
  border-bottom:1px solid rgba(255,255,255,.09)}
.crail__list li:last-child{border-bottom:0}
.crail__ic{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(245,184,46,.14)}
.crail__ic svg{width:16px;height:16px;stroke:var(--r-sun);fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.crail__t{font-family:var(--r-mono);font-size:9.5px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.5);display:block;margin:0 0 4px}
.crail__v{font-size:14px;color:#fff;text-decoration:none;line-height:1.4;
  transition:color .25s;word-break:break-word}
a.crail__v:hover{color:var(--r-sun)}

/* arrive-early notice */
.crail__early{background:#fff;border:1px solid rgba(184,135,26,.35);border-radius:20px;
  padding:clamp(22px,2.6vw,28px);display:flex;gap:15px;align-items:flex-start}
.crail__early svg{width:22px;height:22px;flex:0 0 22px;margin-top:1px;stroke:var(--r-goldD);
  fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.crail__early b{display:block;font-family:var(--r-display);font-weight:600;font-size:16px;
  color:var(--r-ink);margin:0 0 6px;line-height:1.25}
.crail__early p{font-size:13px;line-height:1.6;color:#5A6672;margin:0}

/* ---------- what's included / to bring ---------- */
.inc__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);
  margin-top:40px;align-items:stretch}
@media(max-width:880px){.inc__grid{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}
.inc__card{background:#fff;border:1px solid rgba(6,19,27,.08);border-radius:18px;
  padding:26px 24px 24px;display:flex;flex-direction:column;
  box-shadow:0 14px 36px rgba(6,19,27,.07);
  transition:transform .32s cubic-bezier(.2,.7,.3,1),box-shadow .32s,border-color .32s}
.inc__card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(6,19,27,.13);
  border-color:rgba(184,135,26,.4)}
.inc__card h3{font-family:var(--r-display);font-weight:600;font-size:18px;margin:0 0 16px;
  color:var(--r-ink)}
.inc__l{list-style:none;margin:0;padding:0;flex-grow:1}
.inc__l li{font-size:13.5px;line-height:1.5;color:#4A5560;padding:7px 0;
  display:flex;gap:10px;align-items:flex-start}
.inc__l svg{width:14px;height:14px;flex:0 0 14px;margin-top:3px;fill:none;stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round}
.inc__l--yes svg{stroke:var(--r-gold)}
/* the "not included" list is a single item — let its note sit right under it
   rather than being pushed to the card floor by flex-grow */
.inc__l--no{flex-grow:0}
.inc__l--no svg{stroke:#C0808E}
.inc__shop{font-size:12.5px;line-height:1.6;color:#7A8590;margin:16px 0 0;
  padding-top:14px;border-top:1px solid rgba(6,19,27,.08)}

/* ---------- about ---------- */
.ab{padding:clamp(56px,6.5vw,86px) 0}
.ab__copy{max-width:64ch;margin-inline:auto;text-align:center}
.ab__copy p{font-size:15px;line-height:1.76;color:rgba(255,255,255,.78);margin:0 0 16px}
.ab__copy p:last-child{margin-bottom:0}
