/* Swell Quote Widget — self-contained. Tokens are declared locally on .sq-root
   so the widget does not depend on the theme's stylesheet. Every class is
   sq- prefixed. Fonts are enqueued from PHP (filter: swell_quote_load_fonts). */

.sq-root{--sq-teal-50:#ecf8f7;--sq-teal-100:#d3efee;--sq-teal-200:#a6dedd;--sq-teal-300:#6ec7c6;--sq-teal-400:#3aaeae;--sq-teal-500:#0f9a9a;--sq-teal-600:#0a7d7e;--sq-teal-700:#0a6364;--sq-sand-100:#f7f1e6;--sq-sand-200:#efe5d1;--sq-coral-500:#ee6a47;--sq-coral-600:#d4502e;--sq-ink-900:#0a1f24;--sq-ink-700:#2a4046;--sq-ink-500:#56707a;--sq-ink-400:#8a9da3;--sq-ink-300:#c2cdd0;--sq-ink-200:#e2e7e8;--sq-display:'Instrument Serif','Cormorant Garamond',Times New Roman,serif;--sq-sans:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;--sq-ease:cubic-bezier(.22,1,.36,1);--sq-swell:cubic-bezier(.4,0,.2,1);--sq-max:520px;font-family:var(--sq-sans);max-width:var(--sq-max);box-sizing:border-box}
.sq-root *,.sq-root *::before,.sq-root *::after{box-sizing:border-box}
/* overflow stays visible: the arrival calendar is a pop-over anchored inside
   the card, and is clipped otherwise. No child is full-bleed, so nothing
   needs the rounded corners to clip. */
.sq-card{position:relative;background:#fff;border-radius:16px;box-shadow:0 8px 24px rgba(10,31,36,.10);display:flex;flex-direction:column;min-height:520px}
.sq-head{padding:26px 30px 0;display:flex;flex-direction:column;gap:12px}
.sq-headrow{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.sq-eyebrow{font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--sq-teal-600)}
.sq-count{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--sq-ink-400)}
.sq-track{height:3px;background:var(--sq-ink-200);border-radius:999px}
.sq-bar{height:3px;width:0;background:var(--sq-teal-500);border-radius:999px;transition:width 520ms var(--sq-swell)}
.sq-body{padding:26px 30px 4px;display:flex;flex-direction:column;gap:8px}
.sq-steplabel{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sq-teal-600)}
.sq-q{margin:0;font-family:var(--sq-display);font-weight:400;font-size:31px;line-height:1.2;color:var(--sq-ink-900);text-wrap:pretty}
.sq-note{margin:0;font-size:14px;line-height:1.5;color:var(--sq-ink-500);text-wrap:pretty}
.sq-controls{padding:16px 30px 26px;display:flex;flex-direction:column;gap:14px;flex:1}
.sq-chips{display:flex;flex-wrap:wrap;gap:8px}
.sq-chip{white-space:nowrap}
.sq-opts{display:flex;flex-direction:column;gap:6px}
.sq-opt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font-family:inherit;font-size:14.5px;line-height:1.3;padding:13px 15px;border:1px solid var(--sq-ink-200);border-radius:10px;background:#fff;color:var(--sq-ink-900);cursor:pointer;transition:border-color 160ms var(--sq-ease),background 160ms var(--sq-ease)}
.sq-opt:hover,.sq-opt:focus-visible{border-color:var(--sq-teal-400);background:var(--sq-teal-50);outline:none}
.sq-dot{width:16px;height:16px;flex:none;border-radius:999px;border:1.5px solid var(--sq-ink-300);transition:border-color 160ms var(--sq-ease),background 160ms var(--sq-ease)}
.sq-opt:hover .sq-dot{border-color:var(--sq-teal-500)}
.sq-opt[aria-pressed=true]{border-color:var(--sq-teal-500);background:var(--sq-teal-50)}
.sq-opt[aria-pressed=true] .sq-dot{border-color:var(--sq-teal-500);background:var(--sq-teal-500);box-shadow:inset 0 0 0 3px #fff}
.sq-chip{font-family:inherit;font-size:14px;padding:9px 16px;border-radius:999px;border:1px solid var(--sq-teal-300);background:var(--sq-teal-50);color:var(--sq-teal-700);cursor:pointer;transition:background 260ms var(--sq-ease),color 260ms var(--sq-ease),border-color 260ms var(--sq-ease)}
.sq-chip:hover,.sq-chip:focus-visible{background:var(--sq-teal-500);color:#fff;border-color:var(--sq-teal-500);outline:none}
.sq-chip[aria-pressed=true]{background:var(--sq-teal-500);color:#fff;border-color:var(--sq-teal-500)}
.sq-opt[disabled],.sq-chip[disabled]{opacity:.55;cursor:default}
.sq-fields{display:flex;flex-wrap:wrap;gap:8px}
.sq-input{font-family:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--sq-ink-300);border-radius:6px;outline:none;color:var(--sq-ink-900);background:#fff;transition:border-color 160ms var(--sq-ease)}
.sq-input:focus{border-color:var(--sq-teal-400);box-shadow:0 0 0 3px var(--sq-teal-50)}
.sq-input.sq-err{border-color:var(--sq-coral-600)}
.sq-textarea{min-height:96px;resize:vertical;width:100%}
.sq-datewrap{position:relative;width:100%}
.sq-datebtn{width:100%;display:flex;align-items:center;gap:10px;font-family:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--sq-ink-300);border-radius:6px;background:#fff;color:var(--sq-ink-400);cursor:pointer;text-align:left}
.sq-datebtn.sq-filled{color:var(--sq-ink-900)}
.sq-datebtn span{white-space:nowrap}
.sq-datebtn[aria-expanded=true]{border-color:var(--sq-teal-400)}
.sq-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sq-primary{font-family:inherit;font-size:15px;padding:12px 20px;border:none;border-radius:10px;background:var(--sq-coral-500);color:#fff;cursor:pointer;transition:background 260ms var(--sq-ease),transform 160ms var(--sq-ease)}
.sq-primary:hover{background:var(--sq-coral-600)}
.sq-primary:active{transform:scale(.98)}
.sq-primary[disabled]{opacity:.6;cursor:default}
.sq-ghost{font-family:inherit;font-size:14px;padding:11px 16px;border:1px solid var(--sq-ink-300);border-radius:999px;background:#fff;color:var(--sq-ink-500);cursor:pointer}
.sq-ghost:hover{border-color:var(--sq-teal-400);color:var(--sq-teal-600)}
.sq-back{align-self:flex-start;display:flex;align-items:center;gap:6px;font-family:inherit;font-size:13px;padding:0;border:none;background:transparent;color:var(--sq-ink-500);cursor:pointer;margin-top:auto}
.sq-back:hover{color:var(--sq-teal-600)}
.sq-summary{display:flex;flex-direction:column;gap:9px}
.sq-srow{display:flex;justify-content:space-between;gap:16px;padding-bottom:7px;border-bottom:1px solid var(--sq-ink-200)}
.sq-slabel{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sq-ink-400)}
.sq-sval{font-size:14px;color:var(--sq-ink-900);text-align:right}
.sq-msg{font-size:14px;line-height:1.5;color:var(--sq-coral-600)}
/* display:none, not just off-screen: browsers and password managers skip
   fields that are not displayed, which is what stopped real guests being
   autofilled into the honeypot and flagged as bots. */
.sq-hp{display:none!important;position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Calendar */
.sq-cal{position:absolute;top:calc(100% + 10px);left:0;z-index:30;width:314px;background:#fff;border-radius:16px;box-shadow:0 20px 48px rgba(10,31,36,.16);padding:18px 18px 14px;display:flex;flex-direction:column;gap:12px}
.sq-calhead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sq-calmonth{font-family:var(--sq-display);font-size:21px;line-height:1;color:var(--sq-ink-900)}
.sq-nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--sq-ink-200);border-radius:999px;background:#fff;color:var(--sq-ink-700);cursor:pointer}
.sq-nav:hover{border-color:var(--sq-teal-400);color:var(--sq-teal-600)}
.sq-grid{display:grid;grid-template-columns:repeat(7,38px);gap:2px}
.sq-dow{height:22px;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--sq-ink-400)}
.sq-day{height:38px;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:14px;border-radius:999px;border:1px solid transparent;background:#fff;color:var(--sq-ink-900);cursor:pointer;transition:background 160ms var(--sq-ease)}
.sq-day:hover:not([disabled]):not(.sq-sel){background:var(--sq-teal-50);border-color:var(--sq-teal-200)}
.sq-day.sq-high{background:var(--sq-sand-100)}
.sq-day.sq-today{border-color:var(--sq-teal-400)}
.sq-day.sq-sel{background:var(--sq-teal-500);border-color:var(--sq-teal-500);color:#fff}
.sq-day[disabled]{cursor:default;background:transparent;color:var(--sq-ink-300)}
.sq-day.sq-blank{visibility:hidden}
.sq-legend{display:flex;align-items:center;gap:8px;border-top:1px solid var(--sq-ink-200);padding-top:11px}
.sq-swatch{width:12px;height:12px;border-radius:3px;background:var(--sq-sand-200);flex:none}
.sq-legend span+span{font-size:12px;color:var(--sq-ink-500)}

@media(max-width:480px){.sq-head{padding:20px 20px 0}.sq-body{padding:20px 20px 4px}.sq-controls{padding:14px 20px 20px}.sq-q{font-size:26px}.sq-cal{width:100%}.sq-grid{grid-template-columns:repeat(7,1fr)}}

/* ------------------------------------------------------------------
   theme="inline" — tinted panel for dropping inside an existing card
   or a coloured section, rather than floating as its own white card.
   ------------------------------------------------------------------ */
.sq-theme-inline .sq-card{background:#eef7f6;border-top:1px solid #cfe5e3;border-bottom:1px solid #cfe5e3;box-shadow:inset 0 3px 0 var(--sq-teal-500);border-radius:0;min-height:0}
.sq-theme-inline .sq-head{padding:18px 24px 0}
.sq-theme-inline .sq-eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.2em;color:var(--sq-teal-700);white-space:nowrap}
.sq-theme-inline .sq-count{font-size:10.5px;letter-spacing:.12em;white-space:nowrap}
.sq-theme-inline .sq-body{padding:16px 24px 4px;gap:6px}
.sq-theme-inline .sq-q{font-size:27px;line-height:1.14}
.sq-theme-inline .sq-note{font-size:12.6px;line-height:1.5}
.sq-theme-inline .sq-controls{padding:12px 24px 20px;gap:12px}
.sq-theme-inline .sq-track{background:#d5e7e5}
.sq-theme-inline .sq-chip{font-size:13px;padding:8px 13px;background:#fff;border-color:#bfd9d6}
.sq-theme-inline .sq-chip:hover,.sq-theme-inline .sq-chip[aria-pressed=true]{background:var(--sq-teal-500);border-color:var(--sq-teal-500);color:#fff}
.sq-theme-inline .sq-opt{font-size:14px;padding:12px 14px;background:#fff;border-color:#d7e6e4}
.sq-theme-inline .sq-opt:hover,.sq-theme-inline .sq-opt[aria-pressed=true]{border-color:var(--sq-teal-500);background:#fff}
.sq-theme-inline .sq-input,.sq-theme-inline .sq-datebtn{font-size:14px;padding:12px 13px;border-color:#c3dbd9}
.sq-theme-inline .sq-textarea{min-height:78px}
.sq-theme-inline .sq-actions{gap:10px}
.sq-theme-inline .sq-primary{font-size:13.5px;font-weight:500;letter-spacing:.04em;padding:14px 22px;border-radius:999px;flex:1;background:var(--sq-teal-500);box-shadow:0 8px 18px -10px rgba(10,100,100,.65)}
.sq-theme-inline .sq-primary:hover{background:var(--sq-teal-600)}
.sq-theme-inline .sq-ghost{font-size:12.5px;padding:10px 14px}
.sq-theme-inline .sq-cal{position:static;width:100%;padding:12px 0 0;background:transparent;border-radius:0;box-shadow:none;border-top:1px solid #e0e7e5;margin-top:10px}
.sq-theme-inline .sq-grid{grid-template-columns:repeat(7,1fr)}
.sq-theme-inline .sq-day{height:34px;font-size:13px;background:transparent;border-color:transparent}
.sq-theme-inline .sq-day.sq-high{background:#e6f2f1}
.sq-theme-inline .sq-day.sq-sel{background:var(--sq-teal-500);border-color:var(--sq-teal-500)}
.sq-theme-inline .sq-nav{background:#fff;border-color:#e0e7e5}
.sq-theme-inline .sq-srow{border-bottom-color:#e0e7e5}
.sq-theme-inline .sq-legend{border-top-color:#e0e7e5}
.sq-theme-inline .sq-summary{gap:7px}
.sq-theme-inline .sq-back{font-size:12.5px;margin-top:4px}

/* Rounded standalone variant of the inline theme, for use as its own block. */
.sq-theme-inline.sq-boxed .sq-card{border:1px solid #cfe5e3;border-radius:16px;box-shadow:0 24px 60px -38px rgba(10,40,40,.45),inset 0 3px 0 var(--sq-teal-500);overflow:hidden}

/* ------------------------------------------------------------------
   theme="bare" — no card chrome at all; inherits the surrounding
   background. For sections that already provide their own container.
   ------------------------------------------------------------------ */
.sq-theme-bare .sq-card{background:transparent;box-shadow:none;border-radius:0;min-height:0}
.sq-theme-bare .sq-head{padding:0}
.sq-theme-bare .sq-body{padding:18px 0 4px}
.sq-theme-bare .sq-controls{padding:14px 0 0}

@media(prefers-reduced-motion:reduce){.sq-root *{transition-duration:1ms!important;animation-duration:1ms!important}}
