:root{--teal:#20b9c8;--teal-deep:#13808b;--teal-soft:#e8f7f9;--mint:#a2e3c4;--mint-deep:#5cba8e;--mint-white:#f0f7f4;--sage:#7e8d85;--sage-light:#b3bfb8;--ink:#1f2a2e;--muted:#6a7a72;--cream:#fbfaf7;--line:#e3ebe6}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500;line-height:1.15}
a{color:var(--teal-deep);text-decoration:none}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.btn{display:inline-block;padding:13px 26px;border-radius:999px;font-weight:600;font-size:15px;transition:.18s;border:none;cursor:pointer}
.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-deep)}
.btn-ghost{background:#fff;color:var(--teal-deep);border:1.5px solid var(--teal)}.btn-ghost:hover{background:var(--teal-soft)}
.topbar{background:var(--ink);color:#cfe9ec;font-size:13.5px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 24px;flex-wrap:wrap}
.topbar a{color:#fff;font-weight:600}
header{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 24px}
.brand{display:flex;align-items:center;gap:11px;font-family:Fraunces,serif;font-size:21px;font-weight:600;color:var(--ink)}
.brand .mark{width:38px;height:38px;border-radius:50%;background:var(--teal);display:grid;place-items:center;color:#fff;font-weight:700;font-size:17px;font-family:Inter}
.brand img.logo{height:46px;width:auto;display:block}
nav.main a{margin-left:26px;font-weight:600;font-size:15px;color:var(--ink)}
nav.main a:hover{color:var(--teal-deep)}
.nav-cta{margin-left:26px!important}
.hamburger{display:none;background:none;border:none;cursor:pointer;padding:8px;margin-left:auto}
.hamburger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.2s}
/* Services dropdown (CSS-only, hover + keyboard focus) */
.dropdown{position:relative;display:inline-block;margin-left:26px}
.dropdown>button{font-family:inherit;background:none;border:none;cursor:pointer;font-weight:600;font-size:15px;color:var(--ink);padding:0;display:inline-flex;align-items:center;gap:5px}
.dropdown>button:hover{color:var(--teal-deep)}
.dropdown>button::after{content:"▾";font-size:11px;color:var(--teal-deep)}
.dropdown-menu{position:absolute;top:calc(100% + 10px);left:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px -20px rgba(19,128,139,.4);padding:8px;min-width:240px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.16s;z-index:60}
.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-menu a{display:block;margin:0!important;padding:9px 12px;border-radius:8px;font-size:14px;color:var(--ink)}
.dropdown-menu a:hover{background:var(--teal-soft);color:var(--teal-deep)}
.crumb{padding:18px 0 0;font-size:13px;color:var(--muted)}
.hero{padding:40px 0 56px;background:linear-gradient(160deg,var(--mint-white) 0%,var(--teal-soft) 50%,var(--cream) 100%)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:46px;align-items:center}
.eyebrow{color:var(--teal-deep);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:13px;margin-bottom:14px}
.hero h1{font-size:44px;margin-bottom:16px}
.hero p.lead{font-size:18px;color:var(--muted);margin-bottom:26px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.pricecard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 18px 50px -28px rgba(19,128,139,.45)}
.pricecard h3{font-size:19px;margin-bottom:16px}
.pricecard ul{list-style:none}
.pricecard li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.pricecard li:last-child{border-bottom:none}
.pricerow{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line)}
.pricerow:last-child{border-bottom:none}
.pricerow .name{font-weight:600}
.pricerow .price{font-family:Fraunces,serif;font-size:22px;color:var(--teal-deep)}
.check{color:var(--mint-deep);font-weight:700}
.section{padding:60px 0}
.section h2{font-size:30px;margin-bottom:14px}
.section p{color:var(--muted);font-size:16.5px;margin-bottom:16px;max-width:62ch}
.section ul{margin:0 0 16px 22px;color:var(--muted);font-size:16px}
.section li{margin-bottom:7px}
.photo-ph{background:var(--teal-soft);border:1px dashed var(--teal);border-radius:14px;min-height:220px;display:grid;place-items:center;color:var(--teal-deep);font-size:14px;margin:10px 0 28px;text-align:center;padding:20px}
.photo-real{width:100%;max-height:380px;object-fit:cover;border-radius:14px;margin:10px 0 28px;display:block}
.faq{background:var(--mint-white);border:1px solid var(--line);border-radius:14px;padding:6px 24px;margin-top:10px}
.faq details{border-bottom:1px solid var(--line);padding:16px 0}
.faq details:last-child{border-bottom:none}
.faq summary{font-weight:600;font-size:16px;cursor:pointer;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--teal-deep);font-weight:700;font-size:20px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:12px 0 0;color:var(--muted);font-size:15.5px;max-width:none}
.book{background:var(--ink);color:#eaf6f7}
.book .wrap{padding:56px 24px;text-align:center}
.book h2{color:#fff;font-size:30px;margin-bottom:12px}
.book p{color:#b9d4d7;max-width:48ch;margin:0 auto 24px}
.book .hero-cta{justify-content:center}
.book .btn-ghost{background:transparent;color:#fff;border-color:#4a7d83}.book .btn-ghost:hover{background:rgba(255,255,255,.08)}
.book small{display:block;margin-top:16px;color:#8fb3b7;font-size:13px}
/* contact section */
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:start;padding:70px 24px}
.contact h2{font-size:30px;margin-bottom:12px}
.contact p.intro{color:var(--muted);font-size:16.5px;margin-bottom:22px;max-width:46ch}
.contact .info{margin-bottom:18px}
.contact .info div{display:flex;gap:10px;align-items:baseline;padding:8px 0;font-size:15.5px}
.contact .info .lbl{color:var(--teal-deep);font-weight:600;min-width:90px}
.contact .exterior{width:100%;border-radius:14px;margin-top:8px;display:block}
.contact .map{width:100%;height:300px;border:0;border-radius:14px;margin-top:14px;display:block}
.cform{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 18px 50px -28px rgba(19,128,139,.4)}
.cform label{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin:14px 0 6px}
.cform label:first-child{margin-top:0}
.cform input,.cform textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-family:inherit;font-size:15px;color:var(--ink);background:var(--cream)}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--teal)}
.cform textarea{min-height:120px;resize:vertical}
.cform button{margin-top:18px;width:100%}
.tb-extra{}
@media(max-width:860px){.tb-extra{display:none}.contact .wrap{grid-template-columns:1fr;gap:30px}}
footer{background:#11181b;color:#9fb3b6;font-size:14px}
footer .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;padding:46px 24px}
footer h4{color:#fff;font-size:15px;margin-bottom:12px;font-family:Inter;font-weight:700}
footer a{color:#cfe2e4;display:block;padding:3px 0}
footer .legal{border-top:1px solid #243034;color:#6f8589;font-size:12.5px;text-align:center;padding:18px 24px}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr;gap:30px}.hero h1{font-size:34px}footer .wrap{grid-template-columns:1fr}
  .hamburger{display:block}
  nav.main{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 40px -20px rgba(19,128,139,.35);flex-direction:column;align-items:stretch;padding:10px 0;display:none}
  nav.main.open{display:flex}
  nav.main a{margin:0!important;padding:13px 24px;border-bottom:1px solid var(--line)}
  nav.main .nav-cta{margin:12px 24px!important;text-align:center;border-bottom:none}
  .dropdown{margin:0;display:block}
  .dropdown>button{width:100%;justify-content:space-between;padding:13px 24px;border-bottom:1px solid var(--line)}
  .dropdown-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;border-radius:0;min-width:0;padding:0;background:var(--mint-white)}
  .dropdown-menu a{padding-left:40px}
  header .wrap{position:relative;flex-wrap:wrap}
}
