@import url("admin.css");
@import url("help.css");
@import url("diagnostics.css");
@import url("backup.css");
@import url("seo.css");

*{
    box-sizing:border-box;
}

:root{
    --bg:#f6f1e9;
    --bg-soft:#fbf8f2;
    --ink:#17242d;
    --muted:#65717a;
    --brand:#9b6b43;
    --brand-dark:#6f4425;
    --green:#314a3b;
    --line:rgba(23,36,45,.12);
    --white:#ffffff;
    --shadow:0 24px 70px rgba(23,36,45,.14);
    --radius:22px;
    --radius-sm:14px;
    --max:1160px;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    font-family:Inter,system-ui,sans-serif;
    color:var(--ink);
    background:var(--bg-soft);
    line-height:1.6;
}

img{
    max-width:100%;
    display:block;
}

a{
    color:inherit;
}

.container{
    width:min(var(--max),calc(100% - 40px));
    margin:0 auto;
}

/* HEADER */

.site-header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(251,248,242,.92);
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
}

.nav-wrap{
    min-height:82px;
    display:flex;
    align-items:center;
    gap:26px;
}

.brand{
    display:inline-flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    font-weight:800;
    letter-spacing:-.02em;
}

.brand span{
    width:42px;
    height:42px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:var(--green);
    color:var(--white);
}

.site-nav{
    margin-left:auto;
    display:flex;
    gap:24px;
}

.site-nav a{
    text-decoration:none;
    color:var(--muted);
    font-weight:700;
}

.site-nav a:hover{
    color:var(--ink);
}

.nav-button,
.button{
    border:0;
    cursor:pointer;
    min-height:48px;
    padding:0 20px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--brand);
    color:white;
    text-decoration:none;
    font-weight:800;
    transition:.2s ease;
}

.nav-button:hover,
.button:hover{
    background:var(--brand-dark);
    transform:translateY(-1px);
}

.button-soft{
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.25);
}

/* HERO */

.hero{
    min-height:700px;
    background-size:cover;
    background-position:center;
    display:flex;
    align-items:center;
}

.hero-inner{
    padding:90px 0;
}

.hero-card{
    width:min(620px,100%);
    padding:42px;
    border-radius:32px;
    background:rgba(23,36,45,.78);
    color:white;
    box-shadow:var(--shadow);
}

.hero-card p:not(.eyebrow){
    margin-top:18px;
    color:rgba(255,255,255,.82);
    font-size:1.08rem;
}

.hero-actions{
    margin-top:30px;
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}

.eyebrow{
    margin:0 0 12px;
    color:var(--brand);
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:.78rem;
    font-weight:900;
}

.hero-card .eyebrow{
    color:#f0c99f;
}

h1,
h2,
h3{
    line-height:1.08;
    letter-spacing:-.045em;
    margin:0;
}

h1{
    font-size:clamp(2.8rem,6vw,5.8rem);
}

h2{
    font-size:clamp(2rem,4vw,3.6rem);
}

h3{
    font-size:1.3rem;
}

p{
    margin:0;
}

/* GENERAL */

.section{
    padding:90px 0;
}

.warm{
    background:var(--bg);
}

.section-head{
    margin-bottom:34px;
}

.section-head.row{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:20px;
}

.split-grid{
    display:grid;
    grid-template-columns:.95fr 1.05fr;
    gap:70px;
}

.copy{
    color:var(--muted);
    font-size:1.05rem;
}

/* CARDS */

.card-grid{
    display:grid;
    gap:24px;
}

.card-grid.three{
    grid-template-columns:repeat(3,1fr);
}

.card-grid.two{
    grid-template-columns:repeat(2,1fr);
}

.card,
.project-card,
.form-card,
.contact-panel,
.cta-box,
.admin-panel,
.login-card{
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:0 16px 50px rgba(23,36,45,.07);
}

.card{
    overflow:hidden;
}

.card img{
    width:100%;
    height:230px;
    object-fit:cover;
    background:#e7dfd2;
}

