:root { --ink:#092b4c; --blue:#0c4c79; --sky:#5eb7d9; --mist:#e9f4f8; --ice:#f5fafc; --line:#d7e6ec; --white:#fff; --muted:#60778a; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--white); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
svg { width:1.2em; height:1.2em; }

.site-header { height:88px; max-width:1360px; margin:0 auto; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; gap:32px; background:rgba(255,255,255,.94); position:relative; z-index:10; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-mark { display:grid; place-items:center; width:44px; height:44px; border:1px solid #a9cbd9; border-radius:50%; font-family:Georgia,serif; font-size:15px; letter-spacing:-.08em; }
.brand-name { display:flex; flex-direction:column; font-family:Georgia,serif; font-size:17px; line-height:1.1; }
.brand-name small { margin-top:5px; color:var(--muted); font-family:Arial,sans-serif; font-size:8px; letter-spacing:.18em; text-transform:uppercase; }
nav { display:flex; gap:36px; color:#38556d; font-size:13px; }
nav a { transition:color .2s; }
nav a:hover { color:var(--sky); }
.nav-cta { display:flex; align-items:center; gap:12px; padding:13px 19px; background:var(--ink); color:white; font-size:12px; letter-spacing:.04em; }
.nav-cta svg,.text-link svg,.service-card a svg { fill:none; stroke:currentColor; stroke-width:1.5; }

.hero { min-height:calc(100vh - 88px); display:grid; grid-template-columns:54% 46%; background:var(--ice); overflow:hidden; }
.hero-copy { padding:11vh 7vw 8vh max(5vw, calc((100vw - 1360px)/2 + 5vw)); display:flex; flex-direction:column; justify-content:center; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 25px; color:var(--blue); font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.eyebrow span { width:30px; height:1px; background:var(--sky); }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.04em; }
h1 { margin:0; font-size:clamp(58px,6vw,94px); line-height:.94; }
h1 em { color:var(--blue); font-weight:400; }
.hero-lead { max-width:570px; margin:34px 0 0; color:var(--muted); font-family:Georgia,serif; font-size:19px; line-height:1.65; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:38px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:11px; padding:17px 23px; font-size:12px; font-weight:700; letter-spacing:.03em; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button.primary { background:var(--blue); color:white; }
.button.primary svg { fill:currentColor; }
.text-link { display:flex; align-items:center; gap:11px; border-bottom:1px solid #a4bdc9; padding:8px 0; color:#294a62; font-size:12px; }
.trust-row { display:flex; gap:4vw; margin-top:8vh; padding-top:25px; border-top:1px solid var(--line); }
.trust-row div { display:flex; flex-direction:column; gap:5px; }
.trust-row strong { font-family:Georgia,serif; font-size:25px; font-weight:400; }
.trust-row span { color:var(--muted); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }

.hero-visual { position:relative; min-height:600px; overflow:hidden; background:#bfd9e5; }
.hero-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(3,29,50,.38)); pointer-events:none; }
.hero-visual img { width:100%; height:100%; object-fit:cover; object-position:center; position:absolute; inset:0; }
.image-caption { position:absolute; left:40px; bottom:38px; z-index:2; display:flex; flex-direction:column; color:white; }
.image-caption span { font-size:9px; letter-spacing:.2em; text-transform:uppercase; }
.image-caption strong { margin-top:4px; font-family:Georgia,serif; font-size:27px; font-weight:400; }
.image-caption small { margin-top:5px; font-size:9px; letter-spacing:.18em; text-transform:uppercase; opacity:.8; }
.availability { position:absolute; right:0; top:8%; z-index:2; display:flex; align-items:center; gap:10px; padding:15px 23px; background:white; color:var(--ink); font-size:10px; letter-spacing:.04em; }
.availability i { width:7px; height:7px; border-radius:50%; background:#4aba91; box-shadow:0 0 0 4px #dcf2ea; }

.services { padding:110px 7vw; max-width:1450px; margin:0 auto; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:60px; }
.section-heading h2 { margin:0; font-size:clamp(43px,5vw,68px); line-height:1.05; }
.section-heading>p { max-width:420px; margin:0 0 8px; color:var(--muted); font-size:15px; line-height:1.7; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:60px; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { min-height:340px; padding:35px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .25s,transform .25s; }
.service-card:hover { background:var(--ice); transform:translateY(-4px); }
.service-number { color:var(--sky); font-family:Georgia,serif; font-size:14px; }
.service-card h3 { margin:70px 0 16px; font-family:Georgia,serif; font-size:25px; font-weight:400; }
.service-card p { color:var(--muted); font-size:13px; line-height:1.7; }
.service-card a { display:flex; align-items:center; gap:12px; width:max-content; margin-top:28px; color:var(--blue); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.detail-list { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); }
.detail-list>div { display:grid; grid-template-columns:38px 1fr; column-gap:10px; padding:35px 18px 35px 0; border-right:1px solid var(--line); }
.detail-list>div+div { padding-left:35px; }
.detail-list>div:last-child { border-right:0; }
.detail-list span { grid-row:1/3; color:var(--sky); font-family:Georgia,serif; font-size:25px; }
.detail-list h3 { margin:2px 0 10px; font-family:Georgia,serif; font-size:18px; font-weight:400; }
.detail-list p { margin:0; color:var(--muted); font-size:12px; line-height:1.6; }

.about { display:grid; grid-template-columns:46% 54%; min-height:760px; background:var(--ice); }
.about-portrait { position:relative; min-height:680px; overflow:hidden; }
.about-portrait img { width:100%; height:100%; object-fit:cover; object-position:65% center; filter:saturate(.78); }
.about-portrait::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,44,71,.12),transparent 60%); }
.experience-badge { position:absolute; z-index:2; right:-1px; bottom:0; display:flex; align-items:center; gap:18px; padding:27px 34px; background:var(--ink); color:white; }
.experience-badge strong { font-family:Georgia,serif; font-size:39px; font-weight:400; }
.experience-badge span { padding-left:18px; border-left:1px solid rgba(255,255,255,.25); font-size:9px; line-height:1.7; letter-spacing:.1em; text-transform:uppercase; }
.about-copy { padding:100px 9vw 90px 8vw; align-self:center; }
.about-copy h2 { margin:0 0 30px; font-size:clamp(42px,4vw,62px); line-height:1.06; }
.about-copy h2 em,.contact h2 em,.promise em { color:var(--sky); font-weight:400; }
.about-copy>p { max-width:630px; color:var(--muted); font-size:14px; line-height:1.8; }
.about-copy .about-intro { color:#36566d; font-family:Georgia,serif; font-size:18px; line-height:1.65; }
.credentials { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:35px; padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.credentials div { display:flex; flex-direction:column; gap:5px; }
.credentials span { color:var(--sky); font-size:8px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.credentials strong { font-family:Georgia,serif; font-size:16px; font-weight:400; }
.credentials small { color:var(--muted); font-size:10px; }
.signature { margin-top:32px; font-family:'Brush Script MT',cursive; font-size:34px; color:var(--blue); }
.signature span { display:block; margin-top:4px; color:var(--muted); font-family:Arial,sans-serif; font-size:8px; letter-spacing:.12em; text-transform:uppercase; }

.promise { padding:125px 7vw; background:var(--ink); color:white; text-align:center; }
.promise-label { color:#8dc9dd; font-size:9px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; }
.promise blockquote { margin:35px auto 25px; font-family:Georgia,serif; font-size:clamp(45px,6vw,80px); line-height:1.08; letter-spacing:-.04em; }
.promise>p { color:#b8cad7; font-family:Georgia,serif; font-size:16px; }
.promise-values { display:flex; justify-content:center; gap:6vw; max-width:950px; margin:65px auto 0; padding-top:28px; border-top:1px solid rgba(255,255,255,.14); color:#d7e5ec; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }

.process { padding:115px 7vw 130px; max-width:1450px; margin:auto; }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:70px; }
.process-grid article { position:relative; padding:0 50px 0 0; }
.process-grid article+article { padding-left:50px; border-left:1px solid var(--line); }
.process-grid>article>span { color:var(--sky); font-family:Georgia,serif; font-size:13px; }
.step-icon { display:grid; place-items:center; width:58px; height:58px; margin:36px 0 35px; border:1px solid #bcd6e1; border-radius:50%; color:var(--blue); font-size:21px; }
.process-grid h3 { margin:0 0 14px; font-family:Georgia,serif; font-size:23px; font-weight:400; }
.process-grid p { max-width:320px; margin:0; color:var(--muted); font-size:13px; line-height:1.75; }

.testimonial { padding:110px 10vw; background:#eaf4f8; text-align:center; }
.testimonial .eyebrow { justify-content:center; }
.quote-mark { height:52px; color:#80bed5; font-family:Georgia,serif; font-size:72px; line-height:1; }
.testimonial blockquote { max-width:880px; margin:20px auto 28px; font-family:Georgia,serif; font-size:clamp(27px,3vw,42px); line-height:1.45; letter-spacing:-.02em; }
.stars { color:#2f789e; font-size:12px; letter-spacing:.22em; }
.patient { margin-top:15px; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.patient span { color:var(--muted); font-weight:400; }
.quote-nav { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:35px; color:var(--muted); font-size:9px; }
.quote-nav i { display:grid; place-items:center; width:36px; height:36px; border:1px solid #b7d1dc; border-radius:50%; color:var(--ink); font-style:normal; }

.contact { display:grid; grid-template-columns:1.25fr .75fr; background:#0b365a; color:white; }
.contact-copy { padding:100px 9vw 100px 8vw; border-right:1px solid rgba(255,255,255,.12); }
.eyebrow.light { color:#9dd3e5; }
.contact h2 { margin:0 0 25px; font-size:clamp(44px,5vw,69px); line-height:1.03; }
.contact-copy>p { max-width:560px; color:#bdd0dc; font-family:Georgia,serif; font-size:16px; line-height:1.7; }
.contact-button { margin-top:25px; background:white; color:var(--ink); }
.contact-button svg { fill:#23a768; }
.contact-copy>small { display:block; margin-top:12px; color:#8ca9bc; font-size:9px; }
.contact-info { display:flex; flex-direction:column; justify-content:center; padding:70px 6vw; }
.contact-info>div { padding:27px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.contact-info>div:last-child { border:0; }
.contact-info span { color:#8fc4d7; font-size:8px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.contact-info p { margin:10px 0 0; color:#e1ecf1; font-family:Georgia,serif; font-size:15px; line-height:1.65; }
.contact-info a { display:inline-block; margin-top:9px; color:#9fd3e5; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }

footer { min-height:120px; display:flex; align-items:center; justify-content:space-between; gap:30px; padding:28px 5vw; background:#072944; color:white; }
footer>p { color:#819bad; font-size:9px; }
footer>div { display:flex; gap:25px; color:#adc0cb; font-size:10px; }
.footer-brand .brand-mark { border-color:#41647a; }
.footer-brand .brand-name small { color:#8099a9; }

.floating-whatsapp { position:fixed; right:25px; bottom:25px; z-index:20; display:grid; place-items:center; width:55px; height:55px; border-radius:50%; background:#23b46e; color:white; box-shadow:0 12px 35px rgba(20,90,70,.27); transition:transform .2s; }
.floating-whatsapp:hover { transform:scale(1.06); }
.floating-whatsapp svg { width:25px; height:25px; fill:currentColor; }

@media (max-width:900px) {
  .site-header { height:76px; padding:0 22px; } nav { display:none; } .nav-cta { padding:12px 14px; } .nav-cta svg { display:none; }
  .hero { grid-template-columns:1fr; } .hero-copy { padding:80px 7vw 65px; } .hero-visual { min-height:520px; } .trust-row { justify-content:space-between; }
  .section-heading { align-items:flex-start; flex-direction:column; } .service-grid { grid-template-columns:1fr; } .service-card { min-height:280px; } .service-card h3 { margin-top:45px; }
  .detail-list { grid-template-columns:1fr; } .detail-list>div,.detail-list>div+div { padding:28px 10px; border-right:0; border-top:1px solid var(--line); }
  .about { grid-template-columns:1fr; } .about-portrait { min-height:560px; } .about-copy { padding:80px 7vw; }
  .process-grid { grid-template-columns:1fr; gap:40px; } .process-grid article,.process-grid article+article { padding:0 0 35px; border-left:0; border-bottom:1px solid var(--line); }
  .contact { grid-template-columns:1fr; } .contact-copy { border-right:0; border-bottom:1px solid rgba(255,255,255,.12); } footer { flex-wrap:wrap; }
}
@media (max-width:560px) {
  .brand-name { display:none; } .nav-cta { font-size:10px; } .hero-copy { padding-top:65px; } h1 { font-size:52px; } .hero-lead { font-size:17px; }
  .hero-actions { align-items:stretch; flex-direction:column; gap:16px; } .text-link { width:max-content; } .trust-row { gap:15px; }
  .trust-row strong { font-size:20px; } .trust-row span { max-width:80px; font-size:8px; } .services { padding:80px 22px; }
  .availability { top:18px; right:auto; left:18px; max-width:calc(100% - 36px); padding:13px 16px; }
  .about-portrait { min-height:450px; } .about-copy { padding:70px 22px; } .credentials { grid-template-columns:1fr; }
  .promise { padding:90px 22px; } .promise-values { align-items:center; flex-direction:column; gap:18px; }
  .process { padding:85px 22px; } .testimonial { padding:85px 22px; } .patient span { display:block; margin-top:7px; }
  .contact-copy,.contact-info { padding:70px 22px; } footer { align-items:flex-start; flex-direction:column; } footer>div { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
