:root{
    --accent:#176b52;
    --ink:#203d34;
    --paper:#faf9f5;
    --muted:#66736b;
    --line:#dedfd5;
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    color:var(--ink);
    background:var(--paper);
    font-family:Arial,Helvetica,sans-serif;
    font-size:16px;
    line-height:1.6;
}

a{
    color:inherit;
    text-decoration:none;
}

button,input,textarea,select{
    font:inherit;
}

button,a,input,textarea,select{
    -webkit-tap-highlight-color:transparent;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
    outline:3px solid #bb7000;
    outline-offset:4px;
}

img{
    max-width:100%;
    display:block;
}

.wrap{
    width:min(1180px,calc(100% - 80px));
    margin-inline:auto;
}


/* =========================
   TOP BAR
========================= */

.topbar{
    background:#e9eee5;
    font-size:11px;
    letter-spacing:.04em;
    padding:9px 0;
}

.topbar .wrap{
    display:flex;
    justify-content:space-between;
}


/* =========================
   HEADER
========================= */

.header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    padding-block:18px;
}

.brand{
    display:flex;
    align-items:center;
    gap:12px;
    font-size:23px;
    letter-spacing:-1px;
    font-weight:750;
    line-height:1.2;
    flex-shrink:0;
}

/* BIGGER WEBSITE LOGO */
.brand img{
    width:auto;
    height:68px;
    max-width:280px;
    object-fit:contain;
    object-position:left center;
    flex-shrink:0;
}

.brand-icon{
    display:grid;
    place-items:center;
    color:white;
    background:var(--accent);
    width:38px;
    height:38px;
    border-radius:12px 12px 12px 0;
}

.header nav{
    display:flex;
    gap:28px;
    font-size:13px;
}

.header nav a{
    padding:7px 0;
    color:#59665e;
}

.header nav a[aria-current]{
    color:var(--ink);
    border-bottom:2px solid var(--accent);
}


/* =========================
   BUTTONS
========================= */

.button{
    border:0;
    border-radius:7px;
    padding:15px 22px;
    background:var(--accent);
    color:white;
    display:inline-flex;
    gap:24px;
    justify-content:center;
    align-items:center;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    min-height:46px;
}

.button:hover{
    filter:brightness(.92);
}

.small{
    padding:10px 17px;
}


/* =========================
   HERO
========================= */

.hero{
    display:grid;
    grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
    gap:55px;
    align-items:center;
    padding-top:55px;
    padding-bottom:75px;
}

.hero-copy{
    min-width:0;
}

.eyebrow{
    font-size:11px;
    font-weight:bold;
    letter-spacing:2px;
    display:flex;
    align-items:center;
    gap:9px;
}

.eyebrow>span:not(.brand-dot){
    display:block;
    width:7px;
    height:7px;
    background:var(--accent);
    border-radius:50%;
}

h1{
    font-family:Georgia,'Times New Roman',serif;
    font-weight:400;
    font-size:clamp(40px,4.6vw,68px);
    line-height:1.05;
    letter-spacing:-2.5px;
    white-space:pre-line;
    margin:25px 0;
}

h2{
    font-family:Georgia,'Times New Roman',serif;
    font-weight:400;
    font-size:42px;
    line-height:1.15;
    letter-spacing:-1.3px;
    margin:14px 0 24px;
}

h3{
    font-size:20px;
    line-height:1.3;
    letter-spacing:-.5px;
}

.lead{
    color:var(--muted);
    font-size:16px;
    max-width:480px;
    white-space:pre-line;
}

.actions{
    display:flex;
    align-items:center;
    gap:25px;
    margin-top:30px;
}

.text-link{
    font-size:13px;
    font-weight:bold;
}

.hero-note{
    font-size:11px;
    color:var(--muted);
    margin-top:30px;
    display:flex;
    align-items:center;
    gap:8px;
}

.dot{
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--accent);
}


/* =========================
   HERO IMAGE
========================= */

/*
   Important:
   - rectangular 16:9 box
   - complete image visible
   - no cropping
*/

.hero-visual{
    width:100%;
    height:auto;
    aspect-ratio:16 / 9;
    border-radius:14px;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f2f3ef;
    min-width:0;
}

.hero-visual>img{
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
    object-position:center;
}


/* =========================
   DEFAULT ILLUSTRATION
========================= */

.illustration{
    position:relative;
    background:#e6e8da;
    isolation:isolate;
}