.card-body{
    padding:26px;
}

.card-body p,
.card-body .copy{
    margin-top:12px;
    color:var(--muted);
}

/* PROJECTS */

.project-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}

.project-card{
    overflow:hidden;
}

.project-card img{
    width:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
    background:#e7dfd2;
}

.project-card div{
    padding:22px;
}

.project-card p{
    margin-top:8px;
    color:var(--muted);
}

/* PROCESS */

.process-band{
    background:var(--green);
    color:white;
}

.process-band .eyebrow{
    color:#f0c99f;
}

.steps{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.steps div{
    padding:26px;
    border-radius:var(--radius);
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
}

.steps span{
    color:#f0c99f;
    font-weight:900;
}

.steps h3{
    margin-top:22px;
}

.steps p{
    margin-top:10px;
    color:rgba(255,255,255,.72);
}

/* TESTIMONIALS */

.testimonial-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

blockquote{
    margin:0;
    padding:28px;
    background:white;
    border-radius:var(--radius);
    border:1px solid var(--line);
    box-shadow:0 16px 50px rgba(23,36,45,.07);
}

blockquote footer{
    margin-top:20px;
    color:var(--muted);
    font-weight:750;
}

/* CTA */

.cta{
    padding-top:0;
}

.cta-box{
    padding:48px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    background:linear-gradient(135deg,var(--ink),var(--green));
    color:white;
}

.cta-box p{
    margin-top:10px;
    color:rgba(255,255,255,.72);
}

/* PAGE HERO */

.page-hero{
    padding:86px 0;
    background:var(--bg);
    border-bottom:1px solid var(--line);
}

.page-hero p:last-child{
    margin-top:16px;
    max-width:720px;
    color:var(--muted);
}

/* CONTACT */

.contact-grid{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:28px;
}

.contact-panel,
.form-card{
    padding:30px;
}

.contact-panel p{
    margin-top:14px;
    color:var(--muted);
}

/* FORMS */

label{
    display:grid;
    gap:8px;
    font-weight:700;
}

input,
textarea,
select{
    width:100%;
    border:1px solid var(--line);
    border-radius:var(--radius-sm);
    padding:13px 14px;
    font:inherit;
    background:white;
}

textarea{
    resize:vertical;
}

.form-card,
.admin-form{
    display:grid;
    gap:18px;
}

/* ALERTS */

.notice{
    padding:14px 16px;
    border-radius:var(--radius-sm);
    font-weight:700;
}

.notice.success{
    background:#e7f6ea;
    color:#1d6530;
}

.notice.error{
    background:#fde8e4;
    color:#8f2516;
}

/* FOOTER */

.site-footer{
    padding:60px 0 24px;
    background:var(--ink);
    color:white;
}

.footer-grid{
    display:grid;
    grid-template-columns:1.3fr .85fr .85fr;
    gap:38px;
}

.footer-grid p{
    margin-top:8px;
    color:rgba(255,255,255,.68);
}

.footer-bottom{
    margin-top:42px;
    padding-top:22px;
    border-top:1px solid rgba(255,255,255,.12);
    display:flex;
    justify-content:space-between;
    color:rgba(255,255,255,.6);
}

/* LOGIN */

.login-body{
    min-height:100vh;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,var(--ink),var(--green));
    padding:24px;
}

.login-card{
    width:min(440px,100%);
    padding:32px;
}

.login-card p{
    margin:10px 0 20px;
    color:var(--muted);
}

/* ADMIN */

.admin-body{
    background:#f3f5f6;
}

.admin-shell{
    min-height:100vh;
    display:grid;
    grid-template-columns:280px 1fr;
}

.admin-sidebar {
    width: 280px;
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(124, 92, 255, 0.16), transparent 35%),
        #101c26;
    color: #ffffff;
    padding: 22px 18px;
    box-sizing: border-box;
}

.admin-sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
}

