/* Unique prefix: cw- */
:root {
    --color-primary: hsl(265, 60%, 30%); /* Deep Mystic Blue/Purple */
    --color-primary-dark: hsl(265, 60%, 20%);
    --color-primary-light: hsl(265, 60%, 45%);
    --color-secondary: hsl(230, 40%, 35%);
    --color-accent: hsl(45, 90%, 65%); /* Soft gold */
    --color-neutral-50: hsl(260, 20%, 98%);
    --color-neutral-100: hsl(260, 20%, 95%);
    --color-neutral-200: hsl(260, 20%, 90%);
    --color-neutral-700: hsl(260, 20%, 30%);
    --color-neutral-800: hsl(260, 20%, 20%);
    --color-neutral-900: hsl(260, 20%, 10%);
    
    --color-bg: var(--color-neutral-50);
    --color-text: var(--color-neutral-800);
    --color-text-muted: var(--color-neutral-700);
    
    --font-heading: 'Merriweather', serif;
    --font-body: 'Roboto', sans-serif;
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
    font-family: var(--font-body);
    color: var(--color-text);
    background-color: var(--color-bg);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--color-primary); text-decoration: none; transition: color 0.3s ease; }
a:hover { color: var(--color-primary-dark); }
ul { list-style: none; }

/* Utilities */
.cw-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.cw-skip-link { position: absolute; top: -40px; left: 0; background: var(--color-primary); color: white; padding: 8px; z-index: 100; transition: top 0.2s; }
.cw-skip-link:focus { top: 0; }
.cw-text-center { text-align: center; }

/* Typography */
h1, h2, h3, h4 { font-family: var(--font-heading); color: var(--color-primary-dark); line-height: 1.2; margin-bottom: 1rem; }
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; margin-top: 2rem; }
h3 { font-size: 1.5rem; }
p { margin-bottom: 1rem; }

/* Header & Nav */
.cw-header { background: white; box-shadow: 0 2px 10px rgba(0,0,0,0.05); position: sticky; top: 0; z-index: 50; }
.cw-header-inner { display: flex; justify-content: space-between; align-items: center; height: 70px; padding: 0 1.5rem; max-width: 1200px; margin: 0 auto; }
.cw-logo { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; color: var(--color-primary); }
.cw-nav-checkbox { display: none; }
.cw-hamburger { display: none; flex-direction: column; cursor: pointer; gap: 5px; }
.cw-hamburger span { display: block; width: 25px; height: 3px; background: var(--color-primary); transition: 0.3s; }
.cw-nav ul { display: flex; gap: 2rem; }
.cw-nav a { font-weight: 500; color: var(--color-text); }
.cw-nav a:hover, .cw-nav a.active { color: var(--color-primary); }

@media (max-width: 768px) {
    .cw-hamburger { display: flex; }
    .cw-nav { position: absolute; top: 70px; left: 0; right: 0; background: white; box-shadow: 0 10px 10px rgba(0,0,0,0.05); transform: translateY(-150%); opacity: 0; transition: all 0.3s ease; }
    .cw-nav ul { flex-direction: column; gap: 0; padding: 1rem; text-align: center; }
    .cw-nav ul li { margin-bottom: 1rem; }
    .cw-nav-checkbox:checked ~ .cw-header-inner .cw-nav { transform: translateY(0); opacity: 1; }
}