.sun{
    width:125px;
    height:125px;
    background:#e5c98c;
    border-radius:50%;
    position:absolute;
    top:29px;
    right:25px;
}

.window{
    position:absolute;
    width:130px;
    height:280px;
    left:25px;
    top:30px;
    border:2px solid #d1d7c5;
    border-radius:80px 80px 0 0;
}

.shop{
    position:absolute;
    inset:100px 45px 58px;
    background:#efdcc3;
    box-shadow:12px 15px 0 #18392b18;
}

.shop-sign{
    height:54px;
    text-align:center;
    display:grid;
    place-items:center;
    font-weight:bold;
    color:var(--ink);
    font-family:Georgia,serif;
    font-size:24px;
    overflow:hidden;
    padding-inline:12px;
}

.awning{
    height:30px;
    background:repeating-linear-gradient(
        90deg,
        #295b47 0 28px,
        #fbf1da 28px 56px
    );
    border-radius:0 0 7px 7px;
    position:relative;
    margin:0 -10px;
}

.shop-front{
    display:flex;
    gap:15px;
    padding:20px;
    height:calc(100% - 84px);
}

.shop-door{
    border:6px solid #3b6051;
    background:#adc4b2;
    width:35%;
    display:grid;
    place-items:center;
}

.shop-door span{
    text-align:center;
    transform:rotate(-6deg);
    background:#fff9e8;
    font-size:7px;
    padding:10px 4px;
    font-weight:700;
}

.shop-window{
    border:6px solid #3b6051;
    background:#d6dfca;
    flex:1;
    display:grid;
    place-items:center;
    font-family:Georgia,serif;
    line-height:1.2;
    text-align:center;
    font-size:24px;
}

.visual-note{
    position:absolute;
    bottom:22px;
    left:24px;
    background:#fffdf5;
    box-shadow:0 6px 20px #34443815;
    border-radius:8px;
    display:flex;
    align-items:center;
    gap:16px;
    padding:16px 20px;
    font-size:12px;
    line-height:1.5;
}

.visual-note>span{
    background:#ecf0df;
    color:var(--accent);
    border-radius:50%;
    width:35px;
    height:35px;
    display:grid;
    place-items:center;
    font-size:22px;
}

.plant{
    position:absolute;
    right:16px;
    bottom:38px;
    width:36px;
    height:50px;
    background:#b77955;
    border-radius:3px 3px 15px 15px;
}

.plant:before,
.plant:after{
    content:'';
    position:absolute;
    width:28px;
    height:64px;
    background:#477757;
    border-radius:100% 0 100% 0;
    bottom:42px;
    left:1px;
    transform:rotate(-23deg);
}

.plant:after{
    transform:rotate(30deg);
    left:16px;
    background:#60815b;
}


/* =========================
   TRUST STRIP
========================= */

.trust-strip{
    border-block:1px solid var(--line);
    background:#f1f2e9;
}

.trust-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    padding-block:27px;
    gap:36px;
}

.trust-grid>div{
    position:relative;
    padding-left:42px;
}

.trust-grid span{
    position:absolute;
    left:0;
    top:1px;
    font-family:Georgia,serif;
    font-size:22px;
    color:#899480;
}

.trust-grid strong{
    font-size:14px;
}

.trust-grid p{
    font-size:12px;
    margin:3px 0;
    color:var(--muted);
}


/* =========================
   SECTIONS
========================= */

.section{
    padding-block:65px;
}

.section-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:23px;
}

.cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.card{
    border:1px solid var(--line);
    border-radius:9px;
    padding:26px;
    background:#fffefa;
}

.card p{
    color:var(--muted);
    font-size:14px;
}

.service-number{
    display:flex;
    justify-content:space-between;
    color:var(--accent);
    font-family:Georgia,serif;
    font-size:30px;
    border-bottom:1px solid var(--line);
    padding-bottom:24px;
}

.service-number span{
    font-family:Arial;
    font-size:23px;
}

.card-image{
    aspect-ratio:1.6;
    object-fit:cover;
    border-radius:5px;
    width:100%;
}

.card .text-link{
    display:inline-block;
    margin-top:18px;
}


/* =========================
   CTA
========================= */

.cta{
    background:#214b3c;
    color:#fffdf1;
    border-radius:12px;
    padding:42px 50px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:20px;
    margin-bottom:60px;
}

.cta h2{
    margin-bottom:5px;
}

.light{
    background:#e8edbe;
    color:#203d34;
}


/* =========================
   FOOTER
========================= */