.admin-brand-mark {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: linear-gradient(135deg, #7c5cff, #45d3ff);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
}

.admin-sidebar h1 {
    font-size: 22px;
    line-height: 1.2;
    margin: 0;
}

.admin-nav {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.admin-nav a,
.admin-nav summary {
    color: #eaf2ff;
    text-decoration: none;
    font-size: 15px;
}

.admin-nav-primary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 14px;
    border-radius: 12px;
    background: rgba(124, 92, 255, 0.15);
    border-left: 3px solid #8f6dff;
    margin-bottom: 8px;
}

.admin-nav-group {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding: 12px 0 8px;
}

.admin-nav-group summary {
    cursor: pointer;
    list-style: none;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 12px;
    font-weight: 700;
    color: #9fb0c4;
    margin-bottom: 8px;
    display: flex;
    justify-content: space-between;
}

.admin-nav-group summary::-webkit-details-marker {
    display: none;
}

.admin-nav-group summary::after {
    content: "⌄";
    font-size: 14px;
    color: #9fb0c4;
}

.admin-nav-group:not([open]) summary::after {
    content: "›";
}

.admin-nav-group a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 14px 9px 34px;
    border-radius: 10px;
    color: #f4f7fb;
}

.admin-nav-group a:hover,
.admin-nav-footer a:hover {
    background: rgba(255, 255, 255, 0.08);
}

.admin-nav-badge {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: #7c5cff;
    color: #ffffff;
    padding: 4px 7px;
    border-radius: 999px;
}

