
.dsb-wrap,
.dsb-wrap *{
  box-sizing:border-box;
}

.dsb-wrap{
  --ds-green:#2F7448;
  --ds-green-dark:#245C39;
  --ds-mint:#EAF5EF;
  --ds-mint-soft:#F6FBF8;
  --ds-cream:#FFF9F1;
  --ds-yellow:#F6C84C;
  --ds-text:#292929;
  --ds-muted:#737773;
  --ds-border:#E7E1D7;

  max-width:1180px;
  margin:0 auto;
  padding:32px 20px 80px;
  font-family:'Poppins',sans-serif;
  color:var(--ds-text);
}

.dsb-head{
  max-width:780px;
  margin-bottom:36px;
}

.dsb-head>span{
  display:block;
  margin-bottom:8px;
  color:var(--ds-green);
  font-size:12px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.dsb-head h2{
  margin:0 0 12px;
  color:var(--ds-green-dark);
  font-family:'Poppins',sans-serif;
  font-size:42px;
  line-height:1.15;
  font-weight:600;
}

.dsb-head p{
  margin:0;
  max-width:720px;
  color:#414641;
  font-size:16px;
  line-height:1.7;
  font-weight:300;
}

.dsb-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:34px;
  align-items:start;
}

#dsb-form{
  display:flex;
  flex-direction:column;
  gap:20px;
  min-width:0;
}

.dsb-card{
  padding:28px;
  background:#fff;
  border:1px solid var(--ds-border);
  border-radius:22px;
}

.dsb-card h3{
  margin:0 0 24px;
  color:var(--ds-green-dark);
  font-family:'Poppins',sans-serif;
  font-size:20px;
  line-height:1.3;
  font-weight:600;
}

.dsb-date{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
}

.dsb-date label,
.dsb-grid label,
.dsb-card>label{
  display:flex;
  flex-direction:column;
  gap:8px;
  color:#4B504B;
  font-size:13px;
  font-weight:400;
}

.dsb-date input,
.dsb-grid input,
.dsb-grid select,
.dsb-card textarea{
  width:100%;
  min-height:48px;
  padding:12px 14px;
  border:1px solid var(--ds-border);
  border-radius:12px;
  background:#fff;
  color:var(--ds-text);
  outline:none;
  font-family:'Poppins',sans-serif;
  font-size:14px;
  font-weight:300;
  transition:border-color .18s ease, box-shadow .18s ease;
}

.dsb-card textarea{
  min-height:110px;
  resize:vertical;
}

.dsb-date input:focus,
.dsb-grid input:focus,
.dsb-grid select:focus,
.dsb-card textarea:focus{
  border-color:#8AB79A;
  box-shadow:0 0 0 3px rgba(47,116,72,.08);
}

#dsb-find{
  min-height:48px;
  padding:0 22px;
  border:0;
  border-radius:999px;
  background:var(--ds-green);
  color:#fff;
  cursor:pointer;
  font-family:'Poppins',sans-serif;
  font-size:14px;
  font-weight:500;
  transition:background .18s ease, transform .18s ease;
}

#dsb-find:hover{
  background:var(--ds-green-dark);
  transform:translateY(-1px);
}

/* Availability message */
#dsb-date-message{
  margin-top:12px;
}

.dsb-loading,
.dsb-availability-head,
.dsb-no-availability,
.dsb-error,
.dsb-success{
  border-radius:12px;
  padding:13px 15px;
  font-size:13px;
  line-height:1.55;
}

.dsb-loading{
  color:var(--ds-muted);
  background:#FAFAF8;
  border:1px solid var(--ds-border);
}

.dsb-availability-head{
  display:flex;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap;
  background:var(--ds-mint-soft);
  border:1px solid #D9EADF;
}

.dsb-availability-head strong{
  color:var(--ds-green-dark);
  font-weight:600;
}

.dsb-availability-head span{
  color:var(--ds-muted);
  font-weight:300;
}

.dsb-no-availability{
  display:flex;
  flex-direction:column;
  gap:3px;
  background:var(--ds-cream);
  border:1px solid #EEE0C5;
}

.dsb-no-availability strong{
  color:var(--ds-text);
  font-weight:600;
}

.dsb-no-availability span{
  color:var(--ds-muted);
  font-weight:300;
}

