:root {
--plum: #5b2540;
--plum-deep: #3f1a2d;
--blush: #e8c9cf;
--blush-soft: #f7ecee;
--ivory: #fdfbf8;
--ink: #33272d;
--ink-soft: #6b5a63;
--line: #e3d5d9;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Georgia, "Times New Roman", serif; color: var(--ink); background: var(--ivory); line-height: 1.7; }
img { max-width: 100%; height: auto; }
.wrap { max-width: 62rem; margin-inline: auto; padding-inline: 1.2rem; }
a { color: var(--plum); }
.site-head { background: #fff; border-bottom: 1px solid var(--line); }
.head-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .7rem; flex-wrap: wrap; }
.brand img { display: block; width: 180px; height: auto; }
.site-nav { display: flex; gap: 1.2rem; flex-wrap: wrap; font-family: system-ui, sans-serif; font-size: .95rem; }
.site-nav a { color: var(--ink); text-decoration: none; padding: .3rem 0; border-bottom: 2px solid transparent; }
.site-nav a:hover { border-bottom-color: var(--blush); }
.nav-toggle { display: none; font: inherit; font-family: system-ui, sans-serif; background: none; border: 1px solid var(--line); border-radius: 6px; padding: .4rem .9rem; }
@media (max-width: 700px) {
.nav-toggle { display: block; }
.site-nav { display: none; width: 100%; flex-direction: column; gap: .2rem; padding-block: .5rem; }
.site-nav.open { display: flex; }
}
.hero { background: linear-gradient(160deg, var(--plum) 0%, var(--plum-deep) 100%); color: #fff; padding: 2.6rem 0; position: relative; overflow: hidden; }
.hero h1 { margin: 0 0 .3rem; font-size: clamp(1.7rem, 4vw, 2.6rem); font-weight: 500; letter-spacing: .01em; }
.hero p { margin: 0; color: var(--blush); font-size: 1.1rem; }
.hero-img { padding: 0; }
.hero-img > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .45; }
.hero-img .hero-text { position: relative; padding: 5.5rem 0; text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.prose { padding-block: 2.2rem 3rem; max-width: 46rem; }
.prose h2 { color: var(--plum); font-weight: 500; margin: 1.6em 0 .5em; font-size: clamp(1.25rem, 2.6vw, 1.6rem); }
.prose h3 { color: var(--plum-deep); font-weight: 500; margin: 1.4em 0 .4em; }
.prose p { margin: 0 0 1em; color: var(--ink-soft); }
.prose ul { color: var(--ink-soft); padding-left: 1.3rem; }
.prose .inline-img { border-radius: 10px; margin: 0 0 1.4rem; }
.teaser { border: 1px solid var(--line); border-radius: 10px; padding: 1.1rem 1.3rem; margin: 0 0 1.1rem; background: #fff; }
.teaser h2 { margin: 0 0 .4em; }
.cta { margin-top: 2rem; }
.btn { display: inline-block; background: var(--plum); color: #fff; text-decoration: none; padding: .75rem 1.5rem; border-radius: 999px; font-family: system-ui, sans-serif; }
.btn:hover { background: var(--plum-deep); }
.enquiry { display: grid; gap: 1rem; max-width: 34rem; font-family: system-ui, sans-serif; }
.enquiry label { display: grid; gap: .3rem; font-size: .95rem; color: var(--ink); }
.enquiry input, .enquiry textarea { font: inherit; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.enquiry button { font: inherit; background: var(--plum); color: #fff; border: 0; border-radius: 999px; padding: .8rem 1.6rem; cursor: pointer; justify-self: start; }
.enquiry button:hover { background: var(--plum-deep); }
.enquiry .hp { position: absolute; left: -9999px; }
.enquiry [data-lead-success] { color: #2e6b3f; }
.enquiry [data-lead-error] { color: #a33; }
.site-foot { background: var(--plum-deep); color: var(--blush-soft); padding: 1.4rem 0; font-family: system-ui, sans-serif; font-size: .92rem; }
.site-foot a { color: var(--blush); }
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}