
/* Tom Photography Suite v2.4.0 — visual refresh
   Presentation-only layer. No site navigation/menu selectors are touched. */

:root{
  --tps240-ink:#171717;
  --tps240-muted:#6f6f6f;
  --tps240-line:#e8e5df;
  --tps240-paper:#fff;
  --tps240-soft:#f7f5f1;
  --tps240-soft-2:#fbfaf8;
  --tps240-shadow:0 18px 55px rgba(20,20,20,.07);
  --tps240-shadow-soft:0 8px 26px rgba(20,20,20,.055);
  --tps240-radius:20px;
}

/* Booking */
.tpb-v4{
  border:1px solid var(--tps240-line)!important;
  border-radius:var(--tps240-radius)!important;
  background:linear-gradient(180deg,#fff 0%,#fff 72%,#fbfaf8 100%)!important;
  box-shadow:var(--tps240-shadow)!important;
}
.tpb-v4 .tpb-head{
  max-width:780px;
  margin-bottom:28px;
}
.tpb-v4 .tpb-eyebrow{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border:1px solid var(--tps240-line);
  border-radius:999px;
  background:var(--tps240-soft-2);
  letter-spacing:.12em!important;
}
.tpb-v4 .tpb-head h2{
  letter-spacing:-.035em;
  line-height:1.03!important;
}
.tpb-v4 .tpb-head p{
  max-width:700px;
  line-height:1.7;
}
.tpb-v4 .tpb-price-note{
  display:inline-block;
  margin-top:10px!important;
  padding:8px 11px;
  border-radius:10px;
  background:var(--tps240-soft);
  font-size:12px;
}
.tpb-v4 .tpb-calendar{
  border:1px solid var(--tps240-line)!important;
  border-radius:16px!important;
  background:var(--tps240-soft-2)!important;
  box-shadow:none!important;
}
.tpb-v4 .tpb-cal-top{
  padding-bottom:12px;
  border-bottom:1px solid var(--tps240-line);
}
.tpb-v4 .tpb-prev,
.tpb-v4 .tpb-next{
  border-radius:10px!important;
  transition:transform .16s ease,background .16s ease,border-color .16s ease;
}
.tpb-v4 .tpb-prev:hover,
.tpb-v4 .tpb-next:hover{transform:translateY(-1px)}
.tpb-v4 .tpb-day{
  border-radius:10px!important;
  transition:transform .14s ease,box-shadow .14s ease,background .14s ease;
}
.tpb-v4 .tpb-day:not(:disabled):hover{
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(20,20,20,.07);
}
.tpb-v4 .tpb-times{
  padding:14px;
  border:1px solid var(--tps240-line);
  border-radius:14px;
  background:#fff;
}
.tpb-v4 .tpb-time{
  border-radius:10px!important;
  font-weight:650;
  transition:transform .14s ease,box-shadow .14s ease;
}
.tpb-v4 .tpb-time:hover{transform:translateY(-1px)}
.tpb-v4 .tpb-form-grid,
.tpb-v4 .tpb-duration-wrap{gap:18px!important}
.tpb-v4 .tpb-form-grid label,
.tpb-v4 .tpb-duration-wrap label,
.tpb-v4 .tpb-discount>label{
  font-size:13px;
  letter-spacing:.005em;
}
.tpb-v4 .tpb-form-grid input,
.tpb-v4 .tpb-form-grid select,
.tpb-v4 .tpb-form-grid textarea,
.tpb-v4 .tpb-duration-wrap select,
.tpb-v4 .tpb-duration-wrap input,
.tpb-v4 .tpb-discount-row input{
  min-height:48px;
  border-color:var(--tps240-line)!important;
  border-radius:12px!important;
  background:#fff!important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.tpb-v4 .tpb-form-grid textarea{min-height:132px}
.tpb-v4 .tpb-form-grid input:focus,
.tpb-v4 .tpb-form-grid select:focus,
.tpb-v4 .tpb-form-grid textarea:focus,
.tpb-v4 .tpb-duration-wrap select:focus,
.tpb-v4 .tpb-duration-wrap input:focus,
.tpb-v4 .tpb-discount-row input:focus{
  outline:none!important;
  border-color:#aaa49a!important;
  box-shadow:0 0 0 4px rgba(34,34,34,.055)!important;
}
.tpb-v4 .tpb-discount{
  padding:15px;
  border:1px dashed #d8d3ca;
  border-radius:14px;
  background:var(--tps240-soft-2);
}
.tpb-v4 .tpb-discount-row{margin-top:9px!important}
.tpb-v4 .tpb-discount-apply{
  min-height:48px;
  border-radius:12px!important;
  padding-inline:22px!important;
}
.tpb-v4 .tpb-selected-summary{
  border:1px solid var(--tps240-line);
  border-radius:14px;
  padding:13px 15px!important;
  background:var(--tps240-soft-2)!important;
}
.tpb-v4 .tpb-booking-action{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--tps240-line);
}
.tpb-v4 .tpb-estimate{
  border:1px solid var(--tps240-line)!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:var(--tps240-shadow-soft);
}
.tpb-v4 .tpb-estimate span{
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:10px!important;
}
.tpb-v4 .tpb-estimate strong{
  letter-spacing:-.02em;
}
.tpb-v4 .tpb-submit{
  min-height:50px;
  border-radius:13px!important;
  box-shadow:0 8px 20px rgba(20,20,20,.12);
  transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease;
}
.tpb-v4 .tpb-submit:not(:disabled):hover{
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(20,20,20,.16);
}
.tpb-v4 .tpb-start-again,
.tpb-v4 .tpb-confirmation-again{
  border-radius:11px!important;
}
.tpb-v4 .tpb-confirmation-icon{
  box-shadow:0 12px 30px rgba(20,20,20,.12);
}
.tpb-v4 .tpb-confirmation-details{
  border:1px solid var(--tps240-line)!important;
  border-radius:16px!important;
  background:var(--tps240-soft-2)!important;
  overflow:hidden;
}
.tpb-v4 .tpb-confirmation-details>div{
  border-color:var(--tps240-line)!important;
}
.tpb-v4 .tpb-confirmation-email{
  border-radius:14px!important;
}

/* Availability */
.tpa-availability{
  border:1px solid var(--tps240-line)!important;
  border-radius:var(--tps240-radius)!important;
  background:#fff!important;
  box-shadow:var(--tps240-shadow)!important;
}
.tpa-availability .tpa-head h2{letter-spacing:-.03em}
.tpa-availability .tpa-calendar{
  border-color:var(--tps240-line)!important;
  border-radius:16px!important;
  background:var(--tps240-soft-2)!important;
}
.tpa-availability .tpa-day{border-radius:10px!important}
.tpa-availability .tpa-legend{
  padding-top:14px;
  border-top:1px solid var(--tps240-line);
}

/* Purchase gallery */
.pgp-avada-gallery{
  --pgp-card-radius:16px;
}
.pgp-avada-card,
.pgp-avada-photo,
.pgp-avada-cart{
  border-color:var(--tps240-line)!important;
  border-radius:16px!important;
}
.pgp-avada-photo{
  overflow:hidden;
  box-shadow:var(--tps240-shadow-soft);
  transition:transform .18s ease,box-shadow .18s ease;
}
.pgp-avada-photo:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(20,20,20,.09);
}
.pgp-avada-toolbar,
.pgp-avada-licence-warning{
  border-radius:14px!important;
}
.pgp-avada-cart{
  box-shadow:var(--tps240-shadow)!important;
}

