.ct-hero{ background:var(--navy); color:#fff; padding:calc(var(--nav-h) + 7vh) 0 6vh; position:relative; overflow:hidden; }
.ct-hero::after{ content:'☽'; position:absolute; top:24%; right:8%; font-size:54px; color:rgba(156,191,170,.2); }
.ct-hero .eyebrow{ color:var(--sage); }
.ct-hero h1{ font-family:var(--display); font-size:clamp(46px,7vw,92px); font-weight:400; margin:14px 0 16px; }
.ct-hero h1 em{ font-family:var(--serif); font-style:italic; color:var(--sand); }
.ct-hero p{ max-width:480px; font-size:16px; line-height:1.7; opacity:.8; }

.ct-main{ max-width:var(--maxw); margin:0 auto; padding:7vh 30px; display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:start; }
.map{ position:relative; aspect-ratio:4/3; border-radius:22px; overflow:hidden; border:1px solid var(--line); background:#dfe7e2; }
.map iframe{ width:100%; height:100%; border:0; filter:grayscale(.2) contrast(1.05); }
.map .pin{ position:absolute; top:46%; left:50%; transform:translate(-50%,-100%); z-index:2; pointer-events:none;
  background:var(--navy); color:#fff; padding:8px 14px; border-radius:30px; font-size:12px; letter-spacing:.06em; box-shadow:0 8px 24px rgba(13,30,46,.3); }
.map .pin::after{ content:''; position:absolute; bottom:-6px; left:50%; transform:translateX(-50%) rotate(45deg); width:12px; height:12px; background:var(--navy); }

.info-card{ }
.info-card h2{ font-family:var(--display); font-size:34px; font-weight:400; margin-bottom:6px; }
.info-card .ar{ opacity:.5; margin-bottom:22px; }
.irow{ display:flex; gap:14px; padding:16px 0; border-bottom:.5px solid var(--line); }
.irow .ic{ width:40px; height:40px; flex-shrink:0; border-radius:50%; background:var(--cream); display:flex; align-items:center; justify-content:center; font-size:18px; }
.irow .k{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-dim); margin-bottom:3px; }
.irow .v{ font-size:16px; color:var(--navy); line-height: normal; }
.irow .v a:hover{ color:var(--sage-dk); }
.hours{ margin-top:22px; background:var(--cream); border-radius:16px; padding:20px 22px; }
.hours .hr{ display:flex; justify-content:space-between; font-size:14px; padding:5px 0; }
.hours .hr .day{ color:var(--text-dim); } .hours .hr.open .t{ color:var(--sage-dk); font-weight:600; }
.wa-cta{ display:flex; align-items:center; gap:14px; background:var(--sage); border-radius:16px; padding:18px 20px; margin-top:20px; color:var(--navy);}
.wa-cta .big{ font-size:26px; } .wa-cta b{ display:block; } .wa-cta p{ font-size:13px; opacity:.8; }
.wa-cta a{ width: 34%; }

.ct-form-sec{ background:var(--cream); }
.ct-form-sec .in{ max-width:760px; margin:0 auto; padding:8vh 30px; }
.ct-form-sec h2{ font-family:var(--display); font-size:clamp(30px,4vw,48px); font-weight:400; text-align:center; }
.ct-form-sec .sub{ text-align:center; color:var(--text-dim); margin:10px 0 36px; }
.cform{ background:#fff; border:1px solid var(--line); border-radius:22px; padding:34px; }
.cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cf{ margin-bottom:16px; }
.cf label{ display:block; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:7px; }
.cf input,.cf select,.cf textarea{ width:100%; padding:13px 15px; border:1px solid var(--line); border-radius:12px; font-family:var(--sans); font-size:15px; color:var(--navy); outline:none; transition:border-color .2s; background:#fff; }
.cf textarea{ min-height:120px; resize:vertical; }
.cf input:focus,.cf textarea:focus,.cf select:focus{ border-color:var(--sage-dk); }
.cform .btn{ width:100%; justify-content:center; margin-top:6px; }
.cf-ok{ text-align:center; padding:30px; }
.cf-ok .ring{ width:70px; height:70px; border-radius:50%; background:var(--sage); color:var(--navy); display:flex; align-items:center; justify-content:center; font-size:34px; margin:0 auto 18px; }
.cf-ok h3{ font-family:var(--display); font-size:28px; font-weight:400; margin-bottom:8px; }
.cf-ok p{ color:var(--text-dim); }
@media(max-width:860px){ .ct-main{ grid-template-columns:1fr; } .cf-row{ grid-template-columns:1fr; } }

@media(max-width:767px){
	.wa-cta {
		flex-wrap: wrap;
	}
	.wa-cta a {
		width: auto;
	}
	.wrap, .ct-main {
		padding: 0 20px;
	}
	.ct-main {
		padding-top: 40px;
		padding-bottom: 40px;
	}
	.ct-form-sec .in {
		max-width: 100%;
		padding: 40px 20px;
	}
	.cform {
		padding: 20px;
	}
}