/* ===== CONTACT ===== */
#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60;}
.contact{padding:clamp(120px,16vw,180px) 0 clamp(70px,10vw,120px);}
.ct-head{max-width:900px;}
.ct-title{font-size:clamp(56px,13vw,180px);line-height:.9;margin:.1em 0 0;}
.ct-accent{color:var(--terra);}
.ct-body{padding:clamp(44px,7vw,84px) 0 clamp(70px,10vw,120px);}
.ct-sub{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.6vw,34px);color:var(--brown);margin:20px 0 0;}

.ct-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(36px,6vw,90px);margin-top:clamp(50px,8vw,90px);align-items:start;}

/* form */
.ct-formwrap{position:relative;}
.ct-arrow{position:absolute;top:-78px;right:18%;width:64px;height:auto;opacity:.9;}
.ct-form{display:flex;flex-direction:column;gap:26px;}
.field{display:flex;flex-direction:column;gap:9px;position:relative;}
.field label{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;}
.field input,.field textarea{
  font-family:var(--sans);font-size:18px;color:var(--ink);background:transparent;border:none;
  border-bottom:1.5px solid rgba(36,31,26,.25);padding:10px 2px;resize:none;transition:border-color .3s;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--terra);}
.field .err{font-size:13px;color:var(--terra);opacity:0;height:0;transition:opacity .3s;}
.field.invalid input,.field.invalid textarea{border-color:var(--terra);}
.field.invalid .err{opacity:1;height:auto;}
.ct-form .btn{align-self:flex-start;margin-top:6px;}
.ct-submit{padding:18px 34px;font-size:17px;letter-spacing:.01em;}
.ct-submit .arrow{font-size:1.05em;}

/* success */
.ct-success{text-align:center;padding:clamp(30px,5vw,60px) 0;}
.ct-success h2{font-size:clamp(34px,5vw,64px);margin:26px 0 10px;}
.ct-success p{color:var(--ink-soft);margin:0;}
.check-wrap{position:relative;width:120px;height:120px;margin:0 auto;display:flex;align-items:center;justify-content:center;}
.check{width:80px;height:80px;position:relative;z-index:2;}
.check .tick{stroke-dasharray:60;stroke-dashoffset:60;}
.ct-success.show .check .tick{animation:tickDraw .5s .25s var(--ease) forwards;}
.ct-success.show .check circle{animation:pulse 2s ease-in-out infinite;}
@keyframes tickDraw{to{stroke-dashoffset:0;}}
@keyframes pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.04);}}
.ring{position:absolute;border-radius:999px;border:2px solid var(--terra);opacity:0;}
.r1{width:80px;height:80px;} .r2{width:80px;height:80px;}
.ct-success.show .r1{animation:ringOut 1.1s var(--ease) forwards;}
.ct-success.show .r2{animation:ringOut 1.1s .25s var(--ease) forwards;}
@keyframes ringOut{0%{opacity:.7;transform:scale(.7);}100%{opacity:0;transform:scale(2.4);}}

/* details */
.ct-details{display:flex;flex-direction:column;gap:clamp(28px,4vw,44px);}
.cd-block{border-top:1px solid rgba(36,31,26,.18);padding-top:18px;}
.cd-label{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin:0 0 12px;}
.cd-mail{font-family:var(--serif);font-size:clamp(18px,1.9vw,24px);font-weight:500;}
.cd-mail:hover{color:var(--terra);}
.cd-reply{font-size:13px;color:var(--brown);font-style:italic;font-family:var(--serif);margin:8px 0 0;}
.cd-links{list-style:none;padding:0;margin:0;}
.cd-links li a{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid rgba(36,31,26,.08);font-size:17px;transition:color .3s;}
.cd-links li a span{color:var(--brown);}
.cd-links li a:hover{color:var(--terra);}
.cd-place{font-family:var(--serif);font-size:20px;margin:0 0 18px;}

@media(max-width:820px){
  .ct-grid{grid-template-columns:1fr;}
  .ct-arrow{display:none;}
}

/* ===== contact details: whatsapp + book ===== */
.cd-wa{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:16px;color:var(--ink);
  border:1.5px solid var(--ink);border-radius:999px;padding:12px 20px;transition:background .3s,color .3s,transform .3s,border-color .3s;}