/* Private client gallery */
.tpscg-login,
.tpscg-gallery{
  border-color:var(--tps240-line)!important;
  border-radius:var(--tps240-radius)!important;
  box-shadow:var(--tps240-shadow)!important;
}
.tpscg-login{background:linear-gradient(180deg,#fff,#fbfaf8)!important}
.tpscg-login h1,
.tpscg-gallery h1{letter-spacing:-.04em!important}
.tpscg-code-form input,
.tpscg-code-form button,
.tpscg-download-all{
  min-height:48px;
  border-radius:12px!important;
}
.tpscg-photo{
  border-color:var(--tps240-line)!important;
  border-radius:16px!important;
  overflow:hidden;
  box-shadow:var(--tps240-shadow-soft);
}

/* Other Suite Avada elements */
.tps220-element{
  border-color:var(--tps240-line)!important;
}
.tps220-cards article,
.tps220-find-date,
.tps220-exif>div,
.tps220-stats>div{
  border-radius:16px!important;
  border-color:var(--tps240-line)!important;
  box-shadow:var(--tps240-shadow-soft);
}

@container (max-width:560px){
  .tpb-v4{box-shadow:0 10px 30px rgba(20,20,20,.06)!important}
  .tpb-v4 .tpb-discount{padding:13px}
  .tpb-v4 .tpb-booking-action{padding-top:16px}
}