.footer{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:30px;
    padding-bottom:35px;
}

.footer p{
    font-size:12px;
    color:var(--muted);
}

.footer>div:nth-child(2){
    display:flex;
    gap:24px;
    font-size:12px;
    padding-top:8px;
}

.copyright{
    width:100%;
    border-top:1px solid var(--line);
    padding-top:20px;
    font-size:11px;
    color:var(--muted);
}

.brand-dot{
    color:var(--accent);
}


/* =========================
   WHATSAPP
========================= */

.whatsapp{
    position:fixed;
    right:22px;
    bottom:20px;
    background:#176b42;
    color:white;
    border-radius:30px;
    padding:12px 19px;
    font-size:13px;
    box-shadow:0 4px 15px #0002;
    z-index:3;
}


/* =========================
   INNER PAGES
========================= */

.inner-hero{
    padding-block:55px 20px;
    grid-template-columns:1.2fr 1fr;
}

.inner-hero:not(:has(.hero-visual)){
    display:block;
}

.inner-hero .lead{
    max-width:680px;
}

.about-panel{
    background:#eceee2;
    border-radius:10px;
    padding:42px;
}


/* =========================
   GALLERY
========================= */

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

.gallery-item{
    margin:0;
}

.gallery-item img{
    width:100%;
    aspect-ratio:1.2;
    object-fit:cover;
    border-radius:9px;
}

.gallery-item p{
    font-size:14px;
    color:var(--muted);
}

.empty{
    grid-column:1/-1;
    background:#eceee2;
    border-radius:10px;
    padding:45px;
}


/* =========================
   CONTACT
========================= */

.contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
}

.contact-grid h2{
    font-size:34px;
}

.contact-details dt{
    font-size:10px;
    letter-spacing:1.5px;
    color:var(--muted);
    margin-top:24px;
}

.contact-details dd{
    margin:4px 0;
    white-space:pre-line;
    overflow-wrap:anywhere;
}

.contact-form{
    background:white;
    border:1px solid var(--line);
    padding:30px;
    border-radius:12px;
}

.contact-form h3{
    margin-top:0;
}

label{
    display:block;
    font-size:13px;
    font-weight:600;
    margin:16px 0 6px;
}

input,
textarea,
select{
    width:100%;
    border:1px solid #c9cec5;
    background:#fffefa;
    border-radius:5px;
    padding:11px;
    color:var(--ink);
}

textarea{
    resize:vertical;
}

.form-note{
    font-size:12px;
    color:var(--muted);
}

.contact-form .button{
    width:100%;
}

.map{
    border:0;
    width:100%;
    height:250px;
    margin-top:20px;
    border-radius:8px;
}

.honeypot{
    position:absolute;
    left:-10000px;
}

.notice,
.error{
    padding:12px 16px;
    border-radius:6px;
    font-size:14px;
    margin-block:16px;
}

.notice{
    background:#e3f1e4;
    color:#175225;
}

.error{
    background:#fce8e5;
    color:#8a1c15;
}

.error p{
    margin:3px 0;
}

.muted{
    color:var(--muted);
}

.preserve{
    white-space:pre-line;
}

.menu-toggle{
    display:none;
}

.skip{
    position:absolute;
    top:-100px;
    left:10px;
    background:white;
    padding:12px;
    z-index:10;
}

.skip:focus{
    top:10px;
}


/* =========================
   ADMIN
========================= */

.admin-body{
    background:#f2f4ef;
}

.admin-shell{
    display:grid;
    grid-template-columns:225px 1fr;
    min-height:100vh;
}

.sidebar{
    padding:32px 22px;
    background:#203d34;
    color:#f8f8ef;
}

.sidebar .brand{
    font-size:21px;
    margin-bottom:10px;
}

.sidebar .muted{
    color:#c5d2c8;
    font-size:12px;
}

.sidebar nav{
    display:grid;
    gap:5px;
    margin:35px 0;
}

.sidebar nav a{
    padding:10px 13px;
    border-radius:5px;
    font-size:14px;
}

.sidebar nav a:hover{
    background:#ffffff15;
}

.sidebar .button{
    width:100%;
    background:#ffffff15;
}

.admin-main{
    padding:45px;
    max-width:1300px;
    width:100%;
    min-width:0;
}

.admin-main h1{
    font-family:Arial,sans-serif;
    font-size:32px;
    letter-spacing:-1px;
    font-weight:600;
    margin:0 0 10px;
    white-space:normal;
}

