:root{
  --ink:#21352f;
  --muted:#5d6d68;
  --green:#29483d;
  --green-dark:#1d352d;
  --sage:#dbe7e1;
  --cream:#f7f3ed;
  --paper:#fffdf9;
  --rose:#d7b9ad;
  --line:rgba(41,72,61,.14);
  --shadow:0 24px 60px rgba(35,58,50,.11);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;line-height:1.6}
img,svg{max-width:100%}
a{color:inherit}
.container{width:min(calc(100% - 40px),var(--max));margin:auto}
.header{position:sticky;top:0;z-index:50;background:rgba(255,253,249,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}
.brand-symbol{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(41,72,61,.25);border-radius:50%;font:24px Georgia,serif;background:linear-gradient(145deg,#fff,var(--sage));color:var(--green)}
.brand-text{display:grid;line-height:1.1}
.brand-text strong{font-size:15px;letter-spacing:.08em}
.brand-text small{margin-top:5px;color:var(--muted);font-size:11px}
.menu{display:flex;gap:26px}
.menu a{text-decoration:none;font-size:14px;font-weight:700;color:var(--muted)}
.menu a:hover{color:var(--green)}
.menu-btn{display:none;border:0;background:transparent;width:44px;height:44px;padding:10px}
.menu-btn span{display:block;height:2px;background:var(--green);margin:5px 0;border-radius:2px}
.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 10% 15%,rgba(215,185,173,.32),transparent 30%),linear-gradient(135deg,#f9f6f1,#edf3ef 55%,#dbe7e1);min-height:680px;display:flex;align-items:center}
.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(41,72,61,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(41,72,61,.08) 1px,transparent 1px);background-size:70px 70px;opacity:.5}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:80px;padding:90px 0}
.eyebrow{margin:0 0 14px;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.eyebrow.light{color:var(--sage)}
.hero h1{margin:0;font:500 clamp(58px,8vw,108px)/.87 Georgia,serif;letter-spacing:-.055em}
.hero h1 span{display:block;margin-top:15px;font-size:.48em;letter-spacing:.12em;color:var(--green)}
.subtitle{margin:27px 0 0;color:var(--muted);font:italic clamp(22px,2.5vw,33px) Georgia,serif}
.hero-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:35px}
.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;padding:13px 24px;border-radius:999px;text-decoration:none;font-size:14px;font-weight:800;border:1px solid transparent}
.button-primary{background:var(--green);color:#fff;box-shadow:0 14px 28px rgba(41,72,61,.18)}
.button-outline{border-color:rgba(41,72,61,.25);background:rgba(255,255,255,.55);color:var(--green)}
.button-light{background:#fff;color:var(--green)}
.phone-line{display:flex;gap:14px;margin-top:42px;align-items:center;font-size:13px;color:var(--muted)}
.phone-line span{padding-right:14px;border-right:1px solid var(--line)}
.phone-line a{font-weight:800;text-decoration:none;color:var(--green);letter-spacing:.05em}
.visual-card{justify-self:center;width:min(360px,80vw);aspect-ratio:.78;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:42px;border:1px solid rgba(255,255,255,.8);border-radius:180px 180px 46px 46px;background:rgba(255,255,255,.68);box-shadow:0 36px 90px rgba(45,73,63,.18);color:var(--green);text-align:center}
.visual-emblem{width:90px;margin-bottom:24px}
.visual-card p{margin:0;font:42px/1 Georgia,serif}
.visual-card strong{margin-top:7px;font-size:14px;letter-spacing:.22em}
.visual-card span{margin-top:25px;color:var(--muted);font-size:13px;line-height:1.7}
.hero-decoration{position:absolute;border-radius:50%;filter:blur(5px)}
.hero-decoration-a{width:220px;height:220px;right:12%;top:8%;background:rgba(215,185,173,.35)}
.hero-decoration-b{width:320px;height:320px;right:-100px;bottom:-60px;background:rgba(145,169,156,.27)}
.section{padding:100px 0}
.intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:start}
.intro-grid h2,.center-heading h2,.location-card h2,.contact h2{margin:0;font:500 clamp(42px,5vw,72px)/1 Georgia,serif;letter-spacing:-.035em}
.content-card{padding:40px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(145deg,#fff,rgba(219,231,225,.55));box-shadow:var(--shadow)}
.lead{margin:0;font:clamp(28px,3vw,42px)/1.25 Georgia,serif}
.line{width:74px;height:1px;background:#91a99c;margin:30px 0}
.address-text{margin:0;color:var(--muted)}
.section-soft{background:var(--cream)}
.center-heading{text-align:center;max-width:760px;margin:0 auto 50px}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.service-card{min-height:320px;padding:40px;border:1px solid var(--line);border-radius:30px;background:rgba(255,255,255,.82);box-shadow:0 18px 45px rgba(41,72,61,.08)}
.number{font-size:12px;font-weight:800;letter-spacing:.2em;color:#91a99c}
.icon{width:84px;margin:45px 0 28px;color:var(--green)}
.service-card h3{margin:0;font:500 clamp(28px,3vw,38px)/1.1 Georgia,serif}
.location-card{min-height:330px;display:grid;grid-template-columns:150px 1fr;gap:50px;align-items:center;padding:52px 68px;border-radius:36px;background:radial-gradient(circle at 80% 10%,rgba(215,185,173,.2),transparent 28%),var(--green);color:#fff;box-shadow:0 30px 70px rgba(41,72,61,.22)}
.location-icon{width:130px;height:130px;display:grid;place-items:center;padding:30px;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:var(--sage);background:rgba(255,255,255,.06)}
.location-card p:last-child{margin:18px 0 0;color:rgba(255,255,255,.78);font-size:17px}
.social-section{padding-top:20px}
.social-cards{display:grid;grid-template-columns:repeat(2,minmax(0,300px));justify-content:center;gap:20px}
.social-card{display:flex;align-items:center;gap:16px;padding:22px 25px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 14px 35px rgba(41,72,61,.06)}
.social-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font:700 26px Georgia,serif}

.contact{padding:90px 0;background:radial-gradient(circle at 15% 25%,rgba(215,185,173,.19),transparent 25%),linear-gradient(135deg,var(--green-dark),var(--green));color:#fff}
.contact-inner{text-align:center}
.contact p:not(.eyebrow){margin:12px 0 0;color:rgba(255,255,255,.73);font-size:18px}
.big-phone{display:block;width:max-content;margin:25px auto;color:#fff;text-decoration:none;font:clamp(28px,4vw,44px) Georgia,serif}
.footer{padding:55px 0;background:#eef2ef;color:var(--muted)}
.footer-grid{display:grid;grid-template-columns:1.25fr .75fr 1.5fr .75fr;gap:36px}
.footer strong{color:var(--ink);letter-spacing:.08em}
.footer span{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.footer p{margin:8px 0 0;font-size:13px}
.footer a{display:inline-block;margin-top:8px;text-decoration:none;color:var(--green);font-weight:800}
.floating-call{position:fixed;right:20px;bottom:20px;z-index:40;width:56px;height:56px;display:grid;place-items:center;padding:15px;border-radius:50%;background:var(--green);color:#fff;box-shadow:0 14px 32px rgba(41,72,61,.3)}
@media(max-width:900px){
  .menu-btn{display:block}
  .menu{position:fixed;top:78px;left:20px;right:20px;display:none;flex-direction:column;gap:0;padding:14px;border:1px solid var(--line);border-radius:20px;background:#fffdf9;box-shadow:var(--shadow)}
  .menu.open{display:flex}
  .menu a{padding:13px 12px;border-bottom:1px solid var(--line)}
  .menu a:last-child{border-bottom:0}
  .hero-grid{grid-template-columns:1fr;gap:45px;padding:70px 0 90px}
  .intro-grid{grid-template-columns:1fr;gap:40px}
  .cards{grid-template-columns:1fr}
  .location-card{grid-template-columns:1fr;padding:45px}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .container{width:min(calc(100% - 28px),var(--max))}
  .nav{min-height:72px}
  .brand-symbol{width:40px;height:40px}
  .brand-text strong{font-size:13px}
  .brand-text small{font-size:10px}
  .menu{top:72px;left:14px;right:14px}
  .hero h1{font-size:clamp(50px,17vw,74px)}
  .hero-buttons{display:grid}
  .button{width:100%}
  .phone-line{align-items:flex-start;flex-direction:column;gap:4px}
  .phone-line span{border:0;padding:0}
  .visual-card{width:min(290px,83vw);padding:34px}
  .visual-card p{font-size:34px}
  .section{padding:72px 0}
  .content-card,.service-card{padding:28px}
  .location-card{padding:32px 26px}
  .location-icon{width:100px;height:100px;padding:24px}
  .social-cards{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .floating-call{right:15px;bottom:15px;width:52px;height:52px}
}
