/* AG Termin-Buchung — matches auswanderung-griechenland.de (Avada/Fusion, Manrope).
   All colours are CSS variables so the look can be tuned in one place. Defaults = site brand. */
.agb-root, .agb-section, .agb-modal{
  --agb-primary:#f04c23;      /* brand accent (buttons, selection) */
  --agb-primary-600:#d83e18;  /* hover */
  --agb-dark:#023a51;         /* headings */
  --agb-text:#59667d;         /* body text */
  --agb-bg:#ffffff;
  --agb-soft:#f9fafb;
  --agb-soft2:#f4f7fb;
  --agb-line:#e8ebef;
  --agb-radius:10px;
  --agb-font:"Manrope",Arial,Helvetica,sans-serif;
}
.agb-root{ display:inline-block; }

/* --- Booking section (the eye-catching card) --- */
.agb-section{ font-family:var(--agb-font); margin:28px auto; max-width:680px; }
.agb-card{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg,#ffffff 0%, var(--agb-soft2) 100%);
  border:1px solid var(--agb-line);
  border-radius:calc(var(--agb-radius) + 8px);
  box-shadow:0 18px 44px rgba(2,58,81,.10);
}
.agb-card-accent{ position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--agb-primary); }
.agb-card-inner{ padding:30px 34px 32px; }
.agb-eyebrow{
  display:inline-block; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:var(--agb-primary); margin-bottom:10px;
}
.agb-title{
  font-family:var(--agb-font); color:var(--agb-dark);
  font-size:27px; line-height:1.2; font-weight:800; margin:0 0 10px;
}
.agb-sub{ color:var(--agb-text); font-size:15.5px; line-height:1.6; margin:0 0 18px; max-width:52ch; }
.agb-price{
  display:flex; align-items:center; flex-wrap:wrap; gap:12px;
  background:#fff; border:1px dashed #f0b6a6; border-radius:var(--agb-radius);
  padding:12px 15px; margin:0 0 22px;
}
.agb-price-badge{
  flex:0 0 auto; background:var(--agb-primary); color:#fff; font-weight:800; font-size:15px;
  padding:7px 14px; border-radius:999px; letter-spacing:.01em; white-space:nowrap;
}
.agb-price-note{ color:var(--agb-dark); font-size:13.5px; line-height:1.45; font-weight:600; }
.agb-cta{ margin:0; }
.agb-cta .agb-open-btn{ font-size:17px; padding:15px 34px; }
@media (max-width:520px){
  .agb-card-inner{ padding:24px 20px 26px; }
  .agb-title{ font-size:23px; }
  .agb-cta .agb-open-btn{ width:100%; }
}

/* --- CTA button --- */
.agb-open-btn{
  font-family:var(--agb-font);
  background:var(--agb-primary);
  color:#fff;
  border:0;
  border-radius:var(--agb-radius);
  padding:14px 28px;
  font-size:16px;
  font-weight:700;
  letter-spacing:.02em;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(240,76,35,.28);
  transition:background .15s ease, transform .05s ease, box-shadow .15s ease;
  line-height:1.2;
}
.agb-open-btn:hover{ background:var(--agb-primary-600); box-shadow:0 8px 22px rgba(240,76,35,.34); }
.agb-open-btn:active{ transform:translateY(1px); }

/* --- Modal --- */
.agb-modal{
  position:fixed; inset:0; z-index:99999;
  display:flex; align-items:center; justify-content:center;
  padding:16px;
  font-family:var(--agb-font);
}
.agb-modal[hidden]{ display:none; }
.agb-overlay{
  position:absolute; inset:0;
  background:rgba(2,58,81,.45);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  animation:agb-fade .18s ease;
}
.agb-dialog{
  position:relative;
  width:100%; max-width:560px;
  max-height:92vh; overflow:auto;
  background:var(--agb-bg);
  border-radius:calc(var(--agb-radius) + 6px);
  box-shadow:0 24px 70px rgba(2,58,81,.30);
  padding:28px 28px 24px;
  animation:agb-pop .2s cubic-bezier(.2,.8,.25,1);
  color:var(--agb-text);
}
@keyframes agb-fade{ from{opacity:0} to{opacity:1} }
@keyframes agb-pop{ from{opacity:0; transform:translateY(12px) scale(.98)} to{opacity:1; transform:none} }

.agb-x{
  position:absolute; top:12px; right:14px;
  background:transparent; border:0;
  font-size:26px; line-height:1;
  color:#9aa6b8; cursor:pointer; padding:6px; border-radius:8px;
  transition:color .15s, background .15s;
}
.agb-x:hover{ color:var(--agb-dark); background:var(--agb-soft); }

.agb-h{
  font-family:var(--agb-font);
  color:var(--agb-dark);
  font-size:22px; font-weight:800; margin:0 0 6px; line-height:1.25;
}
.agb-intro{ font-size:14.5px; color:var(--agb-text); margin:0 0 18px; line-height:1.5; }

