:root{--ink:#3a3c3b;--muted:#5a5c5b;--paper:#fdfcfb;--line:#e6e6e6;--accent:#f58220}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}a{color:inherit;text-underline-offset:5px}header{padding:28px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-weight:800;letter-spacing:2px;font-size:24px;text-decoration:none;line-height:1}.brand span{color:#f58220}.brand small{display:block;font-size:9px;letter-spacing:5px;margin-top:10px}nav{display:flex;gap:32px;align-items:center}nav>a{text-decoration:none}main{min-height:75vh}footer{border-top:1px solid var(--line);padding:30px 6%;display:flex;gap:28px;justify-content:space-between;font-size:12px;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-weight:400;letter-spacing:-3px;font-size:clamp(42px,6vw,82px);line-height:1.08;max-width:900px}h2{font-size:36px;font-weight:400;letter-spacing:-1px;line-height:1.2}h3{font-size:22px;font-weight:500;line-height:1.25}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:3px;font-weight:700;margin-bottom:24px}.intro{padding:80px 8% 60px}.intro p{max-width:610px;color:var(--muted)}.button,button{display:inline-block;background:var(--ink);color:white;border:1px solid var(--ink);border-radius:0;text-decoration:none;padding:15px 24px;font:inherit;font-size:14px;cursor:pointer}.button.secondary,button.secondary{background:transparent;color:var(--ink)}.small{padding:10px 18px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:0 8% 80px}.panel{background:white;padding:36px;border:1px solid var(--line)}.company{padding:60px 8%;border-top:1px solid var(--line);display:grid;grid-template-columns:90px 1fr 1fr;gap:30px;scroll-margin-top:20px}.company .number{font-size:14px;color:var(--muted)}.company p{color:var(--muted)}.company .tag{font-size:26px;line-height:1.35}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:25px}label{display:block;font-size:13px;margin-bottom:18px}input,select,textarea{display:block;width:100%;background:var(--paper);border:1px solid var(--line);padding:13px;font:inherit;color:var(--ink);margin-top:6px}textarea{min-height:100px;resize:vertical}input[type=checkbox]{display:inline;width:auto;margin:0 8px 0 0}.checks label{display:flex;align-items:center;margin:10px 0}.muted,small{color:var(--muted)}.note{padding:18px;border-left:3px solid var(--accent);background:#f8f4ef;font-size:13px}.slots{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.slots button{background:white;color:var(--ink);font-size:12px;padding:12px}.slots button.selected{background:var(--ink);color:white}.guest{border-top:1px solid var(--line);padding-top:15px;display:grid;grid-template-columns:1fr 1fr auto;gap:10px}.hero{min-height:76vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:60px 8%;color:white;background:linear-gradient(#0008,#0008),url('https://g-green.co.za/images/1920%2CB5/28086087/blurred-sunset-view-mirrored-through-eyeglasses-capturing-a-unique-perspective-on-a-serene-landscape-BfjG8LpiY23XeSRMKLxURA.jpeg') center/cover}.hero h1{font-size:30px;letter-spacing:0;line-height:1.4;max-width:780px}.hero img{width:102px;margin-bottom:30px}.hero hr{width:50%;margin:30px auto}.hero a{font-size:14px}.hero .links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.admin{padding:40px 6%}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.admin article{border:1px solid var(--line);padding:25px;margin-bottom:15px;background:white}.admin details{margin-bottom:20px}.badge{display:inline-block;font-size:11px;letter-spacing:1px;text-transform:uppercase;background:var(--accent);padding:5px 9px}.error{color:#a02621}.status-banner{background:#fff3d4;padding:15px;font-size:13px}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:15px 25px;max-width:90%;display:none;z-index:3}table{width:100%;border-collapse:collapse;font-size:12px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:10px;overflow-wrap:anywhere}.overflow{overflow:auto}button:disabled{opacity:.5;cursor:wait}:focus-visible{outline:3px solid #4e79a7;outline-offset:3px}@media(max-width:750px){header{padding:22px 5%}nav{gap:15px;font-size:12px}.brand{font-size:18px}nav .button{padding:10px}.intro{padding:55px 6% 35px}h1{letter-spacing:-2px}.grid,.admin-grid{grid-template-columns:1fr}.grid{padding:0 6% 50px;gap:20px}.panel{padding:24px}.company{grid-template-columns:35px 1fr;padding:35px 6%;gap:15px}.company>div:last-child{grid-column:2}.guest{grid-template-columns:1fr}.slots{grid-template-columns:1fr}footer{flex-wrap:wrap}.hero .links{flex-direction:column}}

/* Brand extension of the live homepage: original imagery, orange, charcoal, off-white and blue. */
header{background:#212222;color:#fdfcfb;border-bottom:1px solid #ffffff24;padding:20px 6%;gap:24px}
.brand{display:flex;align-items:center;gap:18px;text-decoration:none;letter-spacing:0;font-size:19px;font-weight:500;line-height:1.3}
.brand img{display:block;width:72px;height:72px;object-fit:contain;flex-shrink:0}
.brand-label{display:block;color:#fdfcfb}
.brand .brand-label small{font-size:8px;letter-spacing:2px;margin-top:6px;color:#dfdfdf}
header nav{gap:28px}header nav>a{color:#fdfcfb;font-size:13px}header nav>a:hover{color:#f58220}
header .button{background:transparent;border:1px solid #f58220;color:#fdfcfb;padding:11px 26px}
header .button:hover{background:#f58220;color:#212222}
.intro{position:relative;background:linear-gradient(90deg,rgba(0,0,0,.77),rgba(0,0,0,.53)),url('/assets/homepage-sunset.jpg') center 48%/cover;color:#fdfcfb;padding:68px 8% 60px;margin-bottom:52px}
.intro h1{font-size:clamp(38px,4.8vw,66px);font-weight:400;letter-spacing:-1.5px;line-height:1.15;max-width:880px;margin-bottom:22px;color:#fdfcfb}
.intro .eyebrow{color:#f58220;letter-spacing:2.5px}
.intro p{color:#fdfcfb;opacity:.92;max-width:660px;margin-bottom:0}
h2{font-weight:400;color:#3a3c3b;font-size:32px;letter-spacing:-.6px}
h3{color:#3a3c3b}.company{padding:52px 8%;grid-template-columns:70px 1fr 1.1fr}.company .number{color:#4e79a7}.company .tag{font-size:23px;font-weight:400}
.company h2:after{content:'';display:block;width:44px;height:2px;background:#f58220;margin-top:18px}
.panel{background:#fff;border:1px solid #e6e6e6;box-shadow:0 8px 30px #00000004}
.button,button{background:#3a3c3b;border-color:#3a3c3b;transition:background .15s,border-color .15s,color .15s}
.button:hover,button:hover{background:#212222;border-color:#f58220;color:#fff}
.button.secondary,button.secondary{color:#3a3c3b;background:transparent;border-color:#cacccb}
.button.secondary:hover,button.secondary:hover{background:#f8f4ef;border-color:#f58220}
.note{background:#f8f4ef;border-left-color:#f58220;color:#3a3c3b}
input,select,textarea{background:#fdfcfb;border-color:#dfdfdf}input[type=checkbox]{accent-color:#4e79a7}
.slots button{border-color:#dfdfdf;color:#3a3c3b}.slots button:hover{background:#f8f4ef;border-color:#f58220;color:#3a3c3b}
.slots button.selected{background:#3a3c3b;border-color:#f58220;color:#fdfcfb}
.badge{background:#f8e5d3;color:#3a3c3b}.eyebrow{color:#5a5c5b}
.actions>a:not(.button),.panel>a:not(.button){color:#3e6084}
footer{background:#212222;color:#fdfcfb;border-top:none;padding:28px 6%}footer a{color:#fdfcfb}footer a:hover{color:#f58220}
.admin h1{font-size:clamp(40px,5vw,66px);letter-spacing:-1.5px}.status-banner{border-left:3px solid #f58220;background:#f8f4ef;color:#3a3c3b}
#notice{background:#212222;border-left:3px solid #f58220}
@media(max-width:750px){header{padding:16px 5%;gap:15px}.brand{gap:10px}.brand img{width:52px;height:52px}.brand-label{font-size:14px}.brand .brand-label small{font-size:6px;letter-spacing:1px;max-width:145px}header nav{gap:14px}header nav>a{font-size:11px}header .button{padding:9px 16px}.intro{padding:48px 6% 40px;margin-bottom:30px}.intro h1{letter-spacing:-.6px}.company{grid-template-columns:30px 1fr;padding:35px 6%;gap:15px}.company>div:last-child{grid-column:2}}
@media(max-width:420px){.brand-label{max-width:125px;font-size:12px}.brand .brand-label small{letter-spacing:.5px}header nav{gap:10px}header .button{padding:8px 12px}}