.admin-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:30px;
}

.panel{
    padding:28px;
    background:white;
    border:1px solid var(--line);
    border-radius:10px;
    margin-bottom:22px;
}

.stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}

.stats strong{
    font-size:35px;
    display:block;
}

.stats span{
    font-size:13px;
    color:var(--muted);
}

.form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 24px;
}

.full{
    grid-column:1/-1;
}

.check{
    display:flex;
    gap:10px;
    align-items:center;
}

.check input{
    width:auto;
}

.admin-image{
    height:150px;
    max-width:260px;
    object-fit:contain;
    margin-block:14px;
}

.list-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding-block:18px;
    border-bottom:1px solid var(--line);
}

.list-row:last-child{
    border:0;
}

.badge{
    font-size:11px;
    background:#edf0e7;
    padding:4px 9px;
    border-radius:20px;
}

.danger{
    background:#973a30;
}

.inline-form{
    display:flex;
    align-items:end;
    gap:14px;
}

.inline-form>div{
    flex:1;
}

.inline-form .button{
    flex-shrink:0;
}

.enquiry-head{
    display:flex;
    justify-content:space-between;
    gap:20px;
}

.enquiry-head h3{
    margin:0;
}

.enquiry-actions{
    display:flex;
    gap:20px;
    align-items:end;
}

.enquiry-actions form:first-child{
    display:flex;
    gap:12px;
    align-items:end;
}

.enquiry-actions select{
    width:auto;
}

.pagination{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-block:24px;
    font-size:14px;
}

.login-body{
    min-height:100vh;
    display:grid;
    place-items:center;
    background:#edf0e6;
    padding:24px;
}

.login-card{
    width:min(430px,100%);
    padding:38px;
    background:white;
    border-radius:14px;
    border:1px solid var(--line);
}

.login-card h1{
    font-size:35px;
    letter-spacing:-1px;
}

.login-card .button{
    width:100%;
    margin-top:24px;
}

.help{
    font-size:12px;
    color:var(--muted);
    margin-top:5px;
}

.save-row{
    display:flex;
    gap:16px;
    align-items:center;
    margin-top:25px;
}


/* =========================
   TABLET
========================= */

@media(max-width:1000px){

    .wrap{
        width:calc(100% - 44px);
    }

    .header{
        gap:15px;
    }

    .header nav{
        gap:16px;
    }

    .header-cta{
        display:none;
    }

    .brand img{
        height:58px;
        max-width:230px;
    }

    .hero{
        grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
        gap:30px;
    }

    .hero-visual{
        width:100%;
        height:auto;
        aspect-ratio:16 / 9;
    }

    .hero-visual>img{
        width:100%;
        height:100%;
        object-fit:contain;
    }

    .actions{
        flex-direction:column;
        align-items:start;
        gap:15px;
    }

    .shop{
        inset:90px 30px 58px;
    }

    .shop-window{
        font-size:19px;
    }

    .contact-grid{
        gap:35px;
    }

    .admin-main{
        padding:25px;
    }

    .admin-shell{
        grid-template-columns:190px 1fr;
    }
}


/* =========================
   MOBILE
========================= */