.cd-wa svg{width:18px;height:18px;}
.cd-wa:hover{background:#1fae54;border-color:#1fae54;color:#fff;transform:translateY(-2px);}
.cd-book{display:inline-block;margin-top:14px;color:var(--terra);font-weight:600;font-size:14px;}
.cd-book:hover{text-decoration:underline;}

/* ===== BOOK A CONSULTATION CALL ===== */
.book{background:var(--cream-deep);padding:clamp(70px,10vw,120px) 0;border-top:1px solid rgba(36,31,26,.1);}
.book-head{max-width:680px;margin-bottom:clamp(34px,5vw,54px);}
.book-title{font-size:clamp(38px,6vw,84px);line-height:.96;margin:.1em 0 0;}
.book-sub{color:var(--ink-soft);font-size:clamp(16px,1.7vw,20px);margin:16px 0 0;max-width:50ch;}
.book-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,56px);align-items:start;}
@media(max-width:820px){.book-grid{grid-template-columns:1fr;}}

/* ============================================================
   CONTACT PAGE — MOBILE OPTIMISATION  (comprehensive rewrite)
   ============================================================ */
@media(max-width:820px){
  .ct-title{font-size:clamp(44px,13vw,120px);}
  .contact{padding:clamp(90px,14vw,140px) 0 clamp(50px,8vw,80px);}
  .ct-sub{font-size:clamp(16px,4.5vw,24px);}
  .ct-grid{grid-template-columns:1fr;}
  .ct-arrow{display:none;}
  .book-title{font-size:clamp(30px,9vw,70px);}
  .book-grid{grid-template-columns:1fr;}
  .slots-list{grid-template-columns:repeat(2,1fr);}
  .field input,.field textarea{font-size:16px;}
  .ct-submit{padding:16px 28px;font-size:16px;}
}
@media(max-width:480px){
  .ct-title{font-size:clamp(36px,12vw,80px);}
  .slots-list{grid-template-columns:1fr;}
  .cal-day{font-size:13px;}
}

.cal{background:var(--cream);border:1px solid rgba(36,31,26,.12);border-radius:18px;padding:clamp(20px,3vw,30px);box-shadow:var(--paper-shadow);}
.cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.cal-month{font-family:var(--serif);font-weight:500;font-size:22px;}
.cal-nav{width:40px;height:40px;border-radius:999px;border:1.5px solid rgba(36,31,26,.2);background:none;cursor:pointer;font-size:16px;transition:background .3s,color .3s,border-color .3s;}
.cal-nav:hover:not(:disabled){background:var(--ink);color:var(--cream);border-color:var(--ink);}
.cal-nav:disabled{opacity:.28;cursor:not-allowed;}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px;}
.cal-dow span{text-align:center;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--brown);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-day{aspect-ratio:1;border:none;background:none;border-radius:10px;cursor:pointer;font-family:var(--sans);font-size:15px;color:var(--ink);
  display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s;position:relative;}
.cal-day:hover:not(:disabled){background:var(--cream-deep);}
.cal-day:disabled{color:rgba(36,31,26,.22);cursor:not-allowed;}
.cal-day.empty{visibility:hidden;}
.cal-day.sel{background:var(--terra);color:#fff;font-weight:600;}
.cal-day.has::after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:999px;background:var(--terra);}
.cal-day.sel.has::after{background:#fff;}
.cal-tz{font-size:12px;color:var(--brown);margin:16px 0 0;text-align:center;}

.slots{min-height:220px;}
.slots-empty{color:var(--ink-soft);font-style:italic;font-family:var(--serif);font-size:18px;}
.slots-head{grid-column:1/-1;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin:0 0 6px;}
.slots-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.slot{padding:15px;border:1.5px solid rgba(36,31,26,.18);border-radius:12px;background:none;cursor:pointer;font-family:var(--sans);
  font-size:15px;font-weight:600;color:var(--ink);transition:background .25s,color .25s,border-color .25s,transform .2s;}
.slot:hover{border-color:var(--terra);color:var(--terra);transform:translateY(-2px);}
.book-form .bf-when{font-family:var(--serif);font-size:20px;margin:0 0 20px;}
.book-form .bf-when b{color:var(--terra);}
.bf-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px;}
.book-success{text-align:left;padding:6px 0;}
.bs-check{width:70px;height:70px;margin:0 0 18px;}
.bs-check svg{width:70px;height:70px;}
.bs-tick{stroke-dasharray:44;stroke-dashoffset:44;animation:tickDraw .5s .15s var(--ease) forwards;}
.book-success h3{font-size:clamp(26px,3.4vw,40px);margin:0 0 8px;}
.book-success p{color:var(--ink-soft);margin:0;}
.book-success .bs-note{color:var(--terra);font-style:italic;font-family:var(--serif);margin-top:10px;}
