@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap");

:root { --ink:#123d2d; --green:#1f7653; --mint:#dff3e7; --paper:#fbfaf5; --line:rgba(18,61,45,.15); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:radial-gradient(circle at 10% 0,#e7faee 0,transparent 33%),var(--paper); font-family:"DM Sans",system-ui,sans-serif; }
a { color:inherit; }
.seo-header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:1440px; margin:0 auto; padding:13px clamp(20px,4vw,58px); background:rgba(251,250,245,.82); border-bottom:1px solid var(--line); backdrop-filter:blur(3px); }
.seo-brand img { display:block; object-fit:contain; }
.seo-header nav,.seo-actions,footer { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.seo-header nav a { text-decoration:none; font-weight:700; padding:11px 16px; }
.seo-header__cta,.seo-button--primary { color:white!important; background:var(--green); border-radius:999px; }
main { width:min(1320px,calc(100% - 32px)); margin:0 auto; padding:28px 0 60px; }
.seo-breadcrumb { display:flex; gap:9px; align-items:center; overflow:hidden; white-space:nowrap; margin:0 0 18px; font-size:.88rem; color:#537064; }
.seo-breadcrumb span:last-child { overflow:hidden; text-overflow:ellipsis; }
.seo-listing { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr); overflow:hidden; min-height:590px; border:1px solid var(--line); border-radius:34px; background:rgba(255,255,255,.82); box-shadow:0 24px 70px rgba(25,70,52,.13); }
.seo-listing__visual { min-height:520px; margin:0; background:#e5ede7; }
.seo-listing__visual img { width:100%; height:100%; object-fit:cover; display:block; }
.seo-listing__content { display:flex; flex-direction:column; justify-content:center; padding:clamp(30px,5vw,74px); }
.seo-eyebrow { margin:0 0 12px; color:var(--green); font-size:.78rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(2.5rem,5vw,5rem); line-height:.98; letter-spacing:-.045em; }
h2 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(2rem,4vw,3.5rem); line-height:1; }
.seo-description { color:#4d665d; font-size:1.08rem; line-height:1.75; }
.seo-facts { display:flex; gap:8px; flex-wrap:wrap; list-style:none; padding:0; margin:24px 0 4px; }
.seo-facts li { padding:9px 13px; border:1px solid var(--line); border-radius:999px; background:var(--mint); font-size:.86rem; font-weight:700; }
.seo-button { padding:13px 18px; border:1px solid var(--line); border-radius:999px; text-decoration:none; font-weight:800; text-align:center; }
.seo-reassurance { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:24px 0 0; padding:22px 26px; border:1px solid var(--line); border-radius:24px; background:#fff; }
.seo-reassurance p { margin:0; }
.seo-reassurance a { font-weight:800; }
footer { justify-content:center; padding:24px; color:#567064; font-size:.88rem; }
footer a { text-decoration:none; }
.seo-directory-hero { max-width:850px; padding:clamp(45px,8vw,110px) 0; }
.seo-directory-hero>p:last-child { max-width:690px; color:#4d665d; font-size:1.12rem; line-height:1.7; }
.seo-directory-section { margin:0 0 68px; padding-top:36px; border-top:1px solid var(--line); }
.seo-directory-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; list-style:none; padding:0; margin:25px 0; }
.seo-directory-grid li { min-width:0; }
.seo-directory-grid a { display:block; overflow:hidden; height:100%; border:1px solid var(--line); border-radius:22px; background:white; text-decoration:none; box-shadow:0 10px 28px rgba(25,70,52,.07); }
.seo-directory-grid img { display:block; width:100%; aspect-ratio:1.55; object-fit:cover; background:#e5ede7; }
.seo-directory-grid span { display:flex; flex-direction:column; gap:6px; padding:16px; }
.seo-directory-grid strong { font-family:"Playfair Display",serif; font-size:1.15rem; line-height:1.12; }
.seo-directory-grid small { color:#698078; }
@media (max-width:1050px) { .seo-directory-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:860px) { .seo-header nav>a:first-child { display:none; } .seo-listing { grid-template-columns:1fr; } .seo-listing__visual { min-height:300px; max-height:460px; } .seo-reassurance { align-items:flex-start; flex-direction:column; } }
@media (max-width:760px) { .seo-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:540px) { main { width:min(100% - 20px,1320px); padding-top:14px; } .seo-header { padding:10px 14px; } .seo-brand img { width:96px; } .seo-header nav a { padding:10px 12px; font-size:.84rem; } .seo-listing { border-radius:24px; } .seo-listing__content { padding:26px 20px 30px; } .seo-actions { align-items:stretch; flex-direction:column; } }
@media (max-width:480px) { .seo-directory-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