@media(max-width:700px){

    .wrap{
        width:calc(100% - 36px);
    }

    .topbar .wrap span:last-child{
        display:none;
    }

    .header{
        flex-wrap:wrap;
        padding-block:16px;
    }

    .brand{
        font-size:19px;
        gap:9px;
    }

    .brand img{
        width:auto;
        height:48px;
        max-width:190px;
        object-fit:contain;
    }

    .menu-toggle{
        display:block;
        border:1px solid var(--line);
        border-radius:5px;
        padding:8px 12px;
        background:transparent;
        font-size:13px;
    }

    .header nav{
        display:none;
        width:100%;
        padding-block:10px;
        flex-wrap:wrap;
    }

    .header nav.open{
        display:flex;
    }

    .hero,
    .inner-hero{
        grid-template-columns:1fr;
        padding-top:30px;
        padding-bottom:40px;
        gap:35px;
    }

    h1{
        font-size:48px;
        letter-spacing:-1.8px;
    }

    .hero-visual{
        width:100%;
        height:auto;
        aspect-ratio:16 / 9;
        border-radius:10px;
    }

    .hero-visual>img{
        width:100%;
        height:100%;
        object-fit:contain;
        object-position:center;
    }

    .actions{
        flex-direction:row;
        flex-wrap:wrap;
        align-items:center;
    }

    .trust-grid{
        grid-template-columns:1fr;
        gap:20px;
        padding-block:24px;
    }

    .section{
        padding-block:40px;
    }

    .section-heading{
        align-items:start;
        gap:15px;
    }

    .section-heading h2,
    h2{
        font-size:33px;
    }

    .section-heading>.text-link{
        padding-top:20px;
        max-width:85px;
    }

    .cards,
    .gallery-grid{
        grid-template-columns:1fr;
    }

    .cta{
        padding:30px;
        display:block;
        margin-bottom:40px;
    }

    .cta .button{
        margin-top:25px;
    }

    .footer{
        display:block;
        padding-bottom:80px;
    }

    .footer>div:nth-child(2){
        padding-block:15px;
    }

    .copyright{
        margin-top:20px;
    }

    .contact-grid{
        grid-template-columns:1fr;
        gap:25px;
    }

    .contact-form{
        padding:22px;
    }

    .admin-shell{
        display:block;
    }

    .sidebar{
        padding:18px;
    }

    .sidebar nav{
        display:flex;
        overflow-x:auto;
        margin:15px 0;
        gap:5px;
    }

    .sidebar nav a{
        white-space:nowrap;
    }

    .sidebar .muted{
        display:none;
    }

    .sidebar form{
        display:inline-block;
    }

    .sidebar .button{
        padding:7px 15px;
        min-height:35px;
    }

    .admin-main{
        padding:22px 16px;
    }

    .admin-top{
        align-items:start;
    }

    .admin-top .text-link{
        white-space:nowrap;
    }

    .stats{
        grid-template-columns:1fr;
        gap:0;
    }

    .stats .panel{
        padding:18px;
    }

    .form-grid{
        grid-template-columns:1fr;
    }

    .panel{
        padding:20px;
    }

    .inline-form{
        flex-wrap:wrap;
    }

    .inline-form>div{
        flex-basis:100%;
    }

    .enquiry-actions{
        flex-wrap:wrap;
    }

    .enquiry-head{
        display:block;
    }

    .login-card{
        padding:28px;
    }
}


/* =========================
   SMALL MOBILE
========================= */

@media(max-width:480px){

    .brand img{
        height:44px;
        max-width:165px;
    }

    .brand{
        font-size:17px;
    }

    h1{
        font-size:42px;
    }

    .hero{
        gap:28px;
    }

    .hero-visual{
        aspect-ratio:16 / 9;
    }
}

/* FINAL HEADER + HERO FIX
   - Larger header logo
   - Wider rectangular hero banner
   - Full hero image visible without cropping
   - Responsive tablet/mobile sizing
*/

.header .brand{
    flex:0 0 auto;
    min-width:0;
}

.header .brand img{
    display:block !important;
    width:360px !important;
    height:82px !important;
    max-width:360px !important;
    object-fit:contain !important;
    object-position:left center !important;
    flex-shrink:0 !important;
}

.hero{
    grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr) !important;
    gap:48px !important;
}

.hero-copy{
    min-width:0;
}

.hero-visual{
    width:100% !important;
    height:auto !important;
    aspect-ratio:16 / 9 !important;
    overflow:hidden !important;
    border-radius:14px !important;
    background:#f5f5f2 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:0 !important;
}

.hero-visual > img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:contain !important;
    object-position:center !important;
}

/* Keep inner-page layouts balanced */
.inner-hero{
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) !important;
}

@media(max-width:1100px){
    .header .brand img{
        width:300px !important;
        height:72px !important;
        max-width:300px !important;
    }

    .hero{
        grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr) !important;
        gap:34px !important;
    }
}

@media(max-width:900px){
    .header .brand img{
        width:250px !important;
        height:64px !important;
        max-width:250px !important;
    }

    .hero,
    .inner-hero{
        grid-template-columns:1fr !important;
        gap:32px !important;
    }

    .hero-visual{
        width:100% !important;
        height:auto !important;
        aspect-ratio:16 / 9 !important;
        max-width:none !important;
    }
}

@media(max-width:700px){
    .header{
        align-items:center;
    }

    .header .brand img{
        width:210px !important;
        height:56px !important;
        max-width:210px !important;
    }

    .hero-visual{
        border-radius:10px !important;
    }
}

@media(max-width:480px){
    .header .brand img{
        width:180px !important;
        height:50px !important;
        max-width:180px !important;
    }

    .hero{
        gap:26px !important;
    }
}

