/* Shared header — mobile first */
:root { --header-ink:#f4efe4; --header-muted:#b7aea0; --header-paper:#f7f5f0; --header-dark:#171513; --header-line:rgba(244,239,228,.18); --header-accent:#bd9657; }
.site-header-shell { position:relative; z-index:1000; color:var(--header-ink); }
.utility-bar { background:#0e0d0c; color:#f4efe4; }
.utility-inner { max-width:1440px; margin:0 auto; padding:9px 20px; display:flex; justify-content:center; align-items:center; }
.utility-intro { display:none; margin:0; font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.utility-links { display:flex; flex-wrap:wrap; justify-content:center; gap:5px 16px; align-items:center; font-size:11px; letter-spacing:.08em; }
.utility-links a { color:inherit; text-decoration:none; }
.utility-links a:hover, .utility-links a:focus-visible { color:var(--header-accent); text-decoration:underline; text-underline-offset:3px; }
.navbar { background:var(--header-dark); border-bottom:1px solid var(--header-line); }
.navbar-inner { max-width:1440px; min-height:76px; margin:0 auto; padding:14px 20px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand { display:inline-flex; flex:0 0 min(196px,58vw); width:min(196px,58vw); min-width:0; }
.brand img { display:block; width:100%; height:auto; }
.hamburger { display:inline-flex; width:42px; height:42px; padding:10px 8px; border:1px solid var(--header-line); border-radius:50%; background:transparent; flex-direction:column; justify-content:center; gap:4px; cursor:pointer; }
.hamburger span:not(.sr-only) { display:block; width:24px; height:1px; background:var(--header-ink); transition:transform .25s ease,opacity .2s ease; }
.hamburger.active span:nth-child(1) { transform:translateY(5px) rotate(45deg); } .hamburger.active span:nth-child(2) { opacity:0; } .hamburger.active span:nth-child(3) { transform:translateY(-5px) rotate(-45deg); }
.hamburger:focus-visible, .nav-cta:focus-visible, .nav-links a:focus-visible, .dropdown-toggle:focus-visible { outline:2px solid var(--header-accent); outline-offset:4px; }
.nav-menu { display:none; position:absolute; top:100%; left:0; right:0; padding:14px 20px 24px; background:var(--header-dark); border-bottom:1px solid var(--header-line); box-shadow:0 18px 35px rgba(0,0,0,.28); }
.nav-menu.active { display:block; }
.nav-links { list-style:none; margin:0; padding:0; }
.nav-links li { border-bottom:1px solid var(--header-line); }
.nav-links a, .dropdown-toggle { display:flex; width:100%; padding:15px 0; color:var(--header-ink); background:none; border:0; font:500 12px/1.2 Arial,sans-serif; letter-spacing:.13em; text-align:left; text-decoration:none; text-transform:uppercase; cursor:pointer; }
.dropdown-toggle { justify-content:space-between; } .dropdown-toggle span { color:var(--header-accent); font-size:18px; line-height:10px; }
.dropdown-menu { display:none; list-style:none; margin:-2px 0 10px; padding:0 0 0 15px; }
.dropdown.active .dropdown-menu { display:block; } .dropdown-menu a { padding:11px 0; color:var(--header-muted); font-size:11px; }
.nav-cta { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; width:100%; margin-top:20px; padding:14px 16px; color:#fff; background:var(--header-accent); font:600 11px/1 Arial,sans-serif; letter-spacing:.14em; text-decoration:none; text-transform:uppercase; }
.nav-cta span { font-size:16px; } .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.search-toggle { display:inline-grid; flex:0 0 38px; place-items:center; width:38px; height:38px; padding:0; border:1px solid var(--header-line); border-radius:50%; color:var(--header-ink); background:transparent; font:26px/1 Georgia,serif; cursor:pointer; }
.search-toggle:hover, .search-toggle[aria-expanded="true"] { color:var(--header-accent); border-color:var(--header-accent); }
html, body { max-width:100%; overflow-x:hidden; }
@media (min-width:768px) {
  .utility-inner { justify-content:space-between; padding-inline:32px; } .utility-intro { display:block; } .utility-links { gap:24px; }
  .navbar-inner { padding:18px 32px; } .hamburger { display:none; }
  .nav-menu { position:static; display:flex; flex:1 1 auto; min-width:0; align-items:center; justify-content:flex-end; gap:14px; padding:0; background:transparent; border:0; box-shadow:none; }
  .nav-links { display:flex; min-width:0; align-items:center; gap:14px; } .nav-links li { border:0; }
  .nav-links a, .dropdown-toggle { position:relative; width:auto; padding:8px 0; font-size:12px; white-space:nowrap; }
  .nav-links a::after, .dropdown-toggle::after { content:""; position:absolute; right:0; bottom:0; left:0; height:1px; background:var(--header-accent); transform:scaleX(0); transform-origin:right; transition:transform .25s ease; }
  .nav-links a:hover::after, .nav-links a:focus-visible::after, .dropdown-toggle:hover::after, .dropdown-toggle:focus-visible::after { transform:scaleX(1); transform-origin:left; }
  .dropdown.active .dropdown-toggle::after { transform:scaleX(1); transform-origin:left; }
  .dropdown-toggle { gap:7px; justify-content:initial; } .dropdown-toggle span { font-size:14px; }
  .dropdown-menu { position:absolute; top:calc(100% + 17px); left:-16px; min-width:205px; margin:0; padding:9px 16px; background:var(--header-dark); border:1px solid var(--header-line); box-shadow:0 18px 30px rgba(0,0,0,.35); }
  .dropdown:focus-within .dropdown-menu, .dropdown.active .dropdown-menu { display:block; } .dropdown-menu a { padding:11px 0; }
  .nav-cta { flex:0 0 auto; width:auto; margin:0; padding:13px 15px; gap:13px; white-space:nowrap; }
  .search-toggle { width:34px; height:34px; font-size:23px; }
}
@media (min-width:768px) and (max-width:1250px) {
  .navbar-inner { padding-inline:18px; }
  .brand { flex-basis:165px; width:165px; }
  .nav-menu { gap:12px; }
  .nav-links { gap:12px; }
  .nav-links a, .dropdown-toggle { font-size:10px; letter-spacing:.08em; }
  .nav-cta { padding-inline:11px; font-size:10px; }
  .search-toggle { flex-basis:32px; width:32px; height:32px; font-size:21px; }
}
/* Search panel */
.site-search { display:none; position:absolute; top:100%; left:0; right:0; z-index:20; padding:20px; background:var(--header-dark); border-top:1px solid var(--header-line); border-bottom:1px solid var(--header-line); box-shadow:0 18px 35px rgba(0,0,0,.3); }
.site-search.is-open { display:block; }
.site-search-form { display:flex; max-width:780px; margin:0 auto; border-bottom:1px solid var(--header-line); }
.site-search-form input { flex:1; min-width:0; padding:14px 2px; border:0; outline:0; color:var(--header-ink); background:transparent; font:400 18px/1.3 Georgia,serif; }
.site-search-form input::placeholder { color:var(--header-muted); }
.search-close { width:34px; border:0; color:var(--header-ink); background:transparent; font-size:26px; cursor:pointer; }
.search-results { max-width:780px; margin:12px auto 0; }
.search-results a { display:block; padding:10px 0; color:var(--header-ink); text-decoration:none; border-bottom:1px solid rgba(244,239,228,.1); }
.search-results a:hover { color:var(--header-accent); }
.search-results small { display:block; margin-top:3px; color:var(--header-muted); font:400 11px/1.4 Arial,sans-serif; }
/* Enquiry modal */
.modal { display:none; position:fixed; inset:0; box-sizing:border-box; width:100%; height:100%; align-items:center; justify-content:center; padding:clamp(8px,2vw,20px); background:rgba(23,22,19,.72); z-index:9999; overscroll-behavior:contain; }
.modal.is-open { display:flex; }
.modal-content { position:relative; display:flex; flex-direction:column; box-sizing:border-box; width:min(100%,580px); max-height:min(78vh,640px); max-height:min(78dvh,640px); overflow:hidden; border-radius:8px; color:#171613; background:var(--header-paper); box-shadow:0 25px 80px rgba(0,0,0,.28); text-align:center; }
.modal-content__header { position:relative; display:flex; flex:0 0 54px; align-items:center; justify-content:center; padding:0 70px; text-align:center; }
.modal-content__header .eyebrow { margin:0; }
.modal-content__body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 clamp(18px,4vw,32px) 24px; scrollbar-gutter:stable; }
.modal-content__body h2 { margin:2px 0 8px; font:400 clamp(24px,3.6vw,32px)/1.1 Georgia,serif; }
.modal-content__body > p { margin:0 0 14px; color:#6c655c; font:400 13px/1.5 Arial,sans-serif; }
.eyebrow { margin:0 0 9px; color:var(--header-accent); font:600 10px/1 Arial,sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.close-btn { position:absolute; top:8px; right:12px; display:flex; min-width:78px; min-height:40px; align-items:center; justify-content:center; gap:5px; padding:0 10px; border:1px solid #d9d1c6; border-radius:999px; color:#171613; background:#fffdf9; box-shadow:0 2px 8px rgba(23,22,19,.08); font:600 11px/1 Arial,sans-serif; cursor:pointer; transition:background-color .18s ease, border-color .18s ease; }
.close-btn span:first-child { font:400 21px/1 Arial,sans-serif; }
.close-btn:hover { border-color:#b9aa98; background:#eee8de; }
.modal-enquiry-form { display:grid; gap:10px; text-align:left; }
.modal-row { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
.modal-field { display:grid; min-width:0; align-content:start; gap:6px; }
.modal-field--wide { grid-column:1 / -1; }
.modal-field label { color:#38332e; font:700 12px/1.4 Arial,sans-serif; }
.modal-required { color:#9f4738; }
.modal-content input:not([type="checkbox"]), .modal-content select, .modal-content textarea { box-sizing:border-box; width:100%; min-width:0; min-height:42px; margin:0; padding:10px 11px; border:1px solid #d9d1c6; border-radius:3px; color:#25211e; background:#fff; font:400 13px/1.4 Arial,sans-serif; }
.modal-content input:focus-visible, .modal-content textarea:focus-visible { border-color:var(--header-accent); outline:2px solid rgba(189,150,87,.24); outline-offset:1px; }
.modal-content textarea { min-height:62px; resize:vertical; }
.modal-content__body > h2, .modal-content__body > p { text-align:center; }
.modal-phone-input { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:stretch; min-width:0; border:1px solid #d9d1c6; background:#fff; }
.modal-phone-input:focus-within { border-color:var(--header-accent); box-shadow:0 0 0 2px rgba(189,150,87,.2); }
.modal-phone-prefix { display:flex; align-items:center; padding:0 11px; border-right:1px solid #e1d9cf; color:#38332e; font:600 13px/1 Arial,sans-serif; }
.modal-phone-input input { border:0 !important; outline:0 !important; box-shadow:none !important; }
.modal-field-hint { color:#81796f; font:400 10px/1.4 Arial,sans-serif; }
.modal-consent { display:grid; grid-template-columns:16px minmax(0,1fr); align-items:start; justify-content:start; gap:9px; width:100%; min-width:0; box-sizing:border-box; color:#6c655c; font:400 11px/1.5 Arial,sans-serif; text-align:left; }
.modal-consent span { display:block; min-width:0; overflow-wrap:anywhere; }
.modal-consent input { display:block; width:16px; min-width:16px; max-width:16px; height:16px; padding:0; flex:none; margin:2px 0 0; accent-color:#9f4738; }
.modal-consent a, .modal-form-feedback a { color:#9f4738; }
.submit-btn { display:flex; width:100%; min-height:44px; align-items:center; justify-content:space-between; gap:12px; margin-top:2px; padding:12px 14px; border:0; border-radius:3px; color:#fff; background:#171513; font:600 11px/1.3 Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.submit-btn:hover { background:#9f4738; }
.modal-form-feedback { display:grid; gap:10px; padding:13px; border:1px solid #d9ccae; background:#f7f2e7; }
.modal-form-feedback[hidden] { display:none; }
.modal-form-feedback p { margin:0 !important; }
.modal-form-feedback a { font:700 11px/1.5 Arial,sans-serif; }
.close-btn:focus-visible, .submit-btn:focus-visible { outline:3px solid #9f4738; outline-offset:3px; }
@media (min-width:560px) { .modal-row { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:440px) { .modal { padding:8px; } .modal-content { max-height:min(78vh,640px); max-height:min(78dvh,640px); border-radius:6px; } .modal-content__header { flex-basis:48px; padding-inline:56px; } .close-btn { top:5px; right:8px; min-width:72px; min-height:38px; padding-inline:8px; } .modal-content__body { padding:0 14px 16px; } .modal-content__body h2 { font-size:24px; } }
/* Floating WhatsApp action */
#whatsapp-chat-wrapper { position:fixed; right:18px; bottom:18px; z-index:9998; display:flex; align-items:center; gap:10px; text-decoration:none; }
#whatsapp-chat-btn { position:relative; display:grid; place-items:center; flex:0 0 auto; width:60px; height:60px; border:2px solid #fff; border-radius:50%; background:#25d366; box-shadow:0 8px 20px rgba(0,0,0,.18); transition:transform .2s ease, background .2s ease; }
#whatsapp-chat-btn::before { content:""; position:absolute; inset:-5px; border:2px solid rgba(37,211,102,.62); border-radius:inherit; pointer-events:none; animation:whatsappPulse 2.2s ease-out infinite; }
#whatsapp-chat-btn:hover { transform:translateY(-2px); background:#1fbd5a; }
#whatsapp-chat-wrapper:focus-visible { outline:3px solid #171513; outline-offset:5px; border-radius:999px; }
#whatsapp-chat-btn img { width:30px; height:30px; filter:brightness(0) invert(1); }
#whatsapp-tooltip { display:block; padding:8px 11px; color:#171513; background:#fff; border-radius:4px; box-shadow:0 5px 18px rgba(0,0,0,.12); font:600 11px Arial,sans-serif; white-space:nowrap; }
@keyframes whatsappPulse { 0% { transform:scale(.92); opacity:.72; } 70%,100% { transform:scale(1.3); opacity:0; } }
@media (prefers-reduced-motion: reduce) { #whatsapp-chat-btn, #whatsapp-chat-btn::before { animation:none; transition:none; } }

/* Compatibility layer for the older global navigation rules in style.css. */
#include-header .site-header-shell .navbar { background:var(--header-dark) !important; }
#include-header .site-header-shell .nav-menu { background:var(--header-dark) !important; }
#include-header .site-header-shell .nav-links { display:block; }
#include-header .site-header-shell .nav-links a,
#include-header .site-header-shell .nav-links a:visited { color:var(--header-ink) !important; }
#include-header .site-header-shell .nav-links a:hover { color:var(--header-ink) !important; background:transparent !important; }

@media (max-width:767px) {
  #include-header .site-header-shell .navbar-inner { min-height:68px; padding:12px 16px; }
  #include-header .site-header-shell .brand { flex:0 0 min(190px, calc(100% - 82px)); width:min(190px, calc(100% - 82px)); }
  #include-header .site-header-shell .hamburger { width:auto; min-width:82px; height:40px; padding:0 12px; border-radius:999px; flex-direction:row; align-items:center; gap:8px; }
  #include-header .site-header-shell .hamburger::after { content:"Menu"; color:var(--header-ink); font:600 10px/1 Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
  #include-header .site-header-shell .hamburger.active::after { content:"Close"; }
  #include-header .site-header-shell .nav-menu { max-height:calc(100dvh - 112px); overflow-y:auto; overscroll-behavior:contain; animation:headerPanelIn .22s ease-out both; }
  #include-header .site-header-shell .hamburger { display:inline-flex !important; }
  #include-header .site-header-shell .nav-menu { display:none !important; }
  #include-header .site-header-shell .nav-menu.active { display:block !important; }
  #include-header .site-header-shell .nav-links { display:block !important; flex-direction:column; align-items:stretch; }
  #include-header .site-header-shell .nav-links li { margin:0 !important; }
  #include-header .site-header-shell .nav-links a,
  #include-header .site-header-shell .dropdown-toggle { color:var(--header-ink) !important; text-align:left; }
  #include-header .site-header-shell .dropdown-menu,
  #include-header .site-header-shell .dropdown:hover .dropdown-menu { position:static !important; display:none !important; margin:0 !important; padding:0 0 8px 15px !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
  #include-header .site-header-shell .dropdown.active .dropdown-menu { display:block !important; }
  #include-header .site-header-shell .dropdown-menu a { color:var(--header-muted) !important; background:transparent !important; }
  #include-header .site-header-shell .nav-links li:last-child { border-bottom:0; }
  #include-header .site-header-shell .search-toggle { display:inline-grid !important; width:42px; height:40px; margin:0; border-radius:50%; font-size:24px; }
}

@media (min-width:768px) {
  #include-header .site-header-shell .nav-menu { display:flex !important; }
  #include-header .site-header-shell .nav-links { display:flex !important; flex-direction:row; }
  #include-header .site-header-shell .dropdown:hover .dropdown-menu { display:none !important; }
  #include-header .site-header-shell .dropdown.active .dropdown-menu,
  #include-header .site-header-shell .dropdown:focus-within .dropdown-menu { display:block !important; }
  #include-header .site-header-shell .dropdown-menu a { color:var(--header-muted) !important; background:transparent !important; }
}

@keyframes headerPanelIn {
  from { opacity:0; transform:translateY(-8px); }
  to { opacity:1; transform:translateY(0); }
}
