/* Emma Furner — site styles (generated) */
/* Emma Furner Design System — generated from tokens.json */
:root, [data-theme="light"] {
  --ef-paper: #fffcfa;
  --ef-cream: #fbf5eb;
  --ef-cream-warm: #fff3eb;
  --ef-sand-light: #f2ddbc;
  --ef-sand: #dfc8a3;
  --ef-gold: #cca86e;
  --ef-blush-light: #f2cfbb;
  --ef-blush: #e8aa88;
  --ef-terracotta: #c7832a;
  --ef-bronze: #986520;
  --ef-ink: #221e1f;
  --ef-taupe: #8a7d6f;
  --ef-hairline: #ebe0cf;
  --color-bg: var(--ef-cream);
  --color-bg-alt: var(--ef-cream-warm);
  --surface-card: var(--ef-paper);
  --surface-sunk: var(--ef-sand-light);
  --surface-inverse: var(--ef-ink);
  --text-body: var(--ef-ink);
  --text-muted: var(--ef-taupe);
  --text-on-primary: var(--ef-paper);
  --text-on-dark: var(--ef-cream);
  --color-primary: var(--ef-terracotta);
  --color-primary-deep: var(--ef-bronze);
  --color-accent: var(--ef-blush);
  --color-accent-soft: var(--ef-blush-light);
  --border-hairline: var(--ef-hairline);
  --border-strong: var(--ef-sand);
  --shadow-xs: 0 1px 2px rgba(34, 30, 31, 0.05);
  --shadow-sm: 0 2px 8px rgba(152, 101, 32, 0.06);
  --shadow-md: 0 10px 30px rgba(152, 101, 32, 0.10);
  --shadow-lg: 0 24px 60px rgba(152, 101, 32, 0.14);
}
:root {
  --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;
  --space-10: 8rem;
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-xl: 32px;
  --radius-pill: 999px;
  --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: 4rem;
  --text-hero: 5.5rem;
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --leading-tight: 1.1;
  --leading-snug: 1.25;
  --leading-normal: 1.55;
  --leading-relaxed: 1.7;
  --tracking-tight: -0.01em;
  --tracking-normal: 0;
  --tracking-wide: 0.14em;
  --tracking-wider: 0.24em;
  --container-max: 1200px;
  --container-text: 680px;
  --font-script: 'Sacramento', 'Segoe Script', cursive;
  --font-display: 'Cormorant Garamond', 'Georgia', serif;
  --font-body: 'Mulish', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
.heading-1 { font-family: var(--font-display); font-size: 3rem; line-height: 1.1; letter-spacing: -0.01em; font-weight: 400; }
.heading-2 { font-family: var(--font-display); font-size: 2.25rem; line-height: 1.1; letter-spacing: -0.01em; font-weight: 400; }
.heading-3 { font-family: var(--font-display); font-size: 1.75rem; line-height: 1.1; letter-spacing: -0.01em; font-weight: 400; }
.heading-4 { font-family: var(--font-display); font-size: 1.375rem; line-height: 1.1; letter-spacing: -0.01em; font-weight: 400; }
.body { font-family: var(--font-body); font-size: 1rem; line-height: 1.55; font-weight: 400; }
.eyebrow { font-family: var(--font-body); font-size: 0.875rem; letter-spacing: 0.14em; font-weight: 600; }
.script-accent { font-family: var(--font-script); font-size: 76px; line-height: 1; font-weight: 400; }

/* Emma Furner Design System — component stylesheet.
   Loaded after tokens.css. Colour, type, spacing, radius and shadow values live in tokens.json;
   this file keeps the webfonts, the values tokens.json cannot hold, and the base element styles. */


:root {
  /* Semantic font roles */
  --font-eyebrow: var(--font-body);
  --font-heading: var(--font-display);
  --font-quote:   var(--font-display);

  /* Layout */
  --gutter:          var(--space-5);
  --section-y:       var(--space-10);

  /* Focus ring */
  --focus-ring:          color-mix(in srgb, var(--ef-terracotta) 55%, transparent);

  /* Organic sun/hill shape */
  --radius-blob: 48% 52% 55% 45% / 55% 45% 55% 45%;

  /* Borders */
  --border-thin: 1px solid var(--border-hairline);
  --border-med:  1.5px solid var(--border-strong);

  --shadow-focus: 0 0 0 3px var(--focus-ring);

  /* Motion — calm, grounded easing; no bounce */
  --ease-calm:  cubic-bezier(0.33, 0, 0.2, 1);
  --ease-soft:  cubic-bezier(0.4, 0, 0.2, 1);
  --dur-fast:   140ms;
  --dur-base:   240ms;
  --dur-slow:   420ms;
  --transition-base: all var(--dur-base) var(--ease-calm);
}

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--text-body);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--font-heading);
  font-weight: var(--weight-regular);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text-body);
  margin: 0 0 var(--space-4);
  text-wrap: balance;
}
h1 { font-size: var(--text-3xl); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }
h4 { font-size: var(--text-lg); }

