:root {
  --blue-50:#EAF7FD; --blue-100:#DCF2FB; --blue-200:#ADE4F6; --blue-300:#7FCEED;
  --blue-400:#46B5E4; --blue-500:#1A9FD9; --blue-600:#1487BC; --blue-700:#106E9A; --blue-800:#0C5577;
  --green-50:#E9F7EF; --green-100:#D2EFDD; --green-200:#A6DFBB; --green-400:#57BE80;
  --green-500:#3FAE6E; --green-600:#318C57; --green-700:#266E45;
  --cream-50:#FBF9F8; --cream-100:#F7F3F1; --cream-200:#F2EDEB; --cream-300:#E7DFDA;
  --ink-900:#11303F; --ink-800:#1C3F50; --ink-700:#2E4F60; --ink-600:#3E5E6E;
  --ink-500:#5C7682; --ink-400:#8AA0AB; --ink-300:#B4C4CC; --ink-200:#D7E1E6;
  --ink-100:#E9EFF2; --ink-50:#F4F7F9; --white:#FFFFFF;
  --success:#3FAE6E; --warning:#E8A23B; --danger:#DB5042; --info:#1A9FD9;
  --color-primary:var(--blue-500); --color-primary-hover:var(--blue-600);
  --color-primary-active:var(--blue-700); --color-primary-soft:var(--blue-100);
  --color-accent:var(--green-500); --color-accent-hover:var(--green-600);
  --color-accent-soft:var(--green-100);
  --text-heading:var(--ink-900); --text-body:var(--ink-700); --text-muted:var(--ink-500);
  --text-subtle:var(--ink-400); --text-on-primary:var(--white); --text-on-accent:var(--white);
  --text-link:var(--blue-600);
  --surface-page:var(--cream-50); --surface-card:var(--white);
  --surface-cream:var(--cream-200); --surface-tint:var(--blue-100);
  --surface-accent-tint:var(--green-100); --surface-inverse:var(--ink-900);
  --border:var(--ink-200); --border-strong:var(--ink-300);
  --border-on-tint:rgba(17,48,63,0.10); --focus-ring:rgba(26,159,217,0.45);
  --font-display:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Mulish',system-ui,-apple-system,'Segoe UI',sans-serif;
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-extra:800;
  --text-xs:0.75rem; --text-sm:0.875rem; --text-base:1rem; --text-md:1.125rem;
  --text-lg:1.375rem; --text-xl:1.75rem; --text-2xl:2.25rem; --text-3xl:3rem;
  --text-4xl:3.75rem; --text-5xl:4.75rem;
  --leading-tight:1.08; --leading-snug:1.25; --leading-normal:1.5; --leading-relaxed:1.7;
  --tracking-tight:-0.02em; --tracking-normal:0; --tracking-wide:0.08em; --tracking-wider:0.18em;
  --space-0:0; --space-1:0.25rem; --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem;
  --space-5:1.5rem; --space-6:2rem; --space-7:3rem; --space-8:4rem; --space-9:6rem;
  --container:1200px; --container-narrow:760px; --gutter:1.5rem; --section-y:5rem;
  --radius-xs:6px; --radius-sm:10px; --radius-md:14px; --radius-lg:20px;
  --radius-xl:28px; --radius-pill:999px;
  --shadow-xs:0 1px 2px rgba(17,48,63,0.06); --shadow-sm:0 2px 6px rgba(17,48,63,0.07);
  --shadow-md:0 8px 20px rgba(17,48,63,0.09); --shadow-lg:0 18px 40px rgba(17,48,63,0.12);
  --shadow-primary:0 10px 24px rgba(26,159,217,0.30);
  --shadow-accent:0 10px 24px rgba(63,174,110,0.28);
  --ease-out:cubic-bezier(0.22,1,0.36,1); --ease-in-out:cubic-bezier(0.65,0,0.35,1);
  --dur-fast:120ms; --dur-base:200ms; --dur-slow:360ms;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--text-heading);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin:0 0 0.4em;font-weight:var(--fw-extra)}
h1{font-size:var(--text-3xl)} h2{font-size:var(--text-2xl)} h3{font-size:var(--text-xl)}
h4{font-size:var(--text-lg);font-weight:var(--fw-bold)}
p{margin:0 0 1em;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none} a:hover{text-decoration:underline}
img,video{max-width:100%}
section[id]{scroll-margin-top:72px}
.tbs-eyebrow{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-sm);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-primary)}
.tbs-cta-band{background:var(--color-primary)}
.tbs-reviews-track{scrollbar-width:none;-ms-overflow-style:none}
.tbs-reviews-track::-webkit-scrollbar{display:none}

/* Buttons (was the JS-driven React Button component) */
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;line-height:1;letter-spacing:0.01em;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;text-decoration:none;border:2px solid transparent;transition:transform var(--dur-fast) var(--ease-out),filter var(--dur-fast) var(--ease-out)}
.btn:hover{filter:brightness(0.94);text-decoration:none}
.btn:active{transform:scale(0.97)}
.btn-sm{height:36px;padding:8px 16px;font-size:14px;gap:6px}
.btn-md{height:44px;padding:11px 22px;font-size:15px;gap:8px}
.btn-lg{height:54px;padding:15px 30px;font-size:17px;gap:10px}
.btn-primary{background:var(--color-primary);color:var(--text-on-primary);box-shadow:var(--shadow-primary)}
.btn-accent{background:var(--color-accent);color:var(--text-on-accent);box-shadow:var(--shadow-accent)}
.btn-secondary{background:var(--white);color:var(--color-primary);border-color:var(--blue-200);box-shadow:var(--shadow-xs)}
.btn-block{display:flex;width:100%}

/* Form fields (was the JS-driven React Input component) */
.tbs-field{width:100%;height:46px;padding:0 16px;font-family:var(--font-body);font-size:15px;color:var(--text-body);background:var(--white);border:2px solid var(--border-strong);border-radius:var(--radius-md);outline:none;box-sizing:border-box;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.tbs-field:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--focus-ring)}
textarea.tbs-field{height:auto;padding:12px 16px;resize:vertical}
.tbs-field-icon{padding-left:42px}
.tbs-label{font-family:var(--font-body);font-weight:700;font-size:13.5px;color:var(--text-heading);display:block}

/* "How many cans" selector (native radios, was JS state) */
.can-opt{position:relative;display:block;padding:12px 8px;border-radius:var(--radius-md);border:2px solid var(--border);background:#fff;text-align:center;font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--text-heading);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}
.can-opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.can-opt:has(input:checked){border-color:var(--color-primary);background:var(--blue-100)}

/* Header nav */
.tbs-navlinks a{font-family:var(--font-body);font-weight:600;font-size:15px;color:var(--text-body);text-decoration:none}
.tbs-footlinks a{font-size:14px;color:var(--ink-300);text-decoration:none}

/* zcal embed: let the script size its own iframe; align top to the heading on desktop */
@media(min-width:881px){.tbs-zcal-pullup{margin-top:-96px}}
footer{position:relative;z-index:1}

@media(max-width:880px){
  .tbs-hero-grid,.tbs-book-grid{grid-template-columns:1fr !important}
  .tbs-3col{grid-template-columns:1fr !important}
  .tbs-ba-grid{grid-template-columns:1fr 1fr !important}
  .tbs-area-grid{grid-template-columns:1fr !important}
  .tbs-reels{grid-template-columns:1fr 1fr !important}
  .tbs-foot-grid{grid-template-columns:1fr 1fr !important}
  .tbs-navlinks{display:none !important}
}