.admin-nav-footer {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin-top: 10px;
    padding-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.admin-nav-footer a {
    padding: 10px 14px;
    border-radius: 10px;
    color: #eaf2ff;
    text-decoration: none;
}

.admin-main{
    padding:34px;
}

.admin-main > h2{
    margin-bottom:22px;
}

.admin-form,
.admin-panel{
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:26px;
    margin-bottom:28px;
}

.form-row{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px;
}

.checkbox{
    display:flex;
    align-items:center;
    gap:10px;
}

.checkbox input{
    width:auto;
}

.admin-table{
    width:100%;
    border-collapse:collapse;
    margin-top:14px;
}

.admin-table th,
.admin-table td{
    text-align:left;
    padding:13px 10px;
    border-bottom:1px solid var(--line);
}

.admin-table th{
    color:var(--muted);
    font-size:.85rem;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.admin-thumb{
    width:180px;
    border-radius:14px;
    border:1px solid var(--line);
}

.admin-cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-bottom:28px;
}

.admin-card{
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:24px;
}

.admin-card strong{
    display:block;
    font-size:2.4rem;
}

.admin-card span{
    color:var(--muted);
    font-weight:700;
}

/* RESPONSIVE */

@media (max-width:980px){

    .split-grid,
    .contact-grid,
    .footer-grid{
        grid-template-columns:1fr;
    }

    .card-grid.three,
    .card-grid.two,
    .project-grid,
    .steps,
    .testimonial-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .admin-shell{
        grid-template-columns:1fr;
    }
}

@media (max-width:680px){

    .container{
        width:min(100% - 28px,var(--max));
    }

    .hero{
        min-height:auto;
    }

    .hero-inner{
        padding:52px 0;
    }

    .hero-card{
        padding:28px;
    }

    .section{
        padding:58px 0;
    }

    .card-grid.three,
    .card-grid.two,
    .project-grid,
    .steps,
    .testimonial-grid,
    .admin-cards,
    .form-row{
        grid-template-columns:1fr;
    }

    .cta-box,
    .footer-bottom,
    .section-head.row{
        display:grid;
    }

    .admin-main{
        padding:20px;
    }
}

/* Mobile polish */

@media (max-width: 820px){

    .nav-wrap{
        min-height:auto;
        padding:16px 0;
        display:grid;
        gap:16px;
    }

    .brand{
        justify-content:center;
    }

    .site-nav{
        margin-left:0;
        display:flex;
        justify-content:center;
        flex-wrap:wrap;
        gap:10px;
    }

    .site-nav a{
        padding:8px 12px;
        border-radius:999px;
        background:rgba(23,36,45,.06);
    }

    .nav-button{
        display:flex;
        width:100%;
    }

    .hero-card{
        width:100%;
    }

    .hero-actions{
        display:grid;
    }

    .hero-actions .button{
        width:100%;
    }

    .project-grid,
    .card-grid.three,
    .card-grid.two,
    .steps,
    .testimonial-grid,
    .footer-grid,
    .contact-grid,
    .split-grid{
        grid-template-columns:1fr;
    }

    .section-head.row{
        align-items:start;
    }

    .cta-box{
        text-align:left;
    }
}

@media (max-width: 520px){

    body{
        font-size:15px;
    }

    .container{
        width:calc(100% - 28px);
    }

    .hero-inner{
        padding:36px 0;
    }

    .hero-card{
        padding:24px;
        border-radius:22px;
    }

    h1{
        font-size:2.35rem;
    }

    h2{
        font-size:1.9rem;
    }

    .section,
    .page-hero{
        padding:46px 0;
    }

    .card-body,
    .project-card div,
    .contact-panel,
    .form-card,
    .admin-form,
    .admin-panel{
        padding:20px;
    }

    .cta-box{
        padding:28px;
    }

    .admin-main{
        padding:16px;
    }

    .admin-table{
        display:block;
        overflow-x:auto;
        white-space:nowrap;
    }
}
/* Cookies */
.cookie-notice{
    position:fixed;
    left:20px;
    right:20px;
    bottom:20px;
    z-index:100;
    max-width:760px;
    margin:auto;
    padding:18px;
    border-radius:18px;
    background:white;
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    align-items:center;
    justify-content:space-between;
    gap:16px;
}

.cookie-notice p{
    margin:0;
}

.cookie-actions{
    display:flex;
    gap:10px;
    flex-shrink:0;
}

.cookie-notice button,
.cookie-notice a{
    border:0;
    border-radius:999px;
    padding:10px 16px;
    background:var(--brand);
    color:white;
    font-weight:800;
    cursor:pointer;
    text-decoration:none;
    white-space:nowrap;
}

.cookie-secondary{
    background:rgba(23,36,45,.08) !important;
    color:var(--ink) !important;
}

@media (max-width:640px){

    .cookie-notice{
        left:12px;
        right:12px;
        bottom:12px;
        padding:16px;
        flex-direction:column;
        align-items:stretch;
    }

    .cookie-actions{
        display:grid;
        grid-template-columns:1fr;
    }

    .cookie-notice button,
    .cookie-notice a{
        width:100%;
        text-align:center;
    }
}

.setup-list{
    display:grid;
    gap:10px;
    padding-left:20px;
}

.setup-list a{
    margin-left:8px;
    font-weight:800;
}

.admin-thumb{
    width:100%;
    max-width:260px;
    border-radius:18px;
    border:1px solid var(--line);
    margin-bottom:18px;
    display:block;
    background:white;
}

.admin-panel + .admin-panel{
    margin-top:24px;
}

.site-logo{
    display:block;
    width:calc(260px * var(--logo-scale, 1));
    max-width:520px;
    max-height:120px;
    object-fit:contain;
    object-position:left center;
    background:transparent;
    border-radius:0;
    padding:0;
}

.admin-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.admin-tabs a{
    padding:10px 14px;
    border-radius:999px;
    background:rgba(23,36,45,.06);
    text-decoration:none;
    font-weight:800;
    color:var(--muted);
}

.admin-tabs a.active,
.admin-tabs a:hover{
    background:var(--brand);
    color:white;
}
/* Start FAQs */
.faq-list{
    display:grid;
    gap:18px;
    max-width:900px;
}

.faq-item{
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:28px;
    box-shadow:0 16px 50px rgba(23,36,45,.07);
}

.faq-item h2{
    font-size:1.4rem;
    margin-bottom:12px;
}

.faq-item p{
    color:var(--muted);
}
/* End FAQs */
/* Start Enquiries */
.admin-table tr.is-unread td{
    font-weight:800;
    background:rgba(155,107,67,.08);
}

.admin-panel hr{
    border:0;
    border-top:1px solid var(--line);
    margin:22px 0;
}
/* End Enquiries */
/* Start Pages */
.page-content{
    max-width:900px;
}

.page-content h2,
.page-content h3{
    margin-top:28px;
    margin-bottom:12px;
}

.page-content p,
.page-content ul,
.page-content ol{
    margin-bottom:18px;
    color:var(--muted);
}

.page-content a{
    color:var(--brand);
    font-weight:800;
}
.admin-layout{
    display:grid;
    grid-template-columns:320px 1fr;
    gap:24px;
    align-items:start;
}

.admin-sidebar{
    position:sticky;
    top:100px;
}

.admin-main{
    min-width:0;
}

.admin-panel-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:18px;
}