p { margin: 0 0 var(--space-4); text-wrap: pretty; }

a {
  color: var(--color-primary-deep);
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary-deep) 35%, transparent);
  transition: color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);
}
a:hover { color: var(--color-primary); border-color: var(--color-primary); }

::selection { background: var(--ef-blush-light); color: var(--ef-ink); }

:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-sm); }

/* ---- Brand utilities ---- */
.ef-eyebrow {
  font-family: var(--font-eyebrow);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--color-primary-deep);
}
.ef-script {
  font-family: var(--font-script);
  font-weight: var(--weight-regular);
  line-height: 1;
  color: var(--color-primary);
}
.ef-display { font-family: var(--font-display); }
.ef-container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--gutter); }
.ef-measure { max-width: var(--container-text); }


html{scroll-behavior:smooth}
body{background:var(--color-bg)}
img{max-width:100%}

.ef-page{min-height:50vh;width:100%;background:var(--color-bg);color:var(--text-body);font-family:var(--font-body);overflow:hidden;display:block}
.ef-header{width:100%;border-bottom:1px solid var(--border-hairline);background:var(--color-bg);position:sticky;top:0;z-index:20}
.ef-header-in{max-width:1240px;margin:0 auto;padding:14px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 28px}
.ef-logo{border-bottom:none;display:flex;align-items:center}
.ef-logo img{height:48px;width:auto;display:block}
.ef-nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;font-size:14.5px;font-weight:500}
.ef-nav-link{color:var(--text-body);padding:10px 0;border-bottom:1.5px solid transparent}
.ef-nav-link:hover{color:var(--color-primary-deep);border-bottom-color:var(--border-strong)}
.ef-nav-link.is-current{border-bottom-color:var(--color-primary)}
.ef-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;font-family:var(--font-body);font-weight:600;letter-spacing:.02em;line-height:1;cursor:pointer;border-radius:var(--radius-pill);text-decoration:none;transition:var(--transition-base);border:1.5px solid transparent}
.ef-btn--sm{padding:8px 18px;font-size:.8125rem}
.ef-btn--md{padding:12px 28px;font-size:.9375rem}
.ef-btn--lg{padding:16px 38px;font-size:1.0625rem}
.ef-btn--primary{background:var(--color-primary);color:var(--text-on-primary)}
.ef-btn--primary:hover{background:var(--color-primary-deep);color:var(--text-on-primary);transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:transparent}
.ef-btn--secondary{background:transparent;color:var(--text-body);border-color:var(--text-body)}
.ef-btn--secondary:hover{background:var(--ef-ink);color:var(--ef-cream);border-color:var(--ef-ink)}
.ef-btn--ghost{background:transparent;color:var(--color-primary-deep)}
.ef-btn--ghost:hover{color:var(--color-primary);background:color-mix(in srgb,var(--ef-blush-light) 45%,transparent);border-color:transparent}
.ef-btn--light{background:var(--ef-cream);color:var(--ef-ink)}
.ef-btn--light:hover{color:var(--ef-ink);transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:transparent}
.ef-card{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:var(--transition-base);padding:var(--space-6);box-sizing:border-box}
.ef-card--int:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.ef-eyebrow-c{display:inline-flex;align-items:center;gap:.75em;font-family:var(--font-body);font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary-deep)}
.ef-eyebrow-rule{width:28px;height:1.5px;background:currentColor;opacity:.5;display:inline-block}
.ef-tag{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border-radius:var(--radius-pill)}
.ef-tag--sand{background:var(--ef-sand-light);color:var(--color-primary-deep)}
.ef-tag--blush{background:var(--ef-blush-light);color:var(--color-primary-deep)}
.ef-tag--terracotta{background:var(--color-primary);color:var(--text-on-primary)}
.ef-tag--outline{background:transparent;color:var(--text-body);box-shadow:inset 0 0 0 1px var(--border-strong)}
.ef-quote{margin:0}
.ef-quote blockquote{margin:0;font-family:var(--font-display);font-weight:400;font-style:italic;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.35;letter-spacing:-.01em;color:var(--text-body)}
.ef-qm{color:var(--color-primary)}
.ef-quote figcaption{margin-top:var(--space-4);font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}
.ef-field{display:block;font-family:var(--font-body)}
.ef-field-label{display:block;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}
.ef-input{width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:1rem;color:var(--text-body);background:var(--surface-card);border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);padding:13px 20px;outline:none;transition:border-color var(--dur-fast) var(--ease-soft),box-shadow var(--dur-fast) var(--ease-soft)}
.ef-input--area{border-radius:var(--radius-md);padding:14px 18px;min-height:120px;resize:vertical}
.ef-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}
.ef-field-hint{display:block;font-size:.8125rem;color:var(--text-muted);margin-top:6px}
.ef-pill{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid #DFC8A3;background:#FFFCFA;font-size:14.5px;font-weight:600;cursor:pointer}
.ef-pill input{width:16px;height:16px;margin:0;accent-color:#C7832A}
.ef-pill:has(input:checked){border-color:#C7832A;background:#FFF3EB}
.ef-form-note{display:none;margin:0;padding:14px 16px;border-radius:12px;background:#E7F0E4;font-size:14px}
@media (max-width:640px){.ef-header{position:static}}

/* Canvas edits can leave fixed px widths on text blocks; keep them inside small screens */
.ef-page p,.ef-page div{max-width:100%}
img{height:auto}
.ef-page p[style*="width"]{box-sizing:border-box}
.ef-skip{position:absolute;left:-999px;top:8px;background:var(--surface-card);padding:10px 16px;border-radius:8px;z-index:50}
.ef-skip:focus{left:8px}
.ef-form-status{display:none;margin:0;padding:14px 16px;border-radius:12px;font-size:14.5px;line-height:1.6;background:var(--ef-sand-light)}
.ef-form-status.is-on{display:block}
.ef-form-status.is-error{background:#FBE9E4;color:#7A2E1C}
.ef-hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.cf-turnstile{min-height:65px}
#enquiry-form button[disabled]{opacity:.6;cursor:wait}
/* Contrast fixes (WCAG AA) */
:root{--ef-taupe:#776A5D;--text-muted:#776A5D}
.ef-btn--primary{background:#986520}
.ef-btn--primary:hover{background:#7E5218}
/* Mobile menu */
.ef-menu-btn{display:none;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--border-strong);border-radius:999px;background:transparent;color:var(--text-body);font:600 14.5px/1 var(--font-body);cursor:pointer}
.ef-menu-icon,.ef-menu-icon::before,.ef-menu-icon::after{display:block;width:18px;height:1.5px;background:currentColor;border-radius:2px;position:relative;transition:transform .2s ease}
.ef-menu-icon::before,.ef-menu-icon::after{content:"";position:absolute;left:0}
.ef-menu-icon::before{top:-6px}.ef-menu-icon::after{top:6px}
.ef-header.is-open .ef-menu-icon{background:transparent}
.ef-header.is-open .ef-menu-icon::before{transform:translateY(6px) rotate(45deg)}
.ef-header.is-open .ef-menu-icon::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:860px){
  .ef-header-in{flex-wrap:wrap}
  .ef-logo img{height:40px}
  .ef-menu-btn{display:inline-flex}
  .ef-nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding:8px 0 12px;font-size:16px}
  .ef-header.is-open .ef-nav{display:flex}
  .ef-nav-link{padding:12px 0;border-bottom:1px solid var(--border-hairline)!important}
  .ef-nav-link.is-current{color:var(--color-primary-deep);font-weight:700}
  .ef-nav .ef-btn{margin-top:14px;min-height:48px;justify-content:center}
}
/* Phones: give cards and sections more room for text */
@media (max-width:640px){
  .ef-page [style*="padding: 112px 24px"],.ef-page [style*="padding: 104px 24px"],.ef-page [style*="padding: 96px 24px"]{padding:64px 20px!important}
  .ef-page [style*="padding: 88px 24px"]{padding:48px 20px 64px!important}
  .ef-page [style*="padding: 0 24px 112px"],.ef-page [style*="padding: 8px 24px 112px"]{padding-bottom:64px!important;padding-left:20px!important;padding-right:20px!important}
  .ef-page [style*="padding: 80px 32px"]{padding:48px 20px!important}
  .ef-page [style*="padding: 48px"],.ef-page [style*="padding: 44px"],.ef-page [style*="padding: 36px 40px"],.ef-page [style*="padding: 36px;"],.ef-page [style*="padding: clamp(32px"]{padding:24px!important}
  .ef-page .ef-card{padding:22px}
  .ef-page [style*="minmax(300px"],.ef-page [style*="minmax(320px"],.ef-page [style*="minmax(340px"]{grid-template-columns:minmax(0,1fr)!important}
  .ef-page [style*="gap: 64px"],.ef-page [style*="gap: 72px"]{gap:40px!important}
  footer nav a,footer a[href^="mailto"],footer a[href*="contact"]{padding:6px 0}
}
