:root{
/* Brand — sampled from the New Odontologia logo */
--navy-950:#071A33;--navy-900:#0B2547;--navy-800:#00305A;--navy-700:#003C6E;--navy-600:#13508A;
--blue-500:#1F6FB8;--blue-400:#3D8FD6;
--cyan-600:#0096D1;--cyan-500:#01AEF0;--cyan-400:#38C2F4;--cyan-200:#A9E2FA;--cyan-100:#DDF3FD;--cyan-50:#F0FAFE;
/* Neutrals — cool, slightly blue */
--ink-900:#0E2238;--ink-700:#2B3E55;--ink-500:#5A6B80;--ink-400:#8494A7;--ink-300:#B5C1CE;
--line-200:#DCE4EC;--line-100:#E9EFF5;--mist-50:#F4F7FA;--white:#FFFFFF;
/* Oak — warm wood tones to balance the cool palette */
--oak-50:#F8F1E7;--oak-100:#EFE1CC;--oak-200:#E2C9A4;--oak-300:#D2AE7E;--oak-400:#BE925E;--oak-500:#A67745;--oak-600:#875D33;--oak-700:#6A4726;--oak-800:#4E341C;
--grad-oak:linear-gradient(135deg,#E2C9A4 0%,#C9A06C 55%,#A67745 100%); /* @kind color */
/* Oak wood grain (procedural, horizontal veins). Use as background-image. */
--texture-oak:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='600'%3E%3Cfilter id='g' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0025 0.11' numOctaves='5' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0.42 0 0 0 0 0.27 0 0 0 0 0.13 0 0 0 1.6 -0.55'/%3E%3C/filter%3E%3Cfilter id='f' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.01 0.6' numOctaves='2' seed='10'/%3E%3CfeColorMatrix values='0 0 0 0 0.42 0 0 0 0 0.27 0 0 0 0 0.13 0 0 0 1 -0.45'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' fill='%23D4B386'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.75'/%3E%3Crect width='100%25' height='100%25' filter='url(%23f)' opacity='0.375'/%3E%3C/svg%3E"); /* @kind other */
--texture-oak-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='600'%3E%3Cfilter id='g' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0025 0.11' numOctaves='5' seed='11'/%3E%3CfeColorMatrix values='0 0 0 0 0.66 0 0 0 0 0.5 0 0 0 0 0.32 0 0 0 1.6 -0.55'/%3E%3C/filter%3E%3Cfilter id='f' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.01 0.6' numOctaves='2' seed='14'/%3E%3CfeColorMatrix values='0 0 0 0 0.66 0 0 0 0 0.5 0 0 0 0 0.32 0 0 0 1 -0.45'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' fill='%23F6EEE2'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.35'/%3E%3Crect width='100%25' height='100%25' filter='url(%23f)' opacity='0.175'/%3E%3C/svg%3E"); /* @kind other */
/* Semantic */
--whatsapp-500:#25D366;--whatsapp-600:#1DA851;--whatsapp-700:#168A43;
--success-600:#1E8E62;--success-100:#DDF3EA;--warning-600:#C98512;--warning-100:#FBEFD7;--danger-600:#C73D36;--danger-100:#FBE3E1;
/* Gradients */
--grad-deep:linear-gradient(90deg,#0B1E40 0%,#1F5FA8 50%,#0B1E40 100%); /* @kind color */

--grad-ocean:linear-gradient(160deg,#003C6E 0%,#1F6FB8 100%); /* @kind color */

--grad-sky:linear-gradient(180deg,#FFFFFF 0%,#EAF6FD 100%); /* @kind color */

--grad-silver:linear-gradient(180deg,#F4F6F8 0%,#C4CAD1 45%,#EEF1F4 55%,#9AA3AD 100%); /* @kind color */

--scrim-bottom:linear-gradient(180deg,rgba(7,26,51,0) 40%,rgba(7,26,51,.85) 100%); /* @kind color */


/* Semantic aliases */
--brand-primary:var(--navy-700);--brand-accent:var(--cyan-500);
--text-strong:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-500);--text-subtle:var(--ink-400);
--text-on-dark:var(--white);--text-on-dark-muted:#BFD3E6;--text-brand:var(--navy-700);--text-accent:var(--cyan-600);
--surface-page:var(--white);--surface-soft:var(--mist-50);--surface-tint:var(--cyan-50);--surface-card:var(--white);
--surface-dark:var(--navy-700);--surface-deep:var(--navy-950);
--surface-warm:var(--oak-50);--surface-wood:var(--oak-200);--text-wood:var(--oak-700);
--surface-glass:rgba(255,255,255,.62);--surface-glass-dark:rgba(7,26,51,.45);
--border-subtle:var(--line-100);--border-default:var(--line-200);--border-strong:var(--ink-300);--border-focus:var(--cyan-500);
--action-primary:var(--navy-700);--action-primary-hover:var(--navy-800);--action-primary-press:var(--navy-900);
--action-cta:var(--whatsapp-600);--action-cta-hover:var(--whatsapp-700);
--action-accent:var(--cyan-500);--action-accent-hover:var(--cyan-600);
}
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;
--container-max:1200px;--container-pad:24px;--section-y:96px;
--control-h-s:40px;--control-h-m:48px;--control-h-l:56px;
}
:root{
--radius-xs:6px;--radius-s:10px;--radius-m:16px;--radius-l:24px;--radius-xl:32px;--radius-pill:999px;
--shadow-xs:0 1px 2px rgba(0,60,110,.06);
--shadow-s:0 4px 12px rgba(0,60,110,.08);
--shadow-m:0 12px 32px rgba(0,60,110,.10);
--shadow-l:0 24px 60px rgba(0,48,90,.16);
--shadow-glow:0 10px 28px rgba(1,174,240,.32);
--shadow-cta:0 10px 28px rgba(29,168,81,.32);
--shadow-inset-soft:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -1px 0 rgba(0,60,110,.05);
--blur-glass:blur(16px) saturate(140%); /* @kind other */
--focus-ring:0 0 0 3px rgba(1,174,240,.35); /* @kind shadow */
--ease-out:cubic-bezier(.22,.8,.32,1); /* @kind other */
--ease-in-out:cubic-bezier(.65,0,.35,1); /* @kind other */
--dur-fast:140ms; /* @kind other */
--dur-base:220ms; /* @kind other */
--dur-slow:420ms; /* @kind other */
}
:root{
--font-display:'Montserrat',system-ui,sans-serif;
--font-body:'Manrope',system-ui,sans-serif;
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */
--fw-black:800; /* @kind font */
--fs-display-xl:72px;--fs-display-l:56px;--fs-h1:44px;--fs-h2:34px;--fs-h3:26px;--fs-h4:20px;
--fs-body-l:18px;--fs-body:16px;--fs-body-s:14px;--fs-caption:12px;--fs-overline:12px;
--lh-tight:1.04; /* @kind font */
--lh-heading:1.15; /* @kind font */
--lh-body:1.6; /* @kind font */
--lh-snug:1.35; /* @kind font */
--ls-display:-0.025em; /* @kind font */
--ls-heading:-0.015em; /* @kind font */
--ls-body:0; /* @kind font */
--ls-overline:0.18em; /* @kind font */
--type-display:var(--fw-bold) var(--fs-display-l)/var(--lh-tight) var(--font-display); /* @kind font */
--type-h1:var(--fw-bold) var(--fs-h1)/var(--lh-heading) var(--font-display); /* @kind font */
--type-h2:var(--fw-bold) var(--fs-h2)/var(--lh-heading) var(--font-display); /* @kind font */
--type-h3:var(--fw-semibold) var(--fs-h3)/var(--lh-heading) var(--font-display); /* @kind font */
--type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-body); /* @kind font */
--type-body-l:var(--fw-regular) var(--fs-body-l)/var(--lh-body) var(--font-body); /* @kind font */
--type-caption:var(--fw-medium) var(--fs-caption)/var(--lh-snug) var(--font-body); /* @kind font */
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font:var(--type-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);letter-spacing:var(--ls-heading);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:var(--navy-700);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--cyan-600)}
::selection{background:var(--cyan-200);color:var(--navy-900)}
