/* Contact module: emerald surfaces, dimensional icons, bounded motion. */
.appointment.contact-studio{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);gap:55px;padding:56px;border-radius:34px;background:radial-gradient(ellipse at 12% 0%,#1b9068a6,transparent 54%),linear-gradient(120deg,#064631,#073b2c 60%,#0b6543);border:1px solid #80b69b;box-shadow:inset 0 1px 0 #ffffff55,0 7px 0 #063323,0 22px 46px #093d2826;isolation:isolate;overflow:clip}
.contact-studio:before{content:"";position:absolute;inset:1px;border:1px solid #ffffff0b;border-radius:32px;pointer-events:none;z-index:-1}
.contact-studio .contact-availability{display:inline-flex;align-items:center;gap:9px;font-size:13px;line-height:1.4;letter-spacing:.025em;color:#e4f7ea;border:1px solid #b4efcc45;background:#ffffff0b;border-radius:50px;padding:9px 14px;box-shadow:inset 0 1px 0 #ffffff12}
.contact-availability:before{content:"";width:6px;height:6px;border-radius:50%;background:#a8f5bf;box-shadow:0 0 0 4px #9ff9bf15;flex-shrink:0}
.contact-studio .contact-copy h2{font-size:clamp(28px,3.2vw,43px);line-height:1.2;letter-spacing:-.055em;font-weight:500;color:#fff;margin:23px 0 19px;max-width:560px;text-wrap:balance}
.contact-studio .contact-copy>p{font-size:17px;line-height:1.75;color:#d0e7d9;margin:0}
.contact-location{display:block;margin-top:24px;color:#b1cfbe;font-size:13px;letter-spacing:.035em}
.contact-options{min-width:0;display:flex;flex-direction:column;gap:16px;perspective:1100px}
.contact-action{position:relative;isolation:isolate;display:flex;align-items:center;gap:22px;min-height:111px;padding:18px 23px;border-radius:24px;border:1px solid #fff8;transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s,background .35s;transform:translateZ(0);overflow:hidden;touch-action:manipulation}
.contact-whatsapp{background:linear-gradient(125deg,#fff,#e5f4e9);color:#113f2b;box-shadow:inset 0 2px 1px #fff,0 4px 0 #b2d5bf,0 12px 20px #001e1a30}
.contact-phone{background:linear-gradient(115deg,#ffffff18,#ffffff07);color:#fff;border-color:#bad9c943;box-shadow:inset 0 1px 0 #ffffff1f,0 4px 0 #012d20,0 12px 20px #001e1a20}
.contact-orb{position:relative;isolation:isolate;display:grid;place-items:center;flex:0 0 62px;width:62px;height:62px;border-radius:20px;color:white;background:linear-gradient(145deg,#22b96f,#00874a 62%,#006d3f);border:1px solid #66d894;box-shadow:inset 0 2px 2px #ffffff65,inset 0 -3px 6px #004f3650,0 4px 0 #005e39,0 9px 14px #003b302b;transform:rotate(-6deg);transition:transform .4s cubic-bezier(.2,.75,.25,1)}
.contact-orb:before{content:"";position:absolute;inset:-6px;border:1px solid #008e5017;border-radius:25px;pointer-events:none}
.contact-orb svg{width:31px;height:31px;filter:drop-shadow(0 2px 1px #00502d55)}
.contact-phone .contact-orb{background:linear-gradient(145deg,#d9f6e2,#93d5ad);border-color:#dcf9e4;color:#074c31;box-shadow:inset 0 2px 2px #ffffffe6,inset 0 -3px 6px #439d6330,0 4px 0 #6fad87,0 9px 14px #002f243d;transform:rotate(6deg)}
.contact-phone .contact-orb:before{border-color:#c4f0d229}.contact-phone .contact-orb svg{filter:none}
.contact-action-copy{position:relative;display:flex;min-width:0;flex:1;flex-direction:column;line-height:1.45;z-index:1}
.contact-action-copy>span{font-size:14px;font-weight:500}
.contact-action-copy strong{font:600 clamp(18px,1.75vw,23px)/1.4 var(--display);letter-spacing:-.035em;margin-block:2px;white-space:nowrap}
.contact-action-copy small{font-size:12px;color:#567460}
.contact-phone .contact-action-copy>span{color:#e6f5eb}.contact-phone .contact-action-copy small{color:#bfd8c9}
.appointment.contact-studio .contact-note{margin:3px 0 0;text-align:center;font-size:12px;line-height:1.6;color:#bbd7c7}
.contact-action:after{content:"";position:absolute;inset:-70% auto -70% -50%;width:24%;background:linear-gradient(90deg,transparent,#ffffff70,transparent);transform:rotate(24deg);pointer-events:none;opacity:0}
.contact-action:focus-visible{outline:3px solid #b9f5ce;outline-offset:7px}
.contact-action:active{transform:translateY(2px)}
@keyframes contact-ring{0%,45%,100%{transform:rotate(0)}10%{transform:rotate(-13deg)}20%{transform:rotate(11deg)}30%{transform:rotate(-7deg)}}
@media(hover:hover) and (pointer:fine){.contact-action:hover{transform:translateY(-4px) rotateX(3deg);box-shadow:inset 0 1px 0 #fff8,0 7px 0 #85b699,0 20px 24px #001e1a35}.contact-phone:hover{background:linear-gradient(115deg,#ffffff25,#ffffff12);box-shadow:inset 0 1px 0 #ffffff38,0 7px 0 #012d20,0 20px 24px #001e1a35}.contact-action:hover .contact-orb{transform:translateY(-2px) rotate(0)}.contact-phone:hover svg{animation:contact-ring .8s ease-in-out 1}}
@media(max-width:1000px){.appointment.contact-studio{padding:38px;gap:30px;grid-template-columns:minmax(0,1fr) minmax(305px,1fr)}.contact-action{padding:17px 19px;gap:18px}.contact-orb{width:55px;height:55px;flex-basis:55px;border-radius:18px}.contact-orb:before{border-radius:23px}.contact-action-copy strong{font-size:21px}.contact-studio .contact-copy h2{font-size:34px}}
@media(max-width:800px){.appointment.contact-studio{grid-template-columns:1fr;gap:32px;padding:38px;align-items:stretch}.contact-studio .contact-copy h2{font-size:38px;max-width:580px}.contact-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-action{align-items:flex-start;flex-direction:column;gap:21px;padding:24px;min-width:0}.contact-action-copy strong{font-size:22px}.appointment.contact-studio .contact-note{grid-column:1/-1}.contact-location{margin-top:17px}}
@media(max-width:560px){.appointment.contact-studio{padding:30px 23px;border-radius:27px;gap:28px}.contact-studio:before{border-radius:25px}.contact-studio .contact-copy h2{font-size:32px;line-height:1.2;letter-spacing:-.045em;margin:20px 0 17px}.contact-studio .contact-copy h2 br{display:none}.contact-studio .contact-copy>p{font-size:16px;line-height:1.75}.contact-studio .contact-copy>p br{display:none}.contact-options{display:flex;gap:15px}.contact-action{flex-direction:row;align-items:center;padding:19px 16px;gap:19px;min-height:112px;border-radius:21px}.contact-orb{flex-basis:54px;width:54px;height:54px}.contact-orb svg{width:28px;height:28px}.contact-action-copy>span{font-size:13px}.contact-action-copy strong{font-size:20px}.contact-action-copy small{font-size:12px}.appointment.contact-studio .contact-note{max-width:260px;align-self:center;margin-top:5px}.contact-location{font-size:12px}.contact-studio .contact-availability{font-size:12px}}
@media(max-width:380px){.appointment.contact-studio{padding:27px 18px}.contact-studio .contact-copy h2{font-size:28px}.contact-action{padding:17px 13px;gap:15px}.contact-orb{width:46px;height:46px;flex-basis:46px;border-radius:16px}.contact-orb:before{inset:-4px;border-radius:20px}.contact-orb svg{width:26px;height:26px}.contact-action-copy strong{font-size:17px}.contact-action-copy>span{font-size:12px}.contact-action-copy small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.contact-studio *,.contact-studio *:before,.contact-studio *:after{animation:none!important;transition:none!important}.contact-action:hover,.contact-action:active,.contact-action:hover .contact-orb{transform:none}.contact-action:after{display:none}}

/* Compact opening: introduction, photos, then contact, with no full-height empty padding. */
.opening-intro{position:relative;isolation:isolate;overflow:clip;padding:30px 0 0}
.opening-intro .hero-backdrop{height:180%;top:-40px}
.opening-intro .hero-description{margin-bottom:0}
.tour-scroll .tour-viewport{height:auto;min-height:0;justify-content:flex-start;padding:20px 0 12px;gap:12px}
.motion-ready .tour-scroll{height:calc(var(--tour-panel-height,700px) + 85svh)}
.motion-ready .tour-scroll .tour-viewport{position:sticky;height:auto;min-height:0;top:12px}
.tour-scroll .tour-gallery{height:clamp(270px,44svh,380px);min-height:0;max-height:none;flex:none;margin-top:0}
.tour-scroll .tour-controls{margin-top:2px}
.tour-scroll .photo-note{margin:0;line-height:1.4}
.appointment.contact-studio.contact-compact{width:min(1120px,calc(100% - 88px));padding:22px 30px;gap:32px;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);margin:6px auto 10px;border-radius:25px}
.contact-compact:before{border-radius:23px}
.contact-compact .contact-availability{padding:6px 11px;font-size:12px}
.contact-studio.contact-compact .contact-copy h2{font-size:clamp(24px,2.4vw,31px);line-height:1.18;margin:12px 0 10px}
.contact-studio.contact-compact .contact-copy>p{font-size:16px;line-height:1.6;max-width:430px}
.contact-compact .contact-options{display:flex;flex-direction:column;gap:11px}
.contact-compact .contact-action{min-height:78px;padding:12px 18px;gap:17px;border-radius:18px;flex-direction:row;align-items:center}
.contact-compact .contact-orb{width:47px;height:47px;flex-basis:47px;border-radius:16px}
.contact-compact .contact-orb:before{inset:-4px;border-radius:20px}
.contact-compact .contact-orb svg{width:25px;height:25px}
.contact-compact .contact-action-copy strong{font-size:20px;line-height:1.25}
.contact-compact .contact-action-copy>span{font-size:13px}
.contact-compact .contact-action-copy small{font-size:12px}
.motion-ready .tour-scroll.tour-static{height:auto}
.motion-ready .tour-scroll.tour-static .tour-viewport{position:relative;top:0}
@media(max-width:800px){.opening-intro{padding-top:25px}.appointment.contact-studio.contact-compact{width:calc(100% - 40px);grid-template-columns:minmax(0,1fr) minmax(265px,1fr);padding:21px 23px;gap:23px}.contact-studio.contact-compact .contact-copy h2{font-size:26px}.contact-compact .contact-action{padding:12px 14px;gap:15px}.contact-compact .contact-action-copy strong{font-size:19px}.tour-scroll .tour-gallery{height:clamp(255px,39svh,330px)}}
@media(max-width:600px){.appointment.contact-studio.contact-compact{grid-template-columns:1fr;padding:20px 23px;gap:19px}.contact-studio.contact-compact .contact-copy h2{font-size:25px;max-width:420px;margin:10px 0 8px}.contact-compact .contact-copy h2 br{display:none}.contact-studio.contact-compact .contact-copy>p{font-size:16px;line-height:1.5}.contact-compact .contact-options{gap:10px}.contact-compact .contact-action{min-height:75px}.contact-compact .contact-action-copy strong{font-size:20px}.tour-scroll .tour-viewport{padding-top:17px;gap:11px}.tour-scroll .tour-gallery{height:clamp(245px,36svh,295px)}}
@media(max-width:380px){.appointment.contact-studio.contact-compact{padding:19px;width:calc(100% - 30px)}.contact-compact .contact-action{gap:13px;padding:12px}.contact-compact .contact-orb{width:43px;height:43px;flex-basis:43px}.contact-compact .contact-action-copy strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.motion-ready .tour-scroll{height:auto}.motion-ready .tour-scroll .tour-viewport{position:relative;top:0}}

/* Contact is part of the first tour view and visible without a scroll trigger. */
.tour-viewport>.appointment.contact-studio.contact-compact{flex:none;margin-top:8px;margin-bottom:8px;opacity:1;visibility:visible;transform:none}
@media(max-width:800px){.motion-ready .tour-scroll{height:calc(var(--tour-panel-height,400px) + 190svh)}.motion-ready .tour-scroll .tour-viewport{min-height:calc(100svh - 24px)}.tour-scroll .tour-gallery{height:clamp(185px,42svh,330px)}.tour-scroll .scroll-hint{display:flex}.tour-scroll .tour-viewport{gap:10px;padding-bottom:8px}.doctor-visual{transform-style:preserve-3d}.doctor-portrait{backface-visibility:hidden}}
@media(max-width:560px){.tour-scroll .tour-gallery{height:clamp(180px,39svh,295px)}}
@media(max-height:450px){.tour-scroll .tour-gallery{height:clamp(130px,44svh,190px)}.tour-scroll .tour-viewport{padding-block:10px;gap:8px}}
@media(prefers-reduced-motion:reduce){.motion-ready .tour-scroll{height:auto}.motion-ready .tour-scroll .tour-viewport{position:relative;top:0}.tour-scroll .scroll-hint{display:none}}

/* Neon treatment scoped exclusively to the appointment invitation. */
.contact-studio .contact-copy>p.cta-neon{color:#a1ffba;font-weight:600;text-shadow:0 0 3px #a1ffba88,0 0 10px #36ff7866,0 0 22px #16e96540;animation:cta-neon-glow 2.4s ease-in-out infinite}
@keyframes cta-neon-glow{0%,100%{color:#94fbb0;text-shadow:0 0 2px #8bffaa66,0 0 7px #36ff7840,0 0 15px #16e96522}50%{color:#c1ffd1;text-shadow:0 0 4px #b7ffccaa,0 0 12px #48ff8b99,0 0 26px #16e96566}}
@media(prefers-reduced-motion:reduce){.contact-studio .contact-copy>p.cta-neon{animation:none}}

/* Illuminated 24-hour status sign, scoped to the contact banner. */
.contact-studio .contact-availability.availability-sign{display:inline-flex;align-items:center;gap:11px;max-width:100%;padding:7px 12px;border-radius:13px;border:1px solid #6bec94;background:linear-gradient(135deg,#126a40,#08482c);color:#c5ffd5;box-shadow:inset 0 1px 0 #c2ffd84d,0 0 9px #31ed7655,0 0 23px #13e95d25;font-family:var(--display);letter-spacing:0;animation:availability-sign-glow 2.4s ease-in-out infinite}
.availability-sign .availability-label{font-size:14px;font-weight:700;line-height:1.3;text-shadow:0 0 6px #61ff9477}
.availability-sign .availability-hours{display:inline-flex;align-items:baseline;gap:4px;padding:2px 0 2px 11px;border-left:1px solid #80ffa35c;font-size:24px;font-weight:800;line-height:1.1;letter-spacing:-.045em;color:#b1ffc6;text-shadow:0 0 3px #b0ffbaaa,0 0 11px #3fff79bb}
.availability-sign .availability-hours span{font-size:12px;font-weight:700;letter-spacing:0}
.contact-availability.availability-sign:before{width:8px;height:8px;background:#aaffbd;box-shadow:0 0 0 4px #37ff721c,0 0 12px #6aff94;animation:availability-beacon 2.4s ease-in-out infinite}
@keyframes availability-sign-glow{0%,100%{border-color:#41cf71;box-shadow:inset 0 1px 0 #c2ffd838,0 0 6px #31ed7633,0 0 16px #13e95d18}50%{border-color:#b5ffcb;box-shadow:inset 0 1px 0 #c2ffd870,0 0 12px #31ed7699,0 0 28px #13e95d4d}}
@keyframes availability-beacon{0%,100%{opacity:.65;box-shadow:0 0 0 3px #37ff7218,0 0 5px #6aff94}50%{opacity:1;box-shadow:0 0 0 5px #37ff7228,0 0 16px #6aff94}}
@media(max-width:380px){.contact-studio .contact-availability.availability-sign{gap:8px;padding:7px 10px}.availability-sign .availability-label{font-size:13px}.availability-sign .availability-hours{font-size:22px;padding-left:8px}.availability-sign .availability-hours span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.contact-studio .contact-availability.availability-sign,.contact-availability.availability-sign:before{animation:none}}

/* Directions card immediately after WhatsApp, using the supplied Maps logo. */
.contact-maps{background:linear-gradient(125deg,#fff,#e5f4e9);color:#113f2b;box-shadow:inset 0 2px 1px #fff,0 4px 0 #b2d5bf,0 12px 20px #001e1a30}
.contact-maps .contact-orb{background:linear-gradient(145deg,#fff,#edf6ef);border-color:#d4e9db;box-shadow:inset 0 2px 2px #fff,0 4px 0 #a1c6ae,0 9px 14px #003b302b}
.contact-maps .contact-orb img{width:36px;height:36px;object-fit:contain}
.contact-compact .contact-maps .contact-action-copy strong{font-size:16px;line-height:1.4;letter-spacing:-.02em;white-space:normal}
@media(max-width:380px){.contact-maps .contact-orb img{width:32px;height:32px}}