/* Public website theme. Content and brand settings remain editable in the CMS. */
:root{--ink:#12283f;--paper:#f7f9fc;--muted:#586a7d;--line:#dce5ee;--teal:#007e87;--gold:#ffd078}
body{font-family:'Segoe UI',Arial,sans-serif;background:var(--paper);line-height:1.65}
.wrap{width:min(1240px,calc(100% - 72px))}
.topbar{background:#102b46;color:#e0edf6;padding:10px 0;font-size:12px}
.header{padding-block:18px;gap:24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax)}
.header .brand img{width:280px!important;max-width:280px!important;height:70px!important}
.brand{letter-spacing:-.7px;overflow-wrap:anywhere}
.brand-icon{background:linear-gradient(135deg,#007e87,#123e68);box-shadow:0 5px 15px #007e8725}
.header nav{gap:8px;font-size:14px;font-weight:600}
.header nav a{padding:10px 15px;border-radius:8px;color:#4c5f73;border:0}
.header nav a:hover,.header nav a[aria-current]{background:#e5f4f4;color:#006a72;border:0}
.button{background:#007681;border:1px solid transparent;border-radius:10px;min-height:50px;padding:14px 22px;box-shadow:0 6px 16px #00768120;transition:transform .18s,background .18s,box-shadow .18s}
.button:hover{filter:none;background:#005d68;transform:translateY(-2px);box-shadow:0 9px 20px #00768130}
.header-cta{background:#153955;white-space:nowrap}
.hero{position:relative;padding-block:70px 76px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:48px!important}
main{background:radial-gradient(ellipse 650px 470px at 95% 5%,#dceff1 0,transparent 75%),radial-gradient(ellipse 500px 400px at 0 0,#fff1da 0,transparent 75%)}
.eyebrow{color:#006b75;font-size:11px;letter-spacing:2px;font-weight:750}
.hero-copy>.eyebrow{display:inline-flex;padding:7px 12px;background:#e4f2ef;border:1px solid #c8e4df;border-radius:6px;letter-spacing:1.4px}
.eyebrow>span:not(.brand-dot),.dot{background:#00868c}
h1,h2{font-family:'Segoe UI',Arial,sans-serif;font-weight:750;white-space:pre-line}
h1{font-size:clamp(38px,4.2vw,61px);line-height:1.1;letter-spacing:-2.3px;margin:22px 0}
h2{font-size:clamp(29px,3.1vw,42px);line-height:1.18;letter-spacing:-1.3px}
h3{font-size:21px;font-weight:700}
.lead{font-size:17px;line-height:1.8}
.actions{gap:20px;flex-wrap:wrap}
.text-link{color:#006b75;font-size:14px;text-underline-offset:5px}
.text-link:hover{text-decoration:underline}
.hero-note{font-size:12px;margin-top:25px}
.hero-visual{border:8px solid white;border-radius:22px!important;background:#e4f1f2!important;box-shadow:0 24px 50px -20px #15395555,0 0 0 1px #d8e5ed}
.hero-visual.illustration{min-height:360px;background:linear-gradient(135deg,#c1e7e4,#e8effb)!important}
.sun{background:#ffc96c}.window{border-color:#8ec6cb}.shop{background:#fff0d8}.shop-sign{color:#123e59}.awning{background:repeating-linear-gradient(90deg,#007681 0 28px,#fff6e7 28px 56px)}
.shop-door,.shop-window{border-color:#15647a}.shop-window{background:#d7eeec}.visual-note{border-radius:12px;box-shadow:0 10px 30px #17334b20}
.trust-strip{background:#123650;border:0;color:#fff}
.trust-grid{padding-block:32px;gap:32px}
.trust-grid>div{padding-left:58px}
.trust-grid>div+div{border-left:1px solid #ffffff26;padding-left:76px}
.trust-grid span{font-family:inherit;font-size:14px;font-weight:700;color:#ffd078;border:1px solid #ffffff30;background:#ffffff0d;border-radius:12px;width:40px;height:40px;display:grid;place-items:center;top:4px}
.trust-grid>div+div span{left:18px}
.trust-grid strong{font-size:16px}.trust-grid p{font-size:13px;color:#c8dbe8;margin-top:5px}
.section{padding-block:72px}.section-heading{margin-bottom:30px}
.cards{gap:24px}.card{background:white;border:1px solid #e0e7ef;border-radius:18px;padding:28px;box-shadow:0 8px 28px #15395508;display:flex;flex-direction:column;min-width:0;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-5px);box-shadow:0 18px 36px #15395517}
.card:nth-child(3n+1){border-top:4px solid #00868c}.card:nth-child(3n+2){border-top:4px solid #d59b36}.card:nth-child(3n){border-top:4px solid #4568b2}
.card h3{margin-bottom:8px}.card p{line-height:1.8;flex:1}.card .text-link{margin-top:15px;padding-top:17px;border-top:1px solid #e8eef3}
.service-number{font-family:inherit;font-weight:700;font-size:28px;color:#007681;border:0;padding-bottom:10px}.service-number span{border-radius:50%;background:#e7f4f3;width:42px;height:42px;display:grid;place-items:center}
.card-image{border-radius:11px}.cta{background:radial-gradient(circle at 80% 20%,#21868b66,transparent 45%),linear-gradient(120deg,#102c48,#075962);border-radius:22px;padding:48px 54px;box-shadow:0 18px 38px #102c4818;gap:30px}
.cta .eyebrow{color:#ffd078}.cta h2{color:#fff}.light{background:#ffd078;color:#18324b;box-shadow:none}.light:hover{background:#ffe2a6}
.footer{padding-top:15px;padding-bottom:90px}.footer .brand{font-size:24px}.footer p{font-size:14px;max-width:520px}.footer>div:nth-child(2){font-size:14px}.copyright{font-size:12px}
.inner-hero{padding-block:54px 32px}.about-panel,.empty{background:linear-gradient(120deg,#e1f2f0,#e8effa);border:1px solid #d3e5ea;border-radius:20px;padding:44px}
.gallery-item{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #15395508}.gallery-item img{border-radius:0}.gallery-item figcaption{padding:8px 22px 20px}
.contact-grid{gap:60px}.contact-details dt{font-size:11px;font-weight:700;color:#007681}.contact-form{border-radius:20px;border-top:4px solid #007e87;box-shadow:0 15px 40px #1539550c;padding:32px}
input,textarea,select{background:#f8fafc;border-color:#cddae5;border-radius:9px;padding:12px}input:focus,textarea:focus,select:focus{background:#fff}
.whatsapp{background:#087849;border:1px solid #ffffff55;box-shadow:0 6px 22px #064c3330;font-weight:600}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #bd7900;outline-offset:4px}
@media(max-width:1100px){.header .brand img{width:235px!important;max-width:235px!important}.header nav a{padding:9px 11px}.hero{gap:30px!important}}
@media(max-width:900px){.hero,.inner-hero{grid-template-columns:1fr!important}.hero-copy{max-width:700px}.hero-visual{max-width:760px!important}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.trust-grid{gap:16px}.trust-grid>div,.trust-grid>div+div{padding-left:0;border:0}.trust-grid span,.trust-grid>div+div span{position:static;margin-bottom:12px}.contact-grid{gap:30px}}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.topbar{font-size:10px}.header{gap:12px}.header .brand{max-width:calc(100% - 92px)}.header .brand img{width:210px!important;max-width:100%!important;height:55px!important}.menu-toggle{color:#123650;background:#edf5f7;border-color:#d5e4ea;border-radius:8px;min-height:44px}.header nav.open{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.header nav a{text-align:center}.hero{padding-block:35px 42px;gap:30px!important}h1{font-size:clamp(34px,9vw,48px);letter-spacing:-1.5px}.lead{font-size:16px}.hero-visual{border-width:5px;border-radius:16px!important}.hero-visual.illustration{min-height:320px}.hero-copy>.eyebrow{font-size:10px;letter-spacing:1px}.actions{align-items:flex-start;gap:18px}.trust-grid{gap:22px;padding-block:28px}.trust-grid>div,.trust-grid>div+div{padding-left:56px}.trust-grid span,.trust-grid>div+div span{position:absolute;left:0;top:3px}.section{padding-block:44px}.cards{grid-template-columns:1fr}.section-heading{gap:18px}.section-heading>.text-link{max-width:100px}.card{padding:24px}.cta{padding:32px 26px;border-radius:18px}.cta h2{font-size:30px}.contact-form{padding:24px}.about-panel,.empty{padding:28px}.footer .brand{font-size:21px}.whatsapp{right:16px;bottom:16px}.gallery-grid{gap:20px}}
@media(prefers-reduced-motion:reduce){.button,.card{transition:none}.button:hover,.card:hover{transform:none}}
/* Admin dashboard refresh */
.admin-body{background:#eef3f9;color:#142d48}.admin-shell{grid-template-columns:250px minmax(0,1fr)}
.sidebar{background:linear-gradient(165deg,#142c50,#123d55 70%,#075e64);padding:34px 24px;color:#fff;box-shadow:8px 0 30px #102a4310}
.sidebar .brand{color:#fff;font-size:23px}.sidebar .muted{color:#bbd5e7}.sidebar nav{gap:9px}.sidebar nav a{border:1px solid transparent;padding:12px 15px;border-radius:10px;font-weight:600;color:#dceaf8}.sidebar nav a:hover,.sidebar nav a[aria-current=page]{background:#ffffff18;border-color:#ffffff28;color:#fff}.sidebar nav a[aria-current=page]{box-shadow:inset 3px 0 #61e2d0}.sidebar .button{border:1px solid #ffffff30;border-radius:10px}.admin-main{max-width:1500px;padding:44px}.admin-top{padding-bottom:25px;border-bottom:1px solid #d5e1ee}.admin-top .eyebrow{color:#007681}.admin-main h1{font-size:34px;font-weight:750}.admin-top>.text-link{background:#fff;padding:11px 18px;border:1px solid #dce5ef;border-radius:10px}.admin-main .panel{border-radius:17px;border:1px solid #dbe5ef;box-shadow:0 8px 24px #17375806}.stats{gap:22px}.stats .panel{position:relative;overflow:hidden;min-height:160px;padding:28px;color:#fff;border:0;background:linear-gradient(120deg,#2157ac,#163b7a);box-shadow:0 10px 25px #2157ac25}.stats .panel:nth-child(2){background:linear-gradient(120deg,#007d83,#00575f)}.stats .panel:nth-child(3){background:linear-gradient(120deg,#7045b4,#493087)}.stats .panel:after{content:'';position:absolute;width:140px;height:140px;border:24px solid #ffffff0c;border-radius:50%;right:-35px;top:-40px;pointer-events:none}.stats strong{font-size:44px;line-height:1.2;margin-bottom:15px}.stats span{color:#fff;font-size:14px}.admin-main section.panel{border-top:4px solid #0c8890}.admin-main section.panel h2{font-size:32px;line-height:1.3}.admin-main ol{padding-left:24px}.admin-main li{padding:7px 0}.admin-main .badge{background:#e2f3ee;color:#096955;font-weight:600}.admin-main .danger{background:#b33242}.admin-main input[type=color]{height:48px;padding:6px}.login-body{background:radial-gradient(ellipse at top left,#157078,transparent 65%),#142c50}.login-card{border:0;box-shadow:0 25px 80px #0003;border-radius:22px}.login-card h1{font-family:'Segoe UI',Arial,sans-serif;font-weight:750}.admin-main .list-row{gap:20px}.admin-main .list-row>div{min-width:0;overflow-wrap:anywhere}
@media(max-width:1000px){.admin-shell{grid-template-columns:210px minmax(0,1fr)}.admin-main{padding:28px}.stats{gap:12px}.stats .panel{padding:22px}}
@media(max-width:700px){.admin-shell{display:block}.sidebar{padding:22px 18px}.sidebar nav{margin:18px 0;gap:8px}.sidebar nav a{padding:10px 14px}.admin-main{padding:26px 18px}.admin-top{gap:12px}.admin-main h1{font-size:27px}.admin-top>.text-link{padding:8px 10px;font-size:12px}.stats{grid-template-columns:1fr;gap:0}.stats .panel{min-height:125px}.stats strong{font-size:36px}.admin-main section.panel h2{font-size:26px}.admin-main .panel{padding:22px}.admin-main .enquiry-actions form:first-child{flex-wrap:wrap}}
/* Gallery categories and booking */
.gallery-categories{display:grid;gap:50px}.gallery-category{min-width:0}.gallery-category .section-heading{margin-bottom:22px}.gallery-category h2{margin:8px 0 12px}.gallery-category .muted{max-width:800px}.category-photo-editor{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px;margin-top:20px}.category-photo{margin:0;padding:10px;border:1px solid #dce5ee;border-radius:12px;background:#f8fafc}.category-photo img{width:100%;height:140px;object-fit:cover;border-radius:8px}.category-photo .check{margin-top:10px;font-size:12px}.book-now{background:#ffd078;color:#18324b;font-weight:750}.book-now:hover{background:#ffe2a6}.gallery-category .gallery-item a{display:block}
