/* Focused readability and depth for five patient-facing sections. */
.section:has(.contact-grid) { position:relative; background:radial-gradient(ellipse at 12% 20%,#e4f0e8,transparent 55%),#f5f2ea; overflow:hidden; }
.section:has(.contact-grid)::before { content:''; position:absolute; width:440px; height:440px; border:1px solid rgba(20,52,79,.08); border-radius:50%; right:-160px; top:-190px; pointer-events:none; box-shadow:0 0 0 50px rgba(20,52,79,.025),0 0 0 100px rgba(20,52,79,.015); }
.section:has(.contact-grid) .wrap { position:relative; }
.section:has(.contact-grid) .section-head { margin-bottom:35px; align-items:center; }
.section:has(.contact-grid) h2 { font-size:clamp(2.3rem,4vw,3.7rem); line-height:1.08; }
.contact-grid { display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:16px; margin-top:0; }
.contact-card { position:relative; min-height:184px; padding:27px 30px; border:1px solid rgba(20,52,79,.08); border-radius:26px; overflow:hidden; transition:transform .25s,box-shadow .25s; }
.contact-card:first-child { grid-row:span 2; background:#14344f; color:white; min-height:380px; }
.contact-card:nth-child(2) { grid-column:span 2; background:#e0eeea; }
.contact-card:nth-child(3) { background:#eff7df; }
.contact-card:nth-child(4) { background:#fffefa; }
.contact-card:first-child::after { content:''; position:absolute; width:230px; height:230px; border:1px solid rgba(214,241,123,.2); border-radius:50%; right:-100px; bottom:-110px; box-shadow:0 0 0 34px rgba(214,241,123,.04),0 0 0 68px rgba(214,241,123,.035); pointer-events:none; }
.contact-card strong { margin-top:15px; font-family:var(--sans); font-size:1.22rem; line-height:1.25; font-weight:700; letter-spacing:-.025em; }
.contact-card:first-child strong { margin-top:auto; font-size:clamp(1.65rem,2.7vw,2.5rem); max-width:280px; }
.contact-card small { color:#52686c; font-size:.69rem; }
.contact-card span:not(.contact-icon) { color:#405969; font-size:.87rem; line-height:1.6; max-width:330px; }
.contact-card:first-child small { color:#d6f17b; }
.contact-card:first-child span:not(.contact-icon) { color:#d2e1e5; }
.contact-card:hover { transform:translateY(-5px); box-shadow:0 20px 36px rgba(20,52,79,.12); }
.contact-card:first-child:hover { background:#1b4562; }
.contact-card:nth-child(2):hover { background:#d6e8e2; }
.contact-card:nth-child(3):hover { background:#e1efc5; }
.contact-icon { display:grid; place-items:center; width:45px; height:45px; flex:none; margin:0 0 17px; border:1px solid rgba(20,52,79,.12); border-radius:14px; background:rgba(255,255,255,.55); }
.contact-icon svg { width:24px; height:24px; }
.contact-card:first-child .contact-icon { width:70px; height:70px; border-radius:22px; background:#d6f17b; color:#14344f; border:0; }
.contact-card:first-child .contact-icon svg { width:35px; height:35px; }
.contact-card:nth-child(2) .contact-icon { position:absolute; right:28px; top:27px; }
.contact-card:nth-child(2) strong, .contact-card:nth-child(2) > span:not(.contact-icon) { max-width:calc(100% - 65px); }
.contact-card:nth-child(3) .contact-icon, .contact-card:nth-child(4) .contact-icon { width:36px; height:36px; margin-bottom:10px; border-radius:11px; }
.faq { grid-template-columns:.78fr 1.22fr; gap:55px; align-items:start; }
.faq > div:first-child { position:sticky; top:115px; padding:34px; border:1px solid #d5e4df; border-radius:28px; background:linear-gradient(150deg,#e1eee6,#f5f8ee); overflow:hidden; }
.faq > div:first-child::before { content:'?'; display:grid; place-items:center; width:65px; height:65px; margin-bottom:28px; border-radius:50%; color:#14344f; background:#d6f17b; font-family:var(--serif); font-size:2.6rem; transform:rotate(-9deg); }
.faq > div:first-child h2 { font-size:clamp(2rem,3.5vw,3.1rem); line-height:1.14; }
.faq > div:first-child .lead { font-size:1rem; line-height:1.7; }
.faq-list { border:0; counter-reset:question; }
.faq-list details { counter-increment:question; margin:0 0 12px; padding:0 22px; border:1px solid #d5e0e3; border-radius:20px; background:#fff; box-shadow:0 5px 18px rgba(20,52,79,.025); transition:border-color .2s,box-shadow .2s; }
.faq-list details[open] { background:#edf7f4; border-color:#9bbdaf; box-shadow:0 13px 30px rgba(20,52,79,.075); }
.faq-list summary { position:relative; align-items:center; justify-content:initial; gap:13px; padding:21px 36px 21px 0; font-size:1.01rem; line-height:1.5; font-weight:650; }
.faq-list summary::before { content:counter(question,decimal-leading-zero); flex:0 0 31px; color:#69858a; font-size:.72rem; font-weight:700; }
.faq-list summary::after { position:absolute; right:0; top:50%; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:#14344f; background:#eff3ed; transform:translateY(-50%); }
.faq-list details[open] summary::after { background:#d6f17b; }
.faq-list details p { padding:0 15px 24px 44px; color:#354f60; line-height:1.8; font-size:.97rem; }
#reviews { position:relative; background:radial-gradient(ellipse at 90% 20%,#dcebe4,transparent 55%),#f5f2ea; overflow:hidden; }
#reviews .section-head { align-items:center; margin-bottom:42px; }
#reviews h2 { font-size:clamp(2.3rem,4vw,3.7rem); }
.testimonial-grid { gap:20px; align-items:stretch; }
.testimonial { position:relative; min-height:320px; padding:30px; border:1px solid #d7e4df; box-shadow:0 12px 30px rgba(20,52,79,.035); transition:transform .25s,box-shadow .25s; }
.testimonial:nth-child(2) { color:white; background:#14344f; border-color:#14344f; transform:translateY(18px); }
.testimonial::before { color:#7aa395; margin-bottom:18px; font-size:72px; }
.testimonial blockquote { font-family:var(--sans); color:#324e60; font-size:1.05rem; line-height:1.8; letter-spacing:-.012em; }
.testimonial:nth-child(2) blockquote, .testimonial:nth-child(2) footer { color:#fff; }
.testimonial:nth-child(2) footer span { color:#c3d4dc; }
.testimonial:nth-child(2)::before { color:#d6f17b; }
.testimonial footer { position:relative; padding:23px 0 0 46px; margin-top:auto; }
.testimonial-avatar { position:absolute; bottom:3px; left:0; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#e0eee7; color:#14344f; font-size:.65rem; font-weight:800; }
.testimonial:nth-child(2) .testimonial-avatar { background:#d6f17b; }
.testimonial footer strong { font-size:.88rem; }
.testimonial footer span:not(.testimonial-avatar) { font-size:.75rem; line-height:1.5; }
.testimonial:hover { transform:translateY(-5px); box-shadow:0 20px 38px rgba(20,52,79,.12); }
.testimonial:nth-child(2):hover { transform:translateY(13px); }
.travel-help { background:radial-gradient(ellipse at 0% 0%,#f7d8c3,transparent 55%),#f3e9dc; }
.travel-help-grid { gap:48px; align-items:start; }
.travel-help h2 { font-size:clamp(2.8rem,4.7vw,4.8rem); line-height:1.07; letter-spacing:-.045em; }
.travel-help-copy { font-size:1.05rem; line-height:1.8; }
.urgent-badge { border:1px solid #e7beb0; box-shadow:0 8px 22px rgba(159,71,48,.06); }
.urgent-panel { padding:32px; box-shadow:0 18px 50px rgba(69,48,38,.11); border-radius:28px; }
.urgent-panel h3 { font-size:1.5rem; line-height:1.3; }
.urgent-checklist { gap:11px; margin-top:24px; counter-reset:urgent; }
.urgent-checklist li { position:relative; counter-increment:urgent; align-items:center; color:#304d5e; padding:12px 14px; border:1px solid #e1ebe4; border-radius:12px; background:#f5f8f2; font-size:.91rem; line-height:1.55; }
.urgent-checklist li::before { content:counter(urgent); display:grid; place-items:center; flex:0 0 24px; width:24px; height:24px; border-radius:50%; background:#dfece3; color:#345e54; font-size:.7rem; }
.real-emergency { padding:20px; margin-top:22px; border:1px solid #ecd2c5; border-radius:17px; background:#fbf1e9; }
.real-emergency strong { color:#743c2d; }
.real-emergency p { color:#4e5b62; line-height:1.7; font-size:.86rem; }
.emergency-number { color:#7c3029; margin-top:12px; font-size:.85rem; line-height:1.5; }
.emergency-number::before { color:white; background:#b53830; padding:5px 8px; }
.urgent-note { color:#55636b; line-height:1.75; }
.answer-card.image-backed { position:relative; gap:38px; padding:42px; min-height:600px; border:0; background-image:linear-gradient(90deg,rgba(17,48,64,.96) 0%,rgba(17,48,64,.88) 42%,rgba(17,48,64,.25) 72%,rgba(17,48,64,.12) 100%),url('/assets/tourist-dental-consultation-v1.jpg'); background-position:center,center; box-shadow:0 25px 55px rgba(20,52,79,.13); }
.answer-card.image-backed > div:first-child { padding:15px 0; }
.answer-card.image-backed > div:first-child::before { content:'✳'; display:block; color:#d6f17b; font-size:48px; line-height:1; margin-bottom:25px; }
.answer-card.image-backed > div:first-child .eyebrow { color:#c5ddb1; }
.answer-card.image-backed h2 { color:#fffefa; font-size:clamp(2.3rem,3.8vw,3.4rem); line-height:1.15; letter-spacing:-.03em; }
.answer-card.image-backed .answer-body { padding:30px; background:rgba(255,254,250,.96); border:1px solid rgba(255,255,255,.75); box-shadow:0 15px 45px rgba(0,0,0,.09); }
.answer-body strong { font-family:var(--sans); font-size:1.13rem; line-height:1.6; font-weight:650; }
.answer-body .lead { font-size:1rem; line-height:1.8; }
.answer-body ul { gap:9px; }
.answer-body li { padding:10px 12px 10px 33px; font-size:.87rem; line-height:1.6; background:#edf5ef; border-radius:11px; }
.answer-body li::before { left:12px; top:10px; color:#477864; }
@media(max-width:980px) { .faq { grid-template-columns:1fr; gap:30px; } .faq > div:first-child { position:relative; top:auto; } .testimonial:nth-child(2) { transform:none; } .testimonial:nth-child(2):hover { transform:translateY(-5px); } .answer-card.image-backed { grid-template-columns:1fr; gap:28px; } .contact-card:first-child { min-height:400px; } }
@media(max-width:680px) { .section:has(.contact-grid) .section-head { gap:20px; } .contact-grid { grid-template-columns:1fr; gap:13px; } .contact-card:first-child { grid-row:auto; min-height:255px; } .contact-card:nth-child(2) { grid-column:auto; } .contact-card { padding:25px; min-height:177px; } .contact-card:first-child strong { font-size:1.85rem; } .faq > div:first-child { padding:27px; } .faq > div:first-child::before { width:48px; height:48px; font-size:2rem; margin-bottom:20px; } .faq-list details { padding:0 17px; } .faq-list summary { gap:8px; font-size:.93rem; } .faq-list summary::before { flex-basis:25px; } .faq-list details p { padding:0 0 22px 33px; font-size:.92rem; } .testimonial { min-height:285px; padding:27px; } .travel-help h2 { font-size:clamp(2.45rem,10vw,3.5rem); } .urgent-panel { padding:25px 20px; } .urgent-checklist li { padding:11px; } .answer-card.image-backed { padding:28px 23px; min-height:0; background-image:linear-gradient(180deg,rgba(17,48,64,.94),rgba(17,48,64,.55)),url('/assets/tourist-dental-consultation-v1.jpg'); } .answer-card.image-backed h2 { font-size:2.3rem; } .answer-card.image-backed .answer-body { padding:25px 20px; } }
@media(prefers-reduced-motion:reduce) { .contact-card,.testimonial,.faq-list details { transition:none; } }
