/* TaxFreeResidency.com — Brand tokens
   Drop-in :root variables + minimal reset for theme implementation.
   Containment rule: green tokens ONLY for the palm icon. Never elsewhere. */

:root {
  /* Brand · sister-site palette */
  --navy-deep: #030840;   /* primary text, headings, dark sections, header bg */
  --navy:      #07284B;   /* secondary backgrounds, hover, body alt */
  --blue:      #00BEFA;   /* accents, CTAs, links, signature highlights */
  --gold:      #DDC182;   /* premium buttons, badges, key callouts */
  --gold-dark: #7B5621;   /* gold hover state */
  --light-bg:  #F4F6F9;   /* alternating section backgrounds */
  --body:      #3a3a3a;   /* long-form reading */
  --line:      #e5e5e5;   /* dividers, card borders */
  --white:     #ffffff;

  /* Icon-locked palette · palm tree ONLY · do not use elsewhere */
  --palm-forest:    #1B6B3A;
  --palm-leaf:      #20B050;
  --palm-deep-leaf: #208060;
  --palm-trunk:     #402010;
  --palm-date:      #A05040;

  /* Typography */
  --font:  "Work Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:  "JetBrains Mono", ui-monospace, Menlo, monospace;

  /* Type scale */
  --h1-size: 56px;  --h1-weight: 700;
  --h2-size: 36px;  --h2-weight: 600;
  --h3-size: 24px;  --h3-weight: 600;
  --body-size: 17px;
  --body-line: 1.7;
  --caps-size: 13px;
  --mono-size: 11px;

  /* Spacing */
  --pad-mobile: 24px;
  --pad-desktop-x: 64px;
  --pad-section-y: 80px;

  /* Radius */
  --radius-sm: 4px;   /* inputs / buttons */
  --radius-md: 6px;   /* cards */
  --radius-lg: 8px;   /* hero photo */

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(3,8,64,0.06);
  --shadow-md: 0 4px 14px rgba(3,8,64,0.08);
  --shadow-lg: 0 16px 40px rgba(3,8,64,0.10);

  /* Transitions */
  --t-fast: 0.15s ease;
  --t-default: 0.2s ease;
}

/* Minimal base reset */
*, *::before, *::after { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  font-family: var(--font);
  color: var(--body);
  background: var(--white);
  font-size: var(--body-size);
  line-height: var(--body-line);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img, svg { display: block; max-width: 100%; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--navy-deep); }

/* Headings */
h1, h2, h3, h4 {
  color: var(--navy-deep);
  margin: 0;
  letter-spacing: -0.01em;
}
h1 { font-size: var(--h1-size); font-weight: var(--h1-weight); letter-spacing: -0.02em; line-height: 1.05; }
h2 { font-size: var(--h2-size); font-weight: var(--h2-weight); }
h3 { font-size: var(--h3-size); font-weight: var(--h3-weight); }

/* Buttons */
.btn { display: inline-block; font-family: inherit; cursor: pointer; border: 0;
       border-radius: var(--radius-sm); font-weight: 700; letter-spacing: 0.02em;
       padding: 12px 22px; font-size: 14px; transition: opacity var(--t-default); }
.btn:hover { opacity: 0.9; }
.btn--lg { padding: 16px 28px; font-size: 15px; }
.btn--primary  { background: var(--blue);  color: var(--white); }
.btn--secondary{ background: transparent; color: var(--navy-deep); border: 1px solid var(--navy-deep); padding: 11px 21px; }
.btn--secondary.btn--lg { padding: 15px 27px; }
.btn--premium  { background: var(--gold);  color: var(--navy-deep); letter-spacing: 0.04em; }
.btn--premium:hover { background: var(--gold-dark); color: var(--white); }

/* Small caps + mono helpers */
.caps  { font-size: var(--caps-size); font-weight: 500;
         letter-spacing: 0.05em; text-transform: uppercase; color: var(--blue); }
.mono  { font-family: var(--mono); font-size: var(--mono-size); font-weight: 500;
         letter-spacing: 0.15em; text-transform: uppercase; color: var(--body); }

/* Section helpers */
.section      { padding: var(--pad-section-y) var(--pad-desktop-x); }
.section--alt { background: var(--light-bg); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }

/* Mobile */
@media (max-width: 640px) {
  :root {
    --h1-size: 32px;
    --h2-size: 26px;
    --h3-size: 20px;
    --body-size: 15px;
  }
  .section { padding: 40px var(--pad-mobile); }
}
