@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

:root {
    --ink: #18332f;
    --forest: #205d50;
    --leaf: #3d8b70;
    --saffron: #e08a3e;
    --coral: #c85b43;
    --cream: #fbf7ef;
    --mist: #eef4ef;
    --line: #d8e2d9;
}

html { scroll-behavior: smooth; }
body {
    background: var(--cream) !important;
    color: var(--ink) !important;
    font-family: 'DM Sans', sans-serif !important;
}
h1, h2, h3, h4 { font-family: 'Fraunces', Georgia, serif !important; letter-spacing: 0 !important; }
nav {
    background: rgba(251, 247, 239, 0.96) !important;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 6px 24px rgba(24, 51, 47, 0.08) !important;
}
nav img { max-height: 58px; }
nav a { transition: color .2s ease, background-color .2s ease; }
nav a:hover, nav a.text-teal-600 { color: var(--coral) !important; }
main { background: var(--cream); }
section.bg-white, section.bg-gray-50 { background: var(--cream) !important; }
.bg-white { background-color: #fffdf8 !important; }
.bg-slate-900, footer { background-color: var(--ink) !important; }
.bg-teal-600 { background-color: var(--forest) !important; }
.bg-teal-600:hover { background-color: #17483e !important; }
.text-teal-600, .text-teal-700 { color: var(--forest) !important; }
.text-teal-400, .text-teal-500 { color: var(--saffron) !important; }
.bg-teal-50, .bg-teal-100 { background-color: var(--mist) !important; }
.text-slate-900 { color: var(--ink) !important; }
.text-gray-500, .text-gray-600, .text-gray-700 { color: #52635e !important; }
.border-teal-500 { border-color: var(--saffron) !important; }
.border-gray-100, .border-gray-200 { border-color: var(--line) !important; }
.rounded-lg, .rounded-xl, .rounded-2xl { border-radius: 14px !important; }
.shadow-md, .shadow-lg, .shadow-xl, .shadow-2xl { box-shadow: 0 14px 34px rgba(24, 51, 47, .10) !important; }
.hero-pattern { background-color: var(--cream) !important; background-image: radial-gradient(rgba(61, 139, 112, .12) 1px, transparent 1px) !important; background-size: 22px 22px !important; }
input, textarea, select { background: #fffdf8 !important; border-color: var(--line) !important; color: var(--ink) !important; }
input:focus, textarea:focus, select:focus { border-color: var(--saffron) !important; box-shadow: 0 0 0 3px rgba(224, 138, 62, .18) !important; outline: none; }
button, a { -webkit-tap-highlight-color: transparent; }
.mobile-nav summary { list-style: none; cursor: pointer; }
.mobile-nav summary::-webkit-details-marker { display: none; }
.mobile-nav[open] .menu-icon { transform: rotate(90deg); }
.menu-icon { transition: transform .2s ease; }

@media (max-width: 767px) {
    nav .h-20 { height: 72px; }
    nav img { max-height: 48px; max-width: 180px; }
    section { overflow-x: hidden; }
    .hero-copy { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
    .hero-copy h1 { font-size: 2.25rem !important; line-height: 1.15; }
    footer .grid { gap: 2.5rem; }
    h2 { font-size: 1.8rem !important; line-height: 1.3; }
    h3 { font-size: 1.4rem !important; }
    .bg-white.p-8, .bg-teal-50.p-8 { padding: 1.5rem !important; }
}