/* Availability rows */
#dsb-times{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:10px;
}

.dsb-availability-row{
  width:100%;
  min-height:56px;
  padding:10px 12px;
  display:grid;
  grid-template-columns:minmax(170px,1.25fr) 80px minmax(110px,auto) auto;
  gap:12px;
  align-items:center;

  border:1px solid var(--ds-border);
  border-radius:12px;
  background:#fff;
  color:var(--ds-text);
  text-align:left;
  cursor:pointer;

  font-family:'Poppins',sans-serif;
  transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.dsb-availability-row:hover{
  border-color:#B7D2C0;
  background:#FBFEFC;
}

.dsb-availability-row.is-selected{
  border-color:var(--ds-green);
  background:var(--ds-mint-soft);
  box-shadow:0 0 0 2px rgba(47,116,72,.06);
}

.dsb-av-date{
  color:var(--ds-green-dark);
  font-size:13px;
  font-weight:600;
}

.dsb-av-time{
  color:var(--ds-text);
  font-size:15px;
  font-weight:600;
}

.dsb-av-places{
  justify-self:start;
  padding:5px 9px;
  border-radius:999px;
  background:#FFF6D8;
  color:#665218;
  font-size:11px;
  line-height:1;
  font-weight:500;
}

.dsb-av-action{
  justify-self:end;
  color:var(--ds-green);
  font-size:11px;
  font-weight:600;
}

.dsb-availability-row.is-selected .dsb-av-places{
  background:#fff;
  color:var(--ds-green-dark);
  border:1px solid #D3E5D8;
}

.dsb-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.dsb-package-field{
  grid-column:1/-1;
}

.dsb-package-description{
  margin:14px 0 4px;
  padding:15px 17px;
  background:var(--ds-cream);
  border:1px solid #EEE0C5;
  border-left:4px solid var(--ds-green);
  border-radius:12px;
  color:#4B504B;
  font-size:13px;
  line-height:1.6;
}

.dsb-package-description strong{
  display:block;
  margin-bottom:3px;
  color:var(--ds-green-dark);
  font-weight:600;
}

.dsb-package-description p{
  margin:0;
}

.dsb-extras{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}

.dsb-extras label,
.dsb-cons label{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:11px 12px;
  border-radius:10px;
  background:#FAFAF9;
  color:#565B56;
  font-size:12px;
  line-height:1.5;
  font-weight:300;
}

.dsb-extras input,
.dsb-cons input{
  margin-top:2px;
  accent-color:var(--ds-green);
}

.dsb-cons{
  display:flex;
  flex-direction:column;
  gap:9px;
}

.dsb-submit{
  width:100%;
  min-height:52px;
  padding:0 22px;
  border:0;
  border-radius:999px;
  background:var(--ds-green);
  color:#fff;
  cursor:pointer;
  font-family:'Poppins',sans-serif;
  font-size:14px;
  font-weight:500;
  transition:background .18s ease;
}

.dsb-submit:hover{
  background:var(--ds-green-dark);
}

.dsb-submit:disabled{
  background:#A6A6A6;
  cursor:not-allowed;
}

.dsb-payment-note{
  margin:8px 12px 0;
  text-align:center;
  color:var(--ds-muted);
  font-size:11px;
  line-height:1.5;
}

/* Summary */
.dsb-summary{
  position:sticky;
  top:110px;
  align-self:start;
}

.dsb-summary>div{
  padding:24px;
  border:1px solid #EEE0C5;
  border-radius:22px;
  background:var(--ds-cream);
}

.dsb-summary small{
  display:block;
  color:#777;
  font-size:12px;
  font-weight:300;
}

.dsb-summary h3{
  margin:18px 0 20px;
  color:var(--ds-green-dark);
  font-family:'Poppins',sans-serif;
  font-size:24px;
  font-weight:600;
}

.dsb-summary p{
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin:0;
  padding:11px 0;
  border-bottom:1px solid #EDE0C9;
  color:#666;
  font-size:12px;
  font-weight:300;
}

.dsb-summary p b{
  color:var(--ds-text);
  text-align:right;
  font-weight:500;
}

.dsb-summary .deposit{
  margin-top:18px;
  padding:16px;
  border-radius:14px;
  background:var(--ds-green);
  color:#fff;
  font-size:13px;
  font-weight:300;
}

.dsb-summary .deposit strong{
  display:block;
  margin-top:2px;
  font-size:26px;
  font-weight:600;
}

.dsb-summary em{
  display:block;
  margin-top:13px;
  color:#777;
  font-size:10px;
  line-height:1.5;
  font-weight:300;
}

.dsb-error{
  margin-top:10px;
  background:#FFF2EF;
  border:1px solid #F0D1C9;
  color:#8A3A2C;
}

.dsb-success{
  margin-top:10px;
  background:var(--ds-mint-soft);
  border:1px solid #D5E8DA;
  color:var(--ds-green-dark);
}

/* Absolute cleanup of all legacy slot styles from previous versions */
#dsb-times .dsb-slot-card,
#dsb-times .dsb-slot-row,
#dsb-times .dsb-slot-cards,
#dsb-times .dsb-slot-list{
  all:unset;
}

