:root{color-scheme:dark;--bg:#070707;--surface:#0d0b0b;--surface2:#121010;--card:#0c0b0b;--text:#f5f2ef;--muted:#a59c97;--red:#d72b24;--red-dark:#a91410;--line:#2c2624;--shadow:0 20px 60px rgba(0,0,0,.28);--max:1180px;--header:72px;--radius:18px;font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif}
html[data-theme="light"]{color-scheme:light;--bg:#f7f5f3;--surface:#fff;--surface2:#fbf8f6;--card:#fff;--text:#181412;--muted:#716965;--line:#ded7d3;--shadow:0 18px 50px rgba(48,31,25,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 18px)}body{margin:0;background:radial-gradient(circle at 78% 13%,rgba(160,14,14,.18),transparent 28%),var(--bg);color:var(--text);font-family:inherit;font-size:15px;line-height:1.6;overflow-x:hidden}html[data-theme="light"] body{background:radial-gradient(circle at 78% 13%,rgba(211,43,36,.09),transparent 27%),var(--bg)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{color:inherit}.nav{height:var(--header);max-width:none;width:100%;padding:0 max(24px,calc((100vw - var(--max))/2 + 24px));display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1000;background:rgba(7,7,7,.86);border-bottom:1px solid rgba(255,255,255,.04);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}html[data-theme="light"] .nav{background:rgba(247,245,243,.9);border-color:rgba(40,25,20,.08)}.brand{font-size:13px;font-weight:850;letter-spacing:.08em;white-space:nowrap}.brand span,.section h2 span,.service-body h2 span{color:var(--red)}.nav-tools{display:flex;align-items:center;gap:9px;order:3}.nav nav{display:flex;align-items:center;gap:24px;font-size:12px}.nav nav>a,.nav-local-book,.nav-drop-toggle{color:var(--muted);transition:.2s}.nav nav>a:hover,.nav-local-book:hover,.nav-drop-toggle:hover{color:var(--text)}.nav-local-book,.nav-drop-toggle{background:none;border:0;padding:0;cursor:pointer}.talk{border:1px solid rgba(215,43,36,.45);background:rgba(215,43,36,.06);padding:9px 15px;border-radius:99px;color:var(--text);cursor:pointer;font-weight:700}.theme-toggle{width:56px;height:32px;border:1px solid var(--line);border-radius:99px;background:var(--surface);display:flex;align-items:center;justify-content:space-around;cursor:pointer;color:var(--muted)}.theme-toggle .theme-sun{color:var(--red);opacity:.4}.theme-toggle .theme-moon{opacity:1}html[data-theme="light"] .theme-toggle .theme-sun{opacity:1}html[data-theme="light"] .theme-toggle .theme-moon{opacity:.35}.menu{display:none;background:none;border:1px solid var(--line);border-radius:99px;padding:7px 11px;cursor:pointer}.nav-dropdown{position:relative;height:var(--header);display:flex;align-items:center}.nav-drop-toggle{display:flex;align-items:center;gap:5px}.nav-drop-toggle span{transition:.2s}.nav-submenu{position:absolute;top:58px;left:50%;width:290px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);display:grid;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,8px);transition:.2s}.nav-submenu a{padding:10px 12px;border-radius:9px;color:var(--muted)}.nav-submenu a:hover{background:rgba(215,43,36,.08);color:var(--text)}.nav-dropdown:hover .nav-submenu,.nav-dropdown.open .nav-submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}.nav-dropdown:hover .nav-drop-toggle span,.nav-dropdown.open .nav-drop-toggle span{transform:rotate(180deg)}
.about-hero{max-width:var(--max);min-height:690px;margin:auto;padding:56px 24px 72px;display:grid;grid-template-columns:.92fr 1.08fr;align-items:center;gap:56px}.kicker{font-size:10px;letter-spacing:.22em;color:var(--muted);font-weight:700;display:flex;align-items:center;gap:12px}.kicker b{color:var(--text);font-size:10px}.kicker i{width:40px;height:1px;background:var(--line)}.about-copy h1{font-size:clamp(58px,6.6vw,88px);line-height:.9;letter-spacing:-.06em;margin:25px 0 20px}.about-copy h1 em{font-style:normal;color:var(--red)}.role{font-size:11px;letter-spacing:.12em;color:var(--muted);line-height:1.8}.role span{color:var(--red);padding:0 4px}.intro{max-width:520px;color:var(--muted);font-size:15px;line-height:1.75}.stats{display:flex;gap:34px;margin:30px 0}.stats>div{padding-right:30px;border-right:1px solid var(--line)}.stats>div:last-child{border:0}.stats strong{display:block;font-size:28px;line-height:1.1}.stats small{display:block;margin-top:7px;color:var(--muted);font-size:8px;letter-spacing:.16em;line-height:1.55}.actions,.service-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.primary,.secondary{appearance:none;border-radius:99px;padding:11px 18px;font-size:11px;font-weight:800;cursor:pointer}.primary{border:1px solid transparent;background:linear-gradient(90deg,var(--red),var(--red-dark));color:#fff}.secondary{border:1px solid var(--line);background:transparent;color:var(--text)}.portrait-stage{position:relative;height:560px;display:flex;align-items:center;justify-content:center;transform:translateY(var(--portrait-y,0));transition:transform .08s linear}.portrait-ring{width:min(450px,78%);aspect-ratio:1;border-radius:50%;padding:3px;background:conic-gradient(from 210deg,#ff2b25,#551010 30%,#ff2b25 52%,#4c0a0a 78%,#ff2b25);box-shadow:0 0 24px rgba(255,35,35,.35),0 0 70px rgba(164,0,0,.18);position:relative;z-index:3}.portrait{width:100%;height:100%;border-radius:50%;overflow:hidden;background:#160707}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 23%;transform:scale(1.03) translateY(var(--image-y,0));transition:transform .08s linear}.orbit{position:absolute;border:1px solid rgba(215,43,36,.22);border-radius:50%;z-index:1;transform:rotate(var(--orbit-r,0deg))}.orbit-one{width:500px;height:500px}.orbit-two{width:540px;height:540px;border-color:rgba(255,255,255,.07)}html[data-theme="light"] .orbit-two{border-color:rgba(30,20,20,.1)}.portrait-tags{position:absolute;right:0;top:145px;z-index:4;display:flex;flex-direction:column;color:var(--muted);font-size:8px;letter-spacing:.23em;line-height:2}.scroll-cue{position:absolute;right:55px;bottom:48px;z-index:5;width:50px;height:50px;border:1px solid var(--red);border-radius:50%;display:grid;place-items:center;font-size:18px;background:var(--surface)}
.section{max-width:var(--max);margin:auto;padding:88px 24px;border-top:1px solid var(--line)}.section h2,.service-body h2{font-size:clamp(36px,4vw,54px);line-height:1;letter-spacing:-.045em;margin:22px 0 40px}.services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.services article.service-card{position:relative;min-width:0;min-height:390px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(215,43,36,.025));transition:.25s;overflow:hidden}.services article.service-card:hover{transform:translateY(-5px);border-color:rgba(215,43,36,.55);box-shadow:var(--shadow)}html[data-theme="light"] .services article.service-card{background:#fff}.service-num{position:absolute;right:18px;top:16px;color:var(--red);font-size:11px;letter-spacing:.15em}.service-content{height:100%;display:flex;flex-direction:column;align-items:flex-start}.service-icon{width:48px;height:48px;margin:8px 0 18px;display:flex;align-items:center;justify-content:flex-start;color:var(--red)}.service-icon svg{width:36px;height:36px;stroke:currentColor}.service-card h3{font-size:19px;line-height:1.2;margin:0 0 11px}.service-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.68}.service-ctas{width:100%;margin-top:auto;padding-top:22px;display:grid;gap:8px}.service-btn{min-height:42px;padding:10px 12px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:800;transition:.2s}.service-btn-details{border:1px solid var(--line);background:transparent}.service-btn-request{background:linear-gradient(90deg,var(--red),var(--red-dark));color:#fff}.service-btn:hover{transform:translateY(-1px)}
.appointment-section{background:radial-gradient(circle at 85% 20%,rgba(145,12,12,.12),transparent 28%)}.appointment-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.appointment-head h2{margin-bottom:10px}.appointment-head p{max-width:620px;color:var(--muted);font-size:12px;margin:0}.booking-badge{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px 16px}.booking-badge span{font-size:28px;font-weight:850;color:var(--red)}.booking-badge small{font-size:7px;line-height:1.5;letter-spacing:.16em;color:var(--muted)}.booking-shell{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.booking-panel{padding:25px 28px;border-bottom:1px solid var(--line)}.booking-label{display:block;font-size:8px;letter-spacing:.18em;color:var(--red);margin-bottom:18px}.date-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.date-nav strong{font-size:12px}.date-nav button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--surface2);color:var(--text);cursor:pointer}.date-nav button:disabled{opacity:.3}.date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.date-card{min-height:92px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--text);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:.2s}.date-card small,.date-card span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.date-card strong{font-size:20px}.date-card:hover:not(:disabled),.date-card.selected{border-color:var(--red);background:rgba(215,43,36,.09)}.date-card.closed{opacity:.3;cursor:not-allowed}.date-card em{font-size:7px;color:#a65f5b;font-style:normal}.time-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.time-slot{border:1px solid var(--line);border-radius:10px;background:var(--surface2);color:var(--text);padding:13px 7px;font-size:10px;font-weight:700;cursor:pointer}.time-slot:hover:not(:disabled),.time-slot.selected{border-color:var(--red);background:var(--red);color:#fff}.time-slot.unavailable{opacity:.28;text-decoration:line-through}.booking-placeholder{grid-column:1/-1;color:var(--muted);font-size:11px}.booking-details{padding:28px}.booking-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);margin-bottom:20px}.booking-summary span{font-size:8px;letter-spacing:.16em;color:var(--muted)}.booking-summary strong{font-size:12px}.booking-fields,.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{grid-column:1/-1}.field label{display:block;color:var(--muted);font-size:9px;letter-spacing:.08em;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;background:var(--surface2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:12px 13px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(215,43,36,.08)}.confirm-booking,.submit-enquiry,.next-step{border:0;border-radius:99px;background:linear-gradient(90deg,var(--red),var(--red-dark));color:#fff;padding:12px 19px;font-weight:800;cursor:pointer}.confirm-booking{margin-top:20px}.confirm-booking:disabled,.next-step:disabled{opacity:.35;cursor:not-allowed}.booking-status{font-size:11px;margin:14px 0 0}.booking-status.success{color:#8ed6a6}.booking-status.error,.booking-placeholder.error{color:#e56c65}
.contact-intro{max-width:650px;color:var(--muted);font-size:13px;margin:-18px 0 32px}.contact-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch}.contact-card{appearance:none;width:100%;min-width:0;min-height:190px;margin:0;padding:22px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.008));color:var(--text);display:flex;flex-direction:column;align-items:flex-start;text-align:left;cursor:pointer;transition:.25s}.contact-card:hover{border-color:rgba(215,43,36,.55);transform:translateY(-4px);box-shadow:var(--shadow)}html[data-theme="light"] .contact-card{background:#fff}.icon-wrap{width:42px;height:42px;border:1px solid rgba(215,43,36,.3);border-radius:12px;display:grid;place-items:center;margin-bottom:20px;background:rgba(215,43,36,.04)}.icon-wrap svg{width:19px;height:19px;fill:none;stroke:#e13a32;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.contact-card small{font-size:8px;letter-spacing:.2em;color:var(--red)}.contact-card strong{font-size:16px;margin:9px 0 0;color:var(--text)}.contact-card .card-meta{width:100%;font-size:10px;color:var(--muted);margin-top:auto;display:flex;justify-content:space-between;align-items:center}.card-meta b{font-size:15px;color:var(--text)}
.form-shell{margin-top:28px;border:1px solid var(--line);border-radius:22px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}.form-head{padding:28px 30px 24px;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.form-eyebrow{font-size:8px;letter-spacing:.2em;color:var(--red)}.form-head h3{font-size:25px;letter-spacing:-.035em;margin:8px 0 4px}.form-head p{font-size:11px;color:var(--muted);margin:0}.form-progress{width:150px;flex:0 0 auto}.form-progress>span{display:block;text-align:right;font-size:9px;letter-spacing:.15em;color:var(--muted);margin-bottom:9px}.form-progress>div{height:2px;background:var(--line);overflow:hidden}.form-progress i{display:block;width:33.333%;height:100%;background:var(--red);transition:width .3s}.form-step{display:none;padding:30px}.form-step.active{display:block;animation:stepIn .25s ease}@keyframes stepIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.step-question{font-size:16px;font-weight:750;margin:0 0 20px}.service-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.service-picker button{appearance:none;border:1px solid var(--line);background:var(--surface2);color:var(--muted);text-align:left;padding:13px 14px;border-radius:10px;font-size:11px;cursor:pointer}.service-picker button:hover,.service-picker button.selected{border-color:var(--red);background:rgba(215,43,36,.08);color:var(--text)}.step-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px}.ghost{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:99px;padding:11px 17px;cursor:pointer}.enquiry-status{font-size:11px;margin:16px 30px 0;color:var(--muted)}.enquiry-status.success{color:#8ed6a6}.enquiry-status.error{color:#e56c65}.footer{margin-top:65px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:9px}
.service-page{min-height:100vh}.service-hero{max-width:var(--max);margin:auto;padding:80px 24px 70px;border-bottom:1px solid var(--line)}.service-back{display:inline-block;color:var(--muted);font-size:9px;letter-spacing:.14em;margin-bottom:35px}.service-title-with-icon{display:flex;align-items:center;gap:18px;font-size:clamp(44px,6vw,78px);line-height:.95;letter-spacing:-.055em;margin:24px 0}.service-title-with-icon em{font-style:normal;color:var(--red)}.service-title-icon{width:58px;height:58px;flex:0 0 auto;color:var(--red);display:grid;place-items:center}.service-title-icon svg{width:100%;height:100%;stroke:currentColor}.service-summary{max-width:720px;color:var(--muted);font-size:16px;line-height:1.75}.service-hero-actions{margin-top:28px}.service-body{max-width:var(--max);margin:auto;padding:76px 24px}.service-body-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px}.service-body p{color:var(--muted);line-height:1.8}.service-seo-copy{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:12px;background:rgba(215,43,36,.04);font-size:12px}.deliverables{display:grid;gap:9px}.deliverable{display:flex;align-items:center;gap:14px;padding:14px 15px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.deliverable b{color:var(--red);font-size:10px}.deliverable span{font-size:12px}
.floating-actions{position:fixed;right:22px;bottom:22px;z-index:1100;display:flex;flex-direction:column;gap:10px;align-items:center}.floating-action{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);color:var(--text);box-shadow:0 12px 34px rgba(0,0,0,.2);cursor:pointer;transition:.2s}.floating-action:hover{transform:translateY(-3px)}.floating-action svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.floating-whatsapp{background:#25d366;color:#fff;border-color:#25d366}.back-to-top{opacity:0;pointer-events:none;transform:translateY(8px)}.back-to-top.visible{opacity:1;pointer-events:auto;transform:none}
@media(max-width:1050px){.services{grid-template-columns:repeat(2,1fr)}.contact-actions{grid-template-columns:repeat(2,1fr)}.about-hero{grid-template-columns:1fr 1fr;gap:28px}.service-body-grid{gap:36px}}
@media(max-width:760px){:root{--header:64px}.nav{padding:0 16px}.menu{display:block}.nav nav{display:none;position:absolute;top:64px;left:12px;right:12px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:13px}.nav.open nav{display:flex}.nav-dropdown{height:auto;display:block}.nav-drop-toggle{width:100%;justify-content:space-between}.nav-submenu{position:static;width:100%;transform:none!important;margin-top:8px;display:none;opacity:1;visibility:visible;pointer-events:auto;box-shadow:none}.nav-dropdown.open .nav-submenu{display:grid}.talk{text-align:center}.about-hero{min-height:auto;padding:42px 18px 60px;display:flex;flex-direction:column;gap:26px}.about-copy{order:1}.portrait-stage{order:2;height:390px}.portrait-ring{width:min(330px,86vw)}.orbit-one{width:350px;height:350px}.orbit-two{width:378px;height:378px}.portrait-tags{display:none}.scroll-cue{right:5px;bottom:16px}.about-copy h1{font-size:52px}.role{font-size:9px}.intro{font-size:13px}.stats{gap:0;justify-content:space-between}.stats>div{width:33.333%;padding:0 10px}.stats strong{font-size:22px}.section{padding:64px 18px}.section h2,.service-body h2{font-size:38px}.services{grid-template-columns:1fr}.services article.service-card{min-height:330px}.appointment-head{display:block}.booking-badge{display:inline-flex;margin-top:18px}.booking-panel,.booking-details{padding:20px 16px}.date-grid{grid-template-columns:repeat(4,1fr)}.time-grid{grid-template-columns:repeat(2,1fr)}.booking-fields,.field-grid{grid-template-columns:1fr}.full{grid-column:auto}.booking-summary{display:block}.booking-summary strong{display:block;margin-top:7px}.contact-actions{grid-template-columns:1fr 1fr}.form-head{padding:22px 20px;display:block}.form-progress{width:100%;margin-top:18px}.form-progress>span{text-align:left}.form-step{padding:22px 20px}.service-picker{grid-template-columns:1fr 1fr}.service-hero{padding:58px 18px 50px}.service-title-with-icon{font-size:42px;gap:12px}.service-title-icon{width:40px;height:40px}.service-body{padding:56px 18px}.service-body-grid{grid-template-columns:1fr;gap:46px}.floating-actions{right:14px;bottom:14px}.floating-action{width:46px;height:46px}}
@media(max-width:480px){.contact-actions{grid-template-columns:1fr}.contact-card{min-height:160px}.service-picker{grid-template-columns:1fr}.stats small{letter-spacing:.1em}.footer{display:grid;gap:6px}.service-title-with-icon{font-size:36px}.date-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:390px){.about-copy h1{font-size:46px}.portrait-stage{height:350px}.portrait-ring{width:300px}.orbit-one{width:316px;height:316px}.orbit-two{width:340px;height:340px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portrait-stage,.portrait img,.orbit,.contact-card,.service-card,.floating-action{transition:none!important;transform:none!important}}

/* V29 — mobile navigation alignment + guaranteed Back to Top */

/* Desktop/local booking nav controls should visually behave exactly like nav links */
.nav nav .nav-local-book,
.nav nav button.nav-local-book{
  appearance:none;
  -webkit-appearance:none;
  background:transparent !important;
  border:0 !important;
  color:inherit !important;
  font:inherit !important;
  line-height:inherit !important;
  padding:0 !important;
  margin:0 !important;
  text-align:left !important;
  cursor:pointer;
}

/* Floating stack: WhatsApp at bottom, Back to Top directly above it */
.floating-actions{
  position:fixed !important;
  right:18px !important;
  bottom:18px !important;
  z-index:9999 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:10px !important;
}
.floating-action{
  flex:0 0 auto;
}
#back-to-top.back-to-top{
  display:flex !important;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transform:translateY(8px);
}
#back-to-top.back-to-top.visible{
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  transform:translateY(0) !important;
}

/* Mobile menu: every primary item occupies its own row.
   This fixes Book being pushed to the right of Services. */
@media (max-width: 820px){
  .nav nav{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
  }
  .nav nav > a,
  .nav nav > .nav-dropdown,
  .nav nav > .nav-local-book,
  .nav nav > button.nav-local-book{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:14px 0 !important;
    text-align:left !important;
  }
  .nav nav > .nav-dropdown{
    padding:0 !important;
  }
  .nav nav > .nav-dropdown > .nav-drop-toggle{
    width:100% !important;
    padding:14px 0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    text-align:left !important;
  }
  .nav nav > .talk{
    width:100% !important;
    margin-top:12px !important;
    text-align:center !important;
  }
  .floating-actions{
    right:14px !important;
    bottom:18px !important;
  }
}