.admin-page-list{
    display:grid;
    gap:10px;
}

.admin-page-list a{
    display:grid;
    gap:4px;
    padding:14px;
    border-radius:16px;
    background:rgba(23,36,45,.04);
    text-decoration:none;
    color:inherit;
    transition:.2s ease;
}

.admin-page-list a:hover,
.admin-page-list a.active{
    background:rgba(155,107,67,.10);
}

.admin-page-list span{
    font-size:.85rem;
    color:var(--muted);
}

.admin-page-list small{
    color:var(--brand);
    font-weight:700;
}

.admin-actions{
    display:flex;
    gap:12px;
    align-items:center;
}

.button.secondary{
    background:rgba(23,36,45,.08);
    color:var(--ink);
}

.button.small{
    padding:8px 12px;
    font-size:.85rem;
}

@media (max-width:900px){

    .admin-layout{
        grid-template-columns:1fr;
    }

    .admin-sidebar{
        position:static;
    }
}

.block-image{
    width:100%;
    border-radius:var(--radius);
    box-shadow:0 16px 50px rgba(23,36,45,.07);
    object-fit:cover;
}

.page-content + .section{
    padding-top:0;
}
/* End Pages */
/* Start Media Library */
.media-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
    gap:18px;
}

.media-card{
    background:white;
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:0 16px 50px rgba(23,36,45,.07);
}

.media-card img{
    width:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
    background:#eee;
}

.media-card-body{
    padding:16px;
    display:grid;
    gap:10px;
}

.media-card-body small{
    color:var(--muted);
}

.media-card-body input{
    font-size:.85rem;
}

.media-actions{
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-weight:800;
}
/* End Media Library */
/* Start Theme */
.theme-preview{
    padding:34px;
    border-radius:var(--radius);
    background:linear-gradient(135deg,var(--ink),var(--green));
    color:white;
}

.theme-preview p:not(.eyebrow){
    margin:12px 0 22px;
    color:rgba(255,255,255,.75);
}
/* End Theme */

/* Start Admin Licence */
.licence-summary{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:14px;
}

.licence-summary div{
    padding:16px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}

.licence-summary span{
    display:block;
    margin-bottom:6px;
    color:var(--muted);
    font-size:.8rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.licence-summary strong{
    display:block;
    font-size:1rem;
    overflow-wrap:anywhere;
}
/*End Admin Licence*/

.quill-wrapper{
    margin-top:8px;
}

.ql-toolbar{
    border-radius:12px 12px 0 0;
}

.ql-container{
    min-height:320px;
    border-radius:0 0 12px 12px;
    font-size:15px;
    background:#fff;
}

.quill-editor{
    min-height:320px;
    background:#fff;
}

.ql-toolbar{
    margin-top:8px;
    border-radius:12px 12px 0 0;
}

.ql-container{
    min-height:320px;
    border-radius:0 0 12px 12px;
    font-size:15px;
}

/* Table Layouts */

table th {
    text-align: left;
}