/* --- Day / slot grid --- */
.agb-days{ display:flex; flex-direction:column; gap:14px; }
.agb-day{ border:1px solid var(--agb-line); border-radius:var(--agb-radius); padding:12px 14px; background:var(--agb-soft); }
.agb-day-label{ font-weight:800; color:var(--agb-dark); font-size:14px; margin-bottom:10px; text-transform:capitalize; }
.agb-slots{ display:flex; flex-wrap:wrap; gap:8px; }
.agb-slot{
  font-family:var(--agb-font);
  background:#fff; color:var(--agb-dark);
  border:1.5px solid var(--agb-line); border-radius:8px;
  padding:9px 14px; font-size:14px; font-weight:700; cursor:pointer;
  transition:all .12s ease;
}
.agb-slot:hover{ border-color:var(--agb-primary); color:var(--agb-primary); transform:translateY(-1px); }
.agb-slot.is-selected{ background:var(--agb-primary); border-color:var(--agb-primary); color:#fff; }

/* --- Form --- */
.agb-form{ display:flex; flex-direction:column; gap:14px; }
.agb-chosen{
  display:flex; align-items:center; gap:10px;
  background:var(--agb-soft2); border:1px solid var(--agb-line);
  border-radius:var(--agb-radius); padding:12px 14px; color:var(--agb-dark); font-weight:700; font-size:14.5px;
}
.agb-chosen .agb-dot{ width:10px; height:10px; border-radius:50%; background:var(--agb-primary); flex:0 0 auto; }
.agb-field label{ display:block; font-size:13px; font-weight:700; color:var(--agb-dark); margin-bottom:5px; }
.agb-field .req{ color:var(--agb-primary); }
.agb-field input, .agb-field textarea{
  width:100%; box-sizing:border-box;
  font-family:var(--agb-font); font-size:15px; color:var(--agb-dark);
  background:#fff; border:1.5px solid var(--agb-line); border-radius:9px;
  padding:11px 13px; transition:border-color .15s, box-shadow .15s;
}
.agb-field input:focus, .agb-field textarea:focus{
  outline:0; border-color:var(--agb-primary); box-shadow:0 0 0 3px rgba(240,76,35,.14);
}
.agb-field textarea{ min-height:78px; resize:vertical; }
.agb-cf{ margin:2px 0; min-height:0; }
/* Honeypot: hidden from humans, tempting to bots. */
.agb-hp{ position:absolute !important; left:-9999px !important; top:auto; width:1px; height:1px; overflow:hidden; }

.agb-actions{ display:flex; gap:10px; align-items:center; margin-top:4px; }
.agb-submit{
  flex:1 1 auto;
  font-family:var(--agb-font);
  background:var(--agb-primary); color:#fff; border:0; border-radius:var(--agb-radius);
  padding:13px 20px; font-size:15.5px; font-weight:800; cursor:pointer;
  transition:background .15s, box-shadow .15s;
  box-shadow:0 6px 16px rgba(240,76,35,.26);
}
.agb-submit:hover{ background:var(--agb-primary-600); }
.agb-submit[disabled]{ opacity:.6; cursor:default; box-shadow:none; }
.agb-back{
  background:transparent; border:1.5px solid var(--agb-line); color:var(--agb-text);
  border-radius:var(--agb-radius); padding:12px 16px; font-weight:700; cursor:pointer; font-family:var(--agb-font); font-size:14px;
}
.agb-back:hover{ border-color:var(--agb-dark); color:var(--agb-dark); }

.agb-err{ color:#b3261e; background:#fdeceb; border:1px solid #f6c9c4; border-radius:9px; padding:10px 12px; font-size:13.5px; }

/* --- Confirmation --- */
.agb-done{ text-align:center; padding:14px 6px 6px; }
.agb-check{
  width:64px; height:64px; margin:0 auto 16px; border-radius:50%;
  background:rgba(240,76,35,.12); display:flex; align-items:center; justify-content:center;
}
.agb-check svg{ width:34px; height:34px; }
.agb-done h3{ font-family:var(--agb-font); color:var(--agb-dark); font-size:20px; font-weight:800; margin:0 0 8px; }
.agb-done .agb-when{ font-weight:800; color:var(--agb-primary); font-size:17px; margin:6px 0 4px; }
.agb-done p{ color:var(--agb-text); font-size:14.5px; margin:6px 0 18px; line-height:1.5; }

.agb-loading{ text-align:center; color:var(--agb-text); padding:40px 0; font-size:15px; }
.agb-spin{ display:inline-block; width:26px; height:26px; border:3px solid var(--agb-line); border-top-color:var(--agb-primary); border-radius:50%; animation:agb-rot .8s linear infinite; }
@keyframes agb-rot{ to{ transform:rotate(360deg) } }

@media (max-width:520px){
  .agb-dialog{ padding:22px 18px 18px; border-radius:14px; max-height:94vh; }
  .agb-h{ font-size:20px; }
  .agb-actions{ flex-direction:column-reverse; align-items:stretch; }
  .agb-back{ width:100%; }
}
