@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;800&display=swap');
:root{--ink:#111e20;--mint:#dcebcf;--white:#f7f8f4;--line:rgba(255,255,255,.25)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--white);font:16px/1.6 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--mint);outline-offset:6px}header{height:112px;position:absolute;top:0;left:0;width:100%;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 5.2%;border-bottom:1px solid rgba(255,255,255,.15)}.brand{width:184px;display:flex}.brand img{width:100%;height:70px;object-fit:contain}.location{font-size:12px;letter-spacing:2px;text-align:center;line-height:1.8}.location span{display:block;font-size:10px;letter-spacing:1.8px;color:#c6cecb}.phone{display:flex;align-items:center;gap:13px;font-size:14px;letter-spacing:1px}.phone svg{height:18px;width:18px}.hero{position:relative;min-height:850px;height:100svh;isolation:isolate;display:flex;align-items:center;padding:155px 5.2% 130px;overflow:hidden}.scene{position:absolute;inset:0;background:url('assets/coast.jpg') center 55%/cover;z-index:-3;animation:arrive 2s ease-out both}.shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(7,22,25,.75),rgba(7,22,25,.32) 70%,rgba(7,22,25,.18)),linear-gradient(0deg,rgba(7,18,20,.75),transparent 45%,rgba(7,18,20,.22))}.hero-content{width:100%;max-width:1440px;margin:auto}.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:2.3px;line-height:1.7}.rule{height:1px;width:35px;background:var(--mint)}h1,h2,p{margin:0}h1{font-family:'Manrope',Arial,sans-serif;font-size:clamp(45px,5.35vw,83px);font-weight:500;line-height:1.14;letter-spacing:-3.6px;margin:25px 0 25px}h1 em{font-style:normal;color:#e0e6de}.intro{color:#e1e6e2;font-size:17px;line-height:1.7}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:1090px;margin-top:48px}.choice{min-height:120px;padding:25px 23px;display:flex;gap:18px;align-items:center;background:rgba(16,29,31,.53);border:1px solid rgba(255,255,255,.32);backdrop-filter:blur(16px);transition:background .3s,transform .3s,border-color .3s}.choice:hover{transform:translateY(-5px);background:rgba(220,235,207,.15);border-color:#dcebcf}.number{font-size:12px;color:#b8c4bf;align-self:flex-start;padding-top:3px}.choice strong{display:block;font-family:Manrope,Arial,sans-serif;font-size:21px;font-weight:600;letter-spacing:-.4px}.choice small{display:block;color:#c2cdca;font-size:14px;margin-top:6px}.arrow{margin-left:auto;font-size:25px;font-weight:400}.unsure{display:inline-block;margin-top:25px;font-size:13px;color:#bdc9c5}.unsure span{color:#fff;border-bottom:1px solid #768681;padding-bottom:4px;margin-left:5px}.hero-foot{position:absolute;bottom:33px;left:5.2%;right:5.2%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#cbd4ce}.tiny-cross{margin-left:20px;color:var(--mint);font-size:18px}.skip{position:fixed;top:-100px;z-index:100;background:white;color:#111;padding:12px}.skip:focus{top:0}footer{padding:32px 5.2%;display:flex;gap:30px;justify-content:space-between;align-items:center;font-size:12px;color:#9eaead;border-top:1px solid #2b3a3c}.footer-name{font-weight:800;font-size:24px;color:white;letter-spacing:-1px;line-height:1}.footer-name span{display:block;font-size:8px;letter-spacing:1.6px;font-weight:400;margin-top:7px}.detail-visual{min-height:720px;height:86svh;position:relative;isolation:isolate;overflow:hidden;padding:150px 7% 80px;display:flex;flex-direction:column;justify-content:space-between}.detail-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;animation:arrive 1.3s ease-out}.detail-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(8,21,23,.85),rgba(8,21,23,.25)),linear-gradient(0deg,rgba(8,21,23,.45),transparent)}.back{font-size:23px;display:inline-flex;gap:12px;align-items:center;align-self:flex-start}.back span{font-size:11px;letter-spacing:2px}.detail-title{max-width:800px;margin-top:55px}.detail-title h1{max-width:760px}.detail-title p{font-size:18px;color:#d8dfda;max-width:520px;margin-bottom:28px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;padding:16px 23px;font-size:14px;font-weight:600;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px);background:#c7dabb}.light{background:var(--mint);color:var(--ink)}.button span{font-size:21px}.image-note{position:absolute;bottom:20px;right:30px;color:#c1ccc6;font-size:10px;letter-spacing:.3px}.detail-body{background:#f4f5f0;color:var(--ink);padding:90px 7%;display:grid;grid-template-columns:1fr 1fr;gap:10%}.dark{color:#58706b}h2{font-family:Manrope,sans-serif;font-size:clamp(32px,3.5vw,50px);font-weight:500;letter-spacing:-1.8px;line-height:1.18;margin:20px 0 23px}.detail-body p{color:#5a6661;max-width:490px}.service-row{padding:20px 0;border-bottom:1px solid #cbd1c9;display:flex;gap:24px}.service-row:first-child{padding-top:0}.service-row>span{font-size:12px;padding-top:4px;color:#76837b}.service-row h3{font-size:18px;font-weight:550;margin:0 0 4px}.service-row p{font-size:14px}.detail-bottom{padding:35px 7%;display:flex;justify-content:space-between;gap:20px;background:#dcebcf;color:var(--ink);align-items:center}.detail-bottom>span{font-size:11px;letter-spacing:2px}.detail-bottom>a{font-size:20px}.detail-bottom>a span{margin-left:30px}.contact{min-height:90svh;padding:155px 7% 90px;background:radial-gradient(ellipse at 90% 50%,#243b39,transparent 65%)}.contact-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:10%;margin-top:60px}.contact h1{font-size:clamp(42px,4.6vw,70px);letter-spacing:-2.8px}.contact p{color:#becac5;max-width:480px}.contact-card{border:1px solid #52625c;padding:42px;align-self:center;background:#ffffff03}.contact-card h2{font-size:38px}.contact-card .button{margin:30px 0;width:100%}.credentials{border-top:1px solid #43534d;padding-top:20px;font-size:13px;color:#b9c9c1;display:grid;gap:4px}.contact-links{margin:30px 0;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.contact-links>a{font-family:Manrope,sans-serif;font-size:32px;border-bottom:1px solid #64756e;padding-bottom:5px}.contact-links>a.email{font:18px 'DM Sans',sans-serif}.contact-links span{margin-left:30px;font-size:20px}.contact .contact-area{font-size:13px;line-height:1.9}.detail,.contact{animation:reveal .6s ease-out}.hero.zoom-out .scene{transform:scale(1.1);transition:transform .4s}.hero.zoom-out .hero-content{opacity:0;transform:translateY(-12px);transition:all .25s}body:has(.detail:not([hidden])) header,body:has(.contact:not([hidden])) header{background:rgba(11,27,28,.4)}[hidden]{display:none!important}@keyframes arrive{from{transform:scale(1.08)}to{transform:scale(1)}}@keyframes reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){header{padding:0 max(5.2%,calc((100% - 1440px)/2))}}@media(max-width:1000px){.choice{gap:10px;padding:20px 15px}.choice strong{font-size:18px}.choice small{font-size:12px}.number{display:none}.contact-grid{gap:6%}.contact-card{padding:27px}.location{font-size:10px}.location span{font-size:9px}footer{flex-wrap:wrap}}@media(max-width:700px){header{height:86px;padding:0 6%}.brand{width:132px}.brand img{height:55px}.location{display:none}.phone{font-size:12px;gap:9px}.phone svg{height:16px}.hero{height:auto;min-height:100svh;padding:143px 6% 100px;align-items:flex-start}.scene{background-position:65% center}.shade{background:linear-gradient(90deg,#0a1d21bc,#0a1d2150),linear-gradient(0deg,#0a1d21c9,transparent 80%)}h1{font-size:clamp(39px,8.5vw,58px);letter-spacing:-2px;margin:23px 0}.eyebrow{font-size:10px;letter-spacing:1.9px}.intro{font-size:15px}.choices{grid-template-columns:1fr;gap:10px;margin-top:33px}.choice{min-height:86px;padding:15px 20px;gap:17px}.number{display:block}.choice strong{font-size:19px}.choice small{font-size:13px;margin-top:1px}.choice:hover{transform:none}.unsure{font-size:12px;line-height:2;margin-top:20px}.hero-foot{left:6%;right:6%;bottom:22px;font-size:8px;letter-spacing:1.2px}.hero-foot>span:last-child{display:none}.detail-visual{height:auto;min-height:730px;padding:120px 6% 65px}.detail-title h1{font-size:47px}.detail-title p{font-size:16px}.detail-visual>img{object-position:65% center}.detail-body{padding:55px 6%;grid-template-columns:1fr;gap:36px}.detail-bottom{padding:25px 6%;flex-direction:column;align-items:flex-start}.detail-bottom>span{font-size:10px}.contact{padding:120px 6% 60px}.contact-grid{grid-template-columns:1fr;gap:40px;margin-top:40px}.contact h1{font-size:44px;letter-spacing:-2px}.contact-links>a{font-size:29px}.contact-links>a.email{font-size:17px}.contact-card{padding:30px}.contact-card h2{font-size:35px}footer{padding:30px 6%;display:grid;grid-template-columns:1fr;gap:18px;font-size:11px}.image-note{right:6%;font-size:9px}.button{gap:25px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.brand img{filter:brightness(0) invert(1)}
/* Contact form and direct-message launcher */
button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible{outline:2px solid var(--mint);outline-offset:5px}.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:7%;align-items:start}.contact-card{align-self:start}.contact-card h2{font-size:36px}.contact-card>p{font-size:16px}.contact-card .credentials{margin-top:25px}.field{margin-top:19px;min-width:0}.field label{display:block;font-size:14px;margin-bottom:7px;color:#edf1e9}.field label>span{color:#dcebcf}.field label>small{color:#a8b7b0;font-size:12px;margin-left:5px}.field input,.field textarea{display:block;width:100%;min-width:0;border:1px solid #65776d;border-radius:3px;background:#0c1d1c66;color:#f7f8f4;padding:12px 13px;font-size:16px;line-height:1.5;transition:border-color .2s,background .2s}.field input:focus,.field textarea:focus{outline:2px solid #dcebcf;outline-offset:2px;border-color:#dcebcf;background:#0c1d1c}.field input::placeholder,.field textarea::placeholder{color:#98a99f}.field textarea{resize:vertical;min-height:105px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field input[type=file]{font-size:13px;padding:10px;cursor:pointer}.field input::file-selector-button{font:inherit;border:1px solid #708378;background:#263c35;color:#eaf0e6;padding:8px 10px;margin-right:12px;cursor:pointer;border-radius:2px}.contact .field-help{font-size:12px;line-height:1.6;margin-top:8px;color:#b8c7bd}.contact-card .button{margin:22px 0 0;border:0;min-height:54px}.bot-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-status:empty{display:none}.contact .form-status{font-size:14px;line-height:1.6;margin-top:20px;padding:12px 14px;border:1px solid #778d7f;background:#dcebcf12;color:#dcebcf;overflow-wrap:anywhere}.contact .form-status.error{border-color:#c29986;background:#bd806a12;color:#f2c5b2}.button:disabled{opacity:.65;cursor:wait;transform:none}.message-launcher{position:fixed;right:26px;bottom:max(24px,env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:11px;background:#172d27f5;color:#ecf3e5;border:1px solid #8da087;border-radius:999px;padding:14px 21px;font-size:14px;font-weight:500;box-shadow:0 8px 30px #0004;backdrop-filter:blur(14px);transition:background .2s,transform .2s}.message-launcher:hover{background:#294235;transform:translateY(-2px)}footer{padding-bottom:105px}.hero-foot{right:235px}.text-dialog{background:#152820;color:#f7f8f4;border:1px solid #718773;border-radius:8px;padding:30px;max-width:440px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 25px 100px #0008}.text-dialog::backdrop{background:#071712b8;backdrop-filter:blur(5px)}.text-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.text-top button{background:none;color:#dcebcf;border:0;font-size:28px;width:40px;height:40px}.text-dialog h2{font-size:32px;margin-top:10px;letter-spacing:-1px}.text-dialog p{font-size:15px;color:#c3d0c3;line-height:1.6}.text-dialog .button{width:100%;border:0;margin-top:23px;font-size:15px}.text-fallback{display:block;text-align:center;text-decoration:underline;text-underline-offset:4px;font-size:13px;margin-top:20px;color:#c3d0c3}body:has(dialog[open]){overflow:hidden}@media(max-width:1000px){.contact-grid{gap:4%}.form-pair{grid-template-columns:1fr;gap:0}}@media(max-width:700px){.contact-grid{grid-template-columns:1fr;gap:35px}.contact-card{padding:26px 21px}.message-launcher{right:16px;bottom:max(16px,env(safe-area-inset-bottom));padding:12px 17px}.hero-foot{right:6%;bottom:85px}.hero{padding-bottom:145px}.text-dialog{padding:23px}.text-dialog h2{font-size:30px}.contact-card h2{font-size:33px}}

/* Compact online booking beside the existing contact options. */
.header-contact{display:flex;align-items:center;gap:22px;flex-shrink:0}
.booking-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 17px;border:1px solid var(--mint);border-radius:999px;background:var(--mint);color:var(--ink);font-size:14px;font-weight:600;line-height:1.6;white-space:nowrap;transition:background .2s,transform .2s}
.booking-link:hover{background:#c7dabb;transform:translateY(-2px)}
.booking-link span{font-size:18px;line-height:1}
.contact-actions{position:fixed;right:26px;bottom:max(24px,env(safe-area-inset-bottom));z-index:30;display:flex;align-items:stretch;gap:10px}
.contact-actions .message-launcher{position:static;white-space:nowrap}
.booking-mobile{display:none}
@media(min-width:701px) and (max-width:1000px){.header-contact{gap:14px}header{gap:18px}.brand{width:150px}.location{letter-spacing:1px}.location span{letter-spacing:1px}}
@media(max-width:700px){.booking-header{display:none}.contact-actions{right:16px;bottom:max(16px,env(safe-area-inset-bottom));max-width:calc(100% - 32px);gap:8px}.booking-mobile{display:inline-flex;padding:12px 17px;box-shadow:0 8px 30px #0004}.contact-actions .message-launcher{padding:12px 17px}}
@media(prefers-reduced-motion:reduce){.booking-link{transition:none}.booking-link:hover{transform:none}}

/* Service visit information; the existing detail-page layout stays intact. */
.service-visit{padding:75px 7% 70px;background:#152825}
.visit-heading h2{margin-bottom:35px}
.visit-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;list-style:none;padding:0;margin:0}
.visit-steps li{border-top:1px solid #52645b;padding-top:20px}
.visit-number{color:var(--mint);font-size:12px;letter-spacing:1px}
.service-visit h3{font-size:19px;font-weight:550;line-height:1.4;margin:12px 0 10px}
.service-visit p{font-size:15px;color:#c2cec7;line-height:1.7}
.service-next{margin-top:45px;padding-top:30px;border-top:1px solid #52645b;display:flex;align-items:center;justify-content:space-between;gap:30px}
.service-next h3{font-size:24px;margin-top:0}
.service-next .button{flex-shrink:0}
.service-next p a,.service-project a{color:var(--white);text-decoration:underline;text-underline-offset:4px}
.service-project{margin-top:35px;padding:24px 28px;background:#ffffff05;border:1px solid #42574c}
.service-project h3{margin-top:0;font-size:17px}
.service-project p{max-width:760px;font-size:14px}
@media(max-width:1000px){.visit-steps{gap:24px}.service-next{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.service-visit{padding:50px 6%}.visit-steps{grid-template-columns:1fr;gap:26px}.visit-heading h2{margin-bottom:28px}.service-next{margin-top:32px;gap:22px}.service-next .button{max-width:100%}.service-project{padding:21px}}
