
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');
:root{--ink:#082d52;--teal:#00af89;--mint:#e5fff8;--cyan:#20c7d0;--blue:#3c5fa1;--royal:#104099;--cream:#fffdf9;--line:#d7e8ea;--shadow:0 18px 55px rgba(16,64,153,.14);--radius:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",sans-serif;color:#082d52;background:linear-gradient(180deg,#fbfffe 0%,#eefbfa 52%,#f3f7ff 100%);line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.container{width:min(1180px,calc(100% - 32px));margin:auto}
 .topbar{height:36px;background:linear-gradient(90deg,#00a97f,#104099,#3c5fa1);color:#fff;font-size:12px}.topbar .container{height:100%;display:flex;align-items:center;justify-content:space-between}.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.84);backdrop-filter:blur(18px);border-bottom:1px solid rgba(9,65,62,.1)}.nav-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:12px;font-weight:800} .brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#104099,#00af89);color:#fff;display:grid;place-items:center;font-size:22px}.brand small{display:block;color:#6a7e7c;letter-spacing:2px;font-size:9px}.links{display:flex;align-items:center;gap:24px;font-weight:700;font-size:14px}.links a:hover{color:var(--teal)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;padding:13px 20px;font-weight:800;transition:.25s transform,.25s box-shadow}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(8,65,61,.15)}.btn-primary{background:linear-gradient(135deg,#104099,#0a5b86);color:#fff}.btn-teal{background:linear-gradient(135deg,#00af89,#13c6aa);color:#fff}.btn-soft{background:#e8f8f5;color:var(--ink)}.mobile-toggle{display:none;background:#e8f8f5;padding:10px;border-radius:12px;font-size:20px}
 .hero{padding:34px 0 30px}.slider{position:relative;overflow:hidden;border-radius:32px;box-shadow:var(--shadow);background:linear-gradient(135deg,#104099,#00af89)}.slides{display:flex;transition:transform .65s cubic-bezier(.2,.75,.2,1)}.slide{min-width:100%;display:grid;grid-template-columns:1fr 1fr;min-height:510px;color:#fff;overflow:hidden}.slide-copy{padding:70px 60px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(135deg,#104099 0%,#3c5fa1 48%,#00af89 100%)}.eyebrow{letter-spacing:3px;text-transform:uppercase;font-size:12px;font-weight:800;opacity:.85}.slide h1{font-size:clamp(42px,5vw,72px);line-height:1.03;margin:15px 0}.slide h1 em{font-family:"Playfair Display",serif;color:#d8fff9}.slide p{font-size:18px;max-width:520px}.slide-media{display:flex;align-items:stretch;background:linear-gradient(135deg,#dff8f5,#e8f1ff)}.slide-media img{width:100%;height:100%;object-fit:cover}.slider-arrow{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 10px 25px rgba(0,0,0,.18);font-size:25px;z-index:5}.prev{left:18px}.next{right:18px}.dots{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:8px}.dot{width:9px;height:9px;border-radius:50%;background:#fff8;transition:.2s}.dot.active{width:28px;border-radius:8px;background:#fff}
.section{padding:82px 0}.section-head{max-width:760px;margin-bottom:34px}.section-head h2{font-size:clamp(34px,4vw,54px);line-height:1.05;margin:10px 0}.section-head h2 em{font-family:"Playfair Display",serif;color:var(--teal)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px;box-shadow:0 10px 30px rgba(8,60,57,.06)}.service-card{position:relative;overflow:hidden;min-height:230px}.service-card:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-30px;bottom:-45px;background:#e4faf7}.icon{width:54px;height:54px;border-radius:17px;background:linear-gradient(135deg,#dff8f5,#dce8ff);display:grid;place-items:center;font-size:25px;margin-bottom:18px}.service-card h3{font-size:23px;margin:0 0 8px}.service-card p{color:#59706e} .feature-band{background:linear-gradient(135deg,#104099,#00af89);color:#fff;border-radius:32px;padding:50px;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.feature-band img{width:100%;border-radius:25px}.feature-band h2{font-size:clamp(36px,4vw,58px);line-height:1.05;margin:8px 0}.review{min-height:190px}.stars{color:#f4ad2c;letter-spacing:2px}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery-item{position:relative;border-radius:22px;overflow:hidden;background:#fff;border:1px solid var(--line);aspect-ratio:4/3}.gallery-item img,.gallery-item video{width:100%;height:100%;object-fit:cover}.gallery-caption{position:absolute;left:12px;right:12px;bottom:12px;background:#ffffffdc;backdrop-filter:blur(10px);border-radius:14px;padding:10px 12px;font-weight:800}
 .footer{background:linear-gradient(135deg,#062f5f,#063c38);color:#dff8f5;padding:55px 0 28px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:30px}.footer a{color:#dff8f5}.footer-bottom{border-top:1px solid #ffffff22;margin-top:30px;padding-top:18px;display:flex;justify-content:space-between;font-size:13px}.float-stack{position:fixed;right:22px;bottom:22px;z-index:80;display:flex;flex-direction:column;gap:12px}.float-btn{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:22px;box-shadow:0 12px 28px #0002}.float-top{background:#fff;color:var(--ink);border:1px solid var(--line)}.float-ai{background:linear-gradient(135deg,#7b39e8,#c947df);border:3px solid #fff}.float-wa{background:#20c86a}.wa-icon{font-size:24px;font-weight:900}.chat-panel{position:fixed;right:22px;bottom:92px;width:min(390px,calc(100vw - 32px));height:min(520px,calc(100vh - 118px));max-height:calc(100vh - 118px);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 25px 70px rgba(0,0,0,.22);z-index:100;display:none;overflow:hidden}.chat-panel.open{display:flex;flex-direction:column} .chat-head{background:linear-gradient(135deg,#104099,#00af89);color:#fff;padding:16px 18px;display:flex;align-items:center;justify-content:space-between}.chat-close{background:#ffffff25;color:#fff;width:36px;height:36px;border-radius:50%;font-size:22px}.chat-body{padding:16px;overflow:auto;flex:1;background:#f7fffe}.bubble{max-width:86%;padding:11px 13px;border-radius:15px;margin-bottom:9px;background:#fff;border:1px solid var(--line)}.bubble.user{margin-left:auto;background:#dff8f5}.quick{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px}.quick button{background:#fff;border:1px solid var(--line);padding:9px 12px;border-radius:18px;font-weight:700}.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}.chat-form input{flex:1;border:1px solid var(--line);border-radius:14px;padding:11px}.chat-form button{background:var(--ink);color:#fff;border-radius:13px;padding:0 16px;font-weight:800}
.modal{position:fixed;inset:0;background:rgba(2,30,29,.65);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;z-index:110;padding:18px}.modal.open{display:flex} .modal-card{background:#fff;border-radius:28px;width:min(760px,100%);max-height:calc(100vh - 28px);overflow:auto;box-shadow:0 30px 90px #0004}.modal-head{padding:25px 28px 10px;display:flex;justify-content:space-between;gap:20px}.modal-close{width:42px;height:42px;border-radius:50%;background:#e8f8f5;color:var(--ink);font-size:22px}.form{padding:18px 28px 30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field label{display:block;font-weight:800;font-size:13px;margin:0 0 7px}.field input,.field select,.field textarea{width:100%;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfffe;outline:none}.field textarea{min-height:105px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 4px #0b9b9017}.full{grid-column:1/-1}.step{display:flex;gap:10px;align-items:center;margin:0 0 22px}.step span{width:32px;height:32px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:800}.note{background:#eaf9f7;border-radius:15px;padding:12px 14px;color:#3e6461;font-size:13px}
@media(max-width:900px){.links{display:none}.links.show{display:flex;position:absolute;top:68px;left:11px;right:11px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:18px;padding:14px;flex-direction:column;align-items:stretch;box-shadow:var(--shadow);gap:8px}.links.show a{padding:10px 12px}.mobile-toggle{display:block}.slide{grid-template-columns:1fr}.slide-copy{padding:50px 35px;min-height:350px}.slide-media{min-height:280px}.grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr 1fr}.feature-band{grid-template-columns:1fr;padding:30px}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.topbar .container{justify-content:center}.topbar .container span:last-child{display:none}.nav-inner{height:68px}.brand-mark{width:40px;height:40px}.container{width:min(100% - 22px,1180px)}.hero{padding-top:15px}.slider{border-radius:22px}.slide-copy{padding:38px 24px;min-height:350px}.slide h1{font-size:44px}.slide p{font-size:16px}.slider-arrow{width:42px;height:42px}.prev{left:10px}.next{right:10px}.grid,.gallery-grid{grid-template-columns:1fr}.section{padding:58px 0}.feature-band{border-radius:22px}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:10px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.modal{padding:10px}.modal-card{border-radius:20px;max-height:calc(100vh - 20px)}.modal-head{padding:20px 20px 8px}.form{padding:14px 20px 24px}.float-stack{right:14px;bottom:14px}.float-btn{width:50px;height:50px}.chat-panel{right:10px;bottom:76px;height:min(520px,calc(100vh - 96px));max-height:calc(100vh - 96px)}}

/* Final mobile/modal polish */
.modal.customer-modal{padding:12px;overflow:hidden}
.customer-modal .modal-card{overflow:hidden;max-height:calc(100vh - 24px)}
.customer-modal .modal-head{padding:18px 24px 4px}
.customer-modal .modal-head h2{font-size:clamp(30px,4vw,38px)!important}
.customer-modal .modal-head p{margin:6px 0 8px}
.customer-modal .form{padding:10px 24px 20px}
.customer-modal .form-grid{gap:13px}
.customer-modal .field input,.customer-modal .field select{padding:12px 14px}
.customer-modal .note{margin:12px 0!important;padding:10px 12px}
.customer-modal .step{margin-bottom:14px}
.footer .btn-soft{color:#082d52!important;background:#ffffff!important;border:1px solid #ffffff!important}
.chat-close{flex:0 0 auto;display:grid;place-items:center;position:relative;z-index:2}
@media(max-width:620px){
 .customer-modal{padding:8px!important}
 .customer-modal .modal-card{max-height:calc(100vh - 16px);border-radius:18px}
 .customer-modal .modal-head{padding:14px 18px 2px}
 .customer-modal .form{padding:8px 18px 16px}
 .customer-modal .form-grid{gap:10px}
 .customer-modal .field label{margin-bottom:4px}
 .customer-modal .field input,.customer-modal .field select{padding:11px 12px}
 .customer-modal .note{font-size:12px}
}

/* Final appointment modal: fit the complete form without an internal scrollbar */
.appointment-modal{padding:10px}
.appointment-modal .modal-card{width:min(760px,100%);max-height:calc(100vh - 20px);overflow:hidden}
.appointment-modal .modal-head{padding:18px 24px 4px}
.appointment-modal .modal-head h2{font-size:clamp(28px,4vw,36px)!important;margin:3px 0!important}
.appointment-modal .modal-head p{margin:4px 0;font-size:15px}
.appointment-modal .form{padding:10px 24px 18px}
.appointment-modal .step{margin-bottom:12px}
.appointment-modal .form-grid{gap:12px}
.appointment-modal .field label{margin-bottom:5px}
.appointment-modal .field input,.appointment-modal .field select{padding:11px 13px}
.appointment-modal .field textarea{min-height:62px;height:62px}
.appointment-modal .note{display:none}
.appointment-modal .btn{padding:12px 18px}
@media(max-width:620px){
  .appointment-modal{padding:8px}
  .appointment-modal .modal-card{max-height:calc(100vh - 16px);border-radius:18px}
  .appointment-modal .modal-head{padding:14px 16px 2px}
  .appointment-modal .modal-head h2{font-size:27px!important}
  .appointment-modal .modal-head p{font-size:13px}
  .appointment-modal .form{padding:8px 16px 14px}
  .appointment-modal .form-grid{gap:9px}
  .appointment-modal .field input,.appointment-modal .field select{padding:10px 12px}
  .appointment-modal .field textarea{min-height:52px;height:52px}
  .appointment-modal .modal-close{width:38px;height:38px}
}