@media(max-width:900px){
  .dsb-layout{
    grid-template-columns:1fr;
  }

  .dsb-summary{
    position:static;
    order:-1;
  }

  .dsb-summary>div{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 20px;
  }

  .dsb-summary h3,
  .dsb-summary small,
  .dsb-summary .deposit,
  .dsb-summary em{
    grid-column:1/-1;
  }
}

@media(max-width:700px){
  .dsb-wrap{
    padding-left:14px;
    padding-right:14px;
  }

  .dsb-head h2{
    font-size:32px;
  }

  .dsb-card{
    padding:20px;
    border-radius:18px;
  }

  .dsb-date,
  .dsb-grid,
  .dsb-extras{
    grid-template-columns:1fr;
  }

  #dsb-find{
    width:100%;
  }

  .dsb-availability-row{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "date action"
      "time places";
    gap:7px 10px;
  }

  .dsb-av-date{grid-area:date}
  .dsb-av-time{grid-area:time}
  .dsb-av-places{grid-area:places;justify-self:end}
  .dsb-av-action{grid-area:action}

  .dsb-summary>div{
    display:block;
  }
}


/* =========================================================
   v1.6.2 — final UX fixes: selected state + sticky summary
   ========================================================= */

/* neutral hover: no yellow/orange full row */
.dsb-availability-row:hover{
  border-color:#B7D2C0 !important;
  background:#F8FCF9 !important;
  color:var(--ds-text) !important;
  box-shadow:0 2px 8px rgba(47,116,72,.04) !important;
}

/* selected row: solid green + white text */
.dsb-availability-row.is-selected,
.dsb-availability-row[aria-pressed="true"]{
  border-color:#2F7448 !important;
  background:#2F7448 !important;
  color:#fff !important;
  box-shadow:none !important;
}

.dsb-availability-row.is-selected .dsb-av-date,
.dsb-availability-row.is-selected .dsb-av-time,
.dsb-availability-row.is-selected .dsb-av-action,
.dsb-availability-row[aria-pressed="true"] .dsb-av-date,
.dsb-availability-row[aria-pressed="true"] .dsb-av-time,
.dsb-availability-row[aria-pressed="true"] .dsb-av-action{
  color:#fff !important;
}

.dsb-availability-row.is-selected .dsb-av-places,
.dsb-availability-row[aria-pressed="true"] .dsb-av-places{
  background:#FFF7DE !important;
  border:0 !important;
  color:#6B5617 !important;
}

/* hover of selected item stays selected green */
.dsb-availability-row.is-selected:hover,
.dsb-availability-row[aria-pressed="true"]:hover{
  background:#2F7448 !important;
  border-color:#2F7448 !important;
}

/* robust sticky summary for Elementor/Tediss */
.dsb-layout{
  overflow:visible !important;
  align-items:start !important;
}

.dsb-summary{
  position:-webkit-sticky !important;
  position:sticky !important;
  top:110px !important;
  align-self:start !important;
  height:max-content !important;
  overflow:visible !important;
  z-index:30 !important;
}

/* Elementor/Tediss wrappers around shortcode often block sticky */
.elementor-widget-shortcode,
.elementor-widget-shortcode > .elementor-widget-container,
.elementor-shortcode{
  overflow:visible !important;
}

@media(max-width:900px){
  .dsb-summary{
    position:static !important;
    top:auto !important;
  }
}
