/* Calm, tactile cards and booking controls. No booking behaviour changes. */
.services .grid,.pricing .grid{gap:20px}
.services .card,.pricing .price-card{
  border:1px solid #c8dcc8;border-radius:22px;
  background:linear-gradient(145deg,#ffffff,#f1f8ee);
  box-shadow:0 8px 24px #29443809;
  transition:box-shadow .2s ease,border-color .2s ease;
}
.services .card{
  padding:28px;gap:14px;min-height:270px;
  box-shadow:0 4px 0 #cedecc,0 10px 22px #29443810,inset 0 1px 0 #fff;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.services .card .num{align-self:start;background:#e7f1e2;color:#405e49;border-radius:999px;padding:8px 12px;letter-spacing:.8px}
.services .card h3{margin-top:12px}
.services .card .arrow{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#e5efdf;color:#385b48;border:1px solid #c9ddc5}
.services .card .arrow:focus-visible{outline:3px solid #385b48;outline-offset:4px}
.pricing .price-card{padding:28px 24px 24px;min-height:360px}
.pricing .price-card>.label{align-self:start;border-radius:999px;background:#e6f0e1;padding:8px 11px;color:#405e49;letter-spacing:.8px}
.pricing .price-card h3{margin-top:24px}
.pricing .price-card .price{padding-bottom:18px;border-bottom:1px solid #cadcc6}
.pricing .price-card.feature{background:linear-gradient(145deg,#527760,#365b46);border-color:#496f55;box-shadow:0 12px 30px #29443822;color:#fff}
.pricing .price-card.feature>.label{background:#e3f0d9;color:#294438}
.pricing .price-card.feature .price{border-color:#ffffff38}
.pricing .price-card.feature p{color:#f1f7ed}
.booking .book-grid{grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:52px;align-items:start}
.booking .form,.booking #booking-confirmation{padding:30px;border:1px solid #d2e2cc;border-radius:24px;background:#f5faf1;color:#294438;box-shadow:0 18px 48px #17342626;min-width:0}
.booking .form{gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}
.booking .form label{color:#385742;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:700;text-transform:none;letter-spacing:.2px;min-width:0;gap:8px}
.booking .form input:not([type=hidden]),.booking .form select{
  min-width:0;height:52px;border-radius:11px;border:1px solid #b4ccb1;
  background:#fff;color:#294438;padding:0 12px;font-size:16px;
  box-shadow:0 2px 4px #29443804;transition:border-color .18s ease,box-shadow .18s ease;
}
.booking .form input::placeholder{color:#61715f;opacity:1}
.booking .form input:focus,.booking .form select:focus{outline:2px solid #527260;outline-offset:2px;border-color:#527260;box-shadow:0 0 0 5px #52726016}
.booking .form select:disabled{background:#e8eee5;color:#63705f;opacity:1;cursor:not-allowed}
.booking .form .form-note{color:#50634e;margin:0;font-size:12px}
.booking .form .booking-price{padding:15px 16px;background:#e3efdb;border:1px solid #c4d8bc;border-radius:12px;color:#294438;line-height:1.55}
.booking .form .button{--button-edge:#263f31;background:linear-gradient(135deg,#527260,#385b48);color:#fff;border-color:transparent;margin-top:0;min-height:54px}
.booking .form .booking-status{color:#294438;background:#e4eedf;border-color:#9fbb98;border-radius:12px}
.booking .form .booking-status.is-error{background:#fff0eb;color:#823624;border-color:#dca495}
.booking #booking-confirmation{line-height:1.6}
.booking #booking-confirmation a{font-weight:700}
@media(hover:hover){
  .services .card:hover,.services .card:focus-within,.pricing .price-card:hover,.pricing .price-card:focus-within{border-color:#93b18d;box-shadow:0 12px 28px #29443816}
  .services .card:hover,.services .card:focus-within{transform:translateY(-2px);box-shadow:0 6px 0 #c5d8c2,0 14px 26px #29443818,inset 0 1px 0 #fff}
  .services .card .arrow:hover{background:#d5e7cc}
  .booking .form .button:not(:disabled):hover{background:linear-gradient(135deg,#456951,#2e4e3c)}
}
@media(max-width:1000px) and (min-width:701px){.booking .book-grid{gap:30px;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.booking .form{grid-template-columns:1fr}.booking .form label{grid-column:1/-1}}
@media(max-width:700px){
  .intro>div{min-width:0}
  .services .grid,.pricing .grid{gap:18px}
  .services .card{min-height:230px;padding:24px}
  .pricing .price-card{min-height:315px}
  .booking .book-grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .booking .form,.booking #booking-confirmation{padding:22px 18px;border-radius:20px}
  .booking .form{grid-template-columns:minmax(0,1fr);gap:17px}
}
@media(prefers-reduced-motion:reduce){.services .card,.pricing .price-card,.booking .form input,.booking .form select{transition:none}}
@media(prefers-reduced-motion:reduce){.services .card:hover,.services .card:focus-within{transform:none}}