/* Hero Section (Centered) */
.cw-masthead {
    background: linear-gradient(rgba(36, 17, 74, 0.8), rgba(36, 17, 74, 0.8)), url('../images/hero.jpg') center/cover;
    color: white;
    padding: 6rem 1.5rem;
    text-align: center;
}
.cw-masthead h1 { color: white; margin-bottom: 1.5rem; font-size: 3rem; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.cw-masthead p { font-size: 1.25rem; max-width: 700px; margin: 0 auto 2rem; opacity: 0.9; }
.cw-btn { display: inline-block; padding: 0.75rem 2rem; background: var(--color-accent); color: var(--color-neutral-900); font-weight: 600; border-radius: 4px; transition: background 0.3s, transform 0.2s; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
.cw-btn:hover { background: hsl(45, 90%, 55%); color: var(--color-neutral-900); transform: translateY(-2px); }
.cw-btn-outline { background: transparent; border: 2px solid white; color: white; margin-left: 1rem; box-shadow: none; }
.cw-btn-outline:hover { background: rgba(255,255,255,0.1); color: white; }

/* Features / Shadow Cards */
.cw-features { padding: 5rem 0; background: var(--color-bg); }
.cw-features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; }
.cw-card { background: white; border-radius: 8px; overflow: hidden; box-shadow: 0 10px 20px rgba(0,0,0,0.05); transition: transform 0.3s; }
.cw-card:hover { transform: translateY(-5px); }
.cw-card img { width: 100%; height: 225px; object-fit: cover; }
.cw-card-body { padding: 1.5rem; }
.cw-card h3 { font-size: 1.25rem; margin-bottom: 0.5rem; }
.cw-card p { font-size: 0.95rem; color: var(--color-text-muted); }

/* About Preview */
.cw-about-preview { padding: 5rem 0; background: var(--color-neutral-100); }
.cw-split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
@media (max-width: 768px) { .cw-split { grid-template-columns: 1fr; } }
.cw-split img { border-radius: 8px; box-shadow: 0 15px 30px rgba(0,0,0,0.1); }

/* Testimonials */
.cw-testimonials { padding: 5rem 0; background: var(--color-primary); color: white; text-align: center; }
.cw-testimonials h2 { color: white; }
.cw-testi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; }
.cw-testi-card { background: rgba(255,255,255,0.1); padding: 2rem; border-radius: 8px; backdrop-filter: blur(5px); }
.cw-testi-quote { font-style: italic; margin-bottom: 1.5rem; font-size: 1.1rem; }
.cw-testi-author { font-weight: 600; color: var(--color-accent); }

/* FAQ */
.cw-faq { padding: 5rem 0; max-width: 800px; margin: 0 auto; }
.cw-faq-item { background: white; margin-bottom: 1rem; padding: 1.5rem; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
.cw-faq-item h3 { font-size: 1.2rem; margin-bottom: 0.5rem; color: var(--color-primary); }

/* Footer */
.cw-footer { background: var(--color-neutral-900); color: var(--color-neutral-200); padding: 4rem 0 2rem; }
.cw-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-bottom: 3rem; }
.cw-footer h4 { color: white; margin-bottom: 1.5rem; font-family: var(--font-body); font-size: 1.2rem; }
.cw-footer ul li { margin-bottom: 0.5rem; }
.cw-footer a { color: var(--color-neutral-200); }
.cw-footer a:hover { color: var(--color-accent); }
.cw-footer-bottom { text-align: center; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.1); font-size: 0.9rem; }

/* Cookie Banner */
.cw-cookie-checkbox { display: none; }
.cw-cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; background: var(--color-neutral-800); color: white; padding: 1rem; display: flex; justify-content: center; align-items: center; gap: 2rem; z-index: 100; box-shadow: 0 -2px 10px rgba(0,0,0,0.1); }
.cw-cookie-banner p { margin: 0; font-size: 0.9rem; }
.cw-cookie-banner a { color: var(--color-accent); text-decoration: underline; }
.cw-cookie-btn { background: var(--color-accent); color: var(--color-neutral-900); padding: 0.5rem 1.5rem; border-radius: 4px; font-weight: 600; cursor: pointer; }
.cw-cookie-checkbox:checked ~ .cw-cookie-banner { display: none; }
@media (max-width: 600px) { .cw-cookie-banner { flex-direction: column; text-align: center; gap: 1rem; } }

/* Inner Pages General */
.cw-page-header { background: var(--color-primary); padding: 4rem 1.5rem; text-align: center; color: white; }
.cw-page-header h1 { color: white; margin-bottom: 0; }
.cw-content-section { padding: 4rem 0; }
.cw-document { max-width: 800px; margin: 0 auto; background: white; padding: 3rem; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
.cw-document h2 { margin-top: 2rem; }
.cw-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; max-width: 900px; margin: 0 auto; }
.cw-contact-info { background: white; padding: 2rem; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
.cw-contact-info h3 { color: var(--color-primary); margin-bottom: 1rem; }
.cw-contact-info p { margin-bottom: 1.5rem; }
@media (max-width: 768px) { .cw-contact-grid { grid-template-columns: 1fr; } }
