:root{--edph-green:#5f9f00;--edph-green-bright:#7ed321;--edph-dark:#070807;--edph-text:#f5f5f5;--edph-muted:#c9c9c9;--max-width:1180px}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--edph-dark);color:var(--edph-text);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55}img{max-width:100%;height:auto;display:block}a{color:var(--edph-green-bright)}.site-container{width:min(var(--max-width),calc(100% - 32px));margin-inline:auto}.top-strip{background:#020302;border-bottom:1px solid rgba(126,211,33,.25);color:#d8d8d8;font-size:.88rem}.top-strip-inner{display:flex;justify-content:space-between;gap:1rem;padding-block:.45rem}.top-strip a{color:#d8d8d8;text-decoration:none}.site-nav{position:sticky;top:0;z-index:100;background:rgba(0,0,0,.94);border-bottom:1px solid rgba(126,211,33,.25);backdrop-filter:blur(8px)}.nav-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand img{width:185px;max-height:72px;object-fit:contain}.nav-links{display:flex;align-items:center;gap:1.1rem}.nav-links a{color:#fff;text-decoration:none;text-transform:uppercase;font-weight:700;font-size:.82rem;letter-spacing:.035em}.nav-links a:hover{color:var(--edph-green-bright)}.nav-links .nav-quote{background:linear-gradient(180deg,var(--edph-green-bright),var(--edph-green));color:#fff;padding:.75rem 1.15rem;border-radius:3px}.menu-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.25);padding:.55rem;border-radius:3px}.menu-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}.hero{position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(0,0,0,.98) 0%,rgba(0,0,0,.82) 46%,rgba(0,0,0,.4) 100%),radial-gradient(circle at 78% 24%,rgba(126,211,33,.2),transparent 42%),linear-gradient(180deg,#111,#080908)}.hero-grid{min-height:650px;display:grid;grid-template-columns:.9fr 1.25fr;align-items:center;gap:2rem;padding-block:2.8rem}.hero-logo{width:235px;margin-bottom:1.4rem}.hero h1,.page-hero h1,.section-title h2{margin:0;font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;text-transform:uppercase;letter-spacing:.025em;font-weight:400}.hero h1{font-size:clamp(3rem,6.6vw,5.9rem);line-height:.94}.hero h1 span{display:block;color:var(--edph-green-bright)}.hero p{max-width:560px;margin:1rem 0 1.25rem;color:#fff;font-size:1.12rem}.hero-image-wrap{align-self:stretch;display:grid;align-items:center;justify-content:end}.hero-image-wrap img{width:min(760px,100%);filter:drop-shadow(0 28px 45px rgba(0,0,0,.65));border-radius:4px}.tick-list{list-style:none;padding:0;margin:0}.tick-list li{margin:.42rem 0;color:#fff}.tick-list li::before{content:'✓';color:var(--edph-green-bright);font-weight:900;margin-right:.55rem}.hero-ticks{text-transform:uppercase;font-weight:700;font-size:.94rem}.button-row{display:flex;gap:.85rem;flex-wrap:wrap;margin-top:1.6rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.78rem 1.25rem;border-radius:3px;border:1px solid var(--edph-green-bright);background:linear-gradient(180deg,var(--edph-green-bright),var(--edph-green));color:#fff;text-decoration:none;text-transform:uppercase;font-size:.88rem;font-weight:800;letter-spacing:.025em;cursor:pointer}.btn:hover{filter:brightness(1.08);color:#fff}.btn-outline{background:transparent;border-color:var(--edph-green);color:#fff}.btn-full{width:100%;margin-top:1rem}.trust-section,.section,.package-section{background:linear-gradient(180deg,#111411,#080908);padding:3.25rem 0}.trust-grid,.info-grid,.equipment-grid{display:grid;gap:1.35rem}.trust-grid{grid-template-columns:repeat(3,1fr)}.trust-grid article,.info-box,.equipment-card,.booking-box,.package-panel,.edph-form,.download-card{background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.14);box-shadow:0 16px 40px rgba(0,0,0,.28);border-radius:8px}.trust-grid article{padding:1.35rem}.trust-icon{font-size:2rem}.trust-grid h2,.info-box h2,.equipment-card h2,.equipment-card h3,.booking-box h2{margin:.4rem 0 .35rem;text-transform:uppercase;font-size:1.15rem;line-height:1.2}.trust-grid p,.info-box p,.equipment-card p,.booking-box p{color:var(--edph-muted)}.section-title{text-align:center;margin-bottom:2rem}.section-title h2{font-size:clamp(2.2rem,4vw,3.4rem)}.section-title p{margin:.35rem 0 0;color:var(--edph-green-bright);text-transform:uppercase;font-weight:700}.equipment-grid{grid-template-columns:repeat(3,1fr)}.equipment-card{overflow:hidden}.equipment-card-image{display:block;height:230px;overflow:hidden;background:#222}.equipment-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.equipment-card:hover .equipment-card-image img{transform:scale(1.035)}.equipment-card-body{padding:1.35rem}.price{color:var(--edph-green-bright);font-size:1.8rem;line-height:1}.card-bottom{margin-top:1rem;border-top:1px solid rgba(126,211,33,.35);padding-top:1rem}.centre{text-align:center;margin-top:1.8rem}.package-panel{border-color:rgba(126,211,33,.38);padding:1.7rem;display:grid;grid-template-columns:1.2fr 1.6fr auto;gap:1.4rem;align-items:center}.package-panel h2{margin:0;color:var(--edph-green-bright);text-transform:uppercase;font-size:2rem}.package-panel h3{margin:.15rem 0 .35rem;text-transform:uppercase;font-size:1.2rem}.package-items{display:flex;justify-content:space-around;gap:1rem;text-align:center}.package-items span{display:grid;gap:.35rem;color:var(--edph-green-bright);font-size:1.7rem}.package-items strong{color:#fff;font-size:.84rem;line-height:1.15;text-transform:uppercase}.section-tight{padding-top:0}.info-grid{grid-template-columns:repeat(3,1fr)}.info-box{padding:1.45rem}.info-box a{text-transform:uppercase;font-weight:800;text-decoration:none}.page-hero{padding:4rem 0;background:linear-gradient(90deg,rgba(0,0,0,.96),rgba(0,0,0,.68)),radial-gradient(circle at 86% 2%,rgba(126,211,33,.25),transparent 42%);border-bottom:1px solid rgba(126,211,33,.28)}.page-hero h1{font-size:clamp(2.6rem,5vw,4.8rem);line-height:.98}.page-hero p{margin:.7rem 0 0;color:var(--edph-muted);font-size:1.08rem}.detail-grid{display:grid;grid-template-columns:1fr 360px;gap:2rem;align-items:start}.detail-main-image{width:100%;max-height:520px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.16);box-shadow:0 16px 40px rgba(0,0,0,.28)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1rem 0 1.8rem}.gallery-grid img{width:100%;height:135px;object-fit:cover;border-radius:5px;border:1px solid rgba(255,255,255,.13)}.detail-list{columns:2;column-gap:2rem}.booking-box{padding:1.35rem;margin-bottom:1rem;position:sticky;top:104px}.download-link,.download-card{display:block;padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.11);color:#fff;text-decoration:none}.download-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.download-card{padding:1.1rem;border:1px solid rgba(255,255,255,.14)}.download-card strong{display:block;text-transform:uppercase}.download-card span{color:var(--edph-muted)}.form-narrow{max-width:900px;margin-inline:auto}.edph-form{padding:1.5rem}.edph-form label{display:block;width:100%;margin-bottom:1rem;text-transform:uppercase;font-size:.83rem;font-weight:700}.form-control,.form-select,input,textarea,select{width:100%;margin-top:.35rem;padding:.75rem .85rem;border:1px solid rgba(255,255,255,.18);border-radius:3px;background:#080908;color:#fff;font:inherit}textarea{min-height:140px}.form-control:focus,.form-select:focus,input:focus,textarea:focus,select:focus{outline:2px solid rgba(126,211,33,.35);border-color:var(--edph-green-bright)}.alert{padding:1rem;border-radius:5px;margin-bottom:1rem}.alert-success{background:rgba(126,211,33,.12);border:1px solid rgba(126,211,33,.35)}.alert-danger{background:rgba(200,0,0,.16);border:1px solid rgba(255,80,80,.35)}.table-responsive{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem;border-bottom:1px solid rgba(255,255,255,.12);text-align:left}.table-dark{color:#fff}.row{display:flex;flex-wrap:wrap;gap:1rem}.col-12,.col-md-2,.col-md-3,.col-md-4,.col-md-6,.col-lg-5,.col-lg-7{flex:1 1 100%}.col-md-2{flex-basis:calc(16.666% - 1rem)}.col-md-3{flex-basis:calc(25% - 1rem)}.col-md-4{flex-basis:calc(33.333% - 1rem)}.col-md-6{flex-basis:calc(50% - 1rem)}.site-footer{background:#030403;padding:2rem 0;border-top:1px solid rgba(126,211,33,.25)}.footer-grid{display:grid;grid-template-columns:220px 1fr auto;gap:1.6rem;align-items:center}.footer-logo{width:190px}.site-footer p{margin:.25rem 0}.site-footer a{color:#fff;text-decoration:none}.footer-cta{display:grid;gap:.4rem;text-align:right;text-transform:uppercase;color:var(--edph-green-bright);font-weight:800}@media (max-width:980px){.menu-toggle{display:block}.nav-inner{min-height:72px}.nav-links{position:absolute;inset:72px 0 auto 0;display:none;flex-direction:column;align-items:stretch;gap:0;background:rgba(0,0,0,.98);border-bottom:1px solid rgba(126,211,33,.25);padding:.75rem 1rem 1rem}.nav-links.is-open{display:flex}.nav-links a{padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.nav-links .nav-quote{text-align:center;margin-top:.75rem;padding:.85rem 1rem}.hero-grid,.detail-grid,.package-panel,.footer-grid{grid-template-columns:1fr}.hero-grid{min-height:auto}.hero-image-wrap{justify-content:center}.equipment-grid,.info-grid,.trust-grid{grid-template-columns:1fr}.package-items{flex-direction:column}.booking-box{position:static}.footer-cta{text-align:left}}@media (max-width:720px){.top-strip-inner{flex-direction:column;gap:.25rem}.brand img{width:145px}.hero h1{font-size:clamp(2.55rem,13vw,4rem)}.hero-logo{width:185px}.gallery-grid{grid-template-columns:1fr 1fr}.detail-list{columns:1}.col-md-2,.col-md-3,.col-md-4,.col-md-6{flex-basis:100%}}


/* ---------------------------------------------------------------------
   Booking calendar
--------------------------------------------------------------------- */

.availability-calendar {
    background: linear-gradient(180deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .025));
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 8px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .28);
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.calendar-header h2 {
    margin: 0;
    font-size: 1.35rem;
    text-transform: uppercase;
}

.calendar-nav {
    width: 44px;
    height: 44px;
    border: 1px solid var(--edph-border);
    border-radius: 3px;
    background: rgba(0, 0, 0, .35);
    color: #fff;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

.calendar-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 1rem 0;
    color: var(--edph-muted);
    font-size: .9rem;
}

.calendar-legend span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.calendar-legend i {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 2px;
}

.legend-available {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .18);
}

.legend-unavailable {
    background: rgba(190, 40, 40, .55);
    border: 1px solid rgba(255, 90, 90, .45);
}

.legend-selected {
    background: rgba(126, 211, 33, .45);
    border: 1px solid rgba(126, 211, 33, .85);
}

.calendar-weekdays,
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: .35rem;
}

.calendar-weekdays span {
    padding: .45rem .25rem;
    color: var(--edph-muted);
    text-align: center;
    font-size: .82rem;
    text-transform: uppercase;
    font-weight: 700;
}

.calendar-day {
    min-height: 76px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 4px;
    background: rgba(255, 255, 255, .045);
    color: #fff;
    padding: .45rem;
    text-align: left;
    cursor: pointer;
}

.calendar-day:hover {
    border-color: var(--edph-green-bright);
}

.calendar-day.is-other-month {
    opacity: .35;
}

.calendar-day.is-past {
    opacity: .38;
    cursor: not-allowed;
}

.calendar-day.is-unavailable {
    background: rgba(190, 40, 40, .45);
    border-color: rgba(255, 90, 90, .45);
    cursor: not-allowed;
}

.calendar-day.is-selected {
    background: rgba(126, 211, 33, .35);
    border-color: rgba(126, 211, 33, .85);
}

.calendar-day.is-range {
    background: rgba(126, 211, 33, .18);
    border-color: rgba(126, 211, 33, .45);
}

.calendar-day-number {
    display: block;
    font-weight: 800;
}

.calendar-status {
    display: block;
    margin-top: .35rem;
    color: rgba(255, 255, 255, .78);
    font-size: .72rem;
    text-transform: uppercase;
}

.booking-estimate {
    border: 1px solid rgba(126, 211, 33, .25);
    border-radius: 4px;
    background: rgba(126, 211, 33, .08);
    color: var(--edph-green-bright);
    font-weight: 800;
    margin: .4rem 0 1rem;
    padding: .85rem;
}

.booking-help {
    color: var(--edph-muted);
}

/* ---------------------------------------------------------------------
   Admin
--------------------------------------------------------------------- */

.admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 2rem;
}

.admin-heading {
    margin-top: 2.5rem;
    text-transform: uppercase;
}

.admin-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
    gap: 1.25rem;
    align-items: start;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.form-grid.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.checkbox-label {
    display: inline-flex !important;
    align-items: center;
    gap: .5rem;
    width: auto !important;
}

.checkbox-label input {
    width: auto;
    margin: 0;
}

.inline-form {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.inline-form select {
    min-width: 130px;
}

.btn-small {
    min-height: 36px;
    padding: .45rem .75rem;
    font-size: .78rem;
}

.equipment-admin-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.admin-equipment-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .025));
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 8px;
    overflow: hidden;
}

.admin-equipment-card > img {
    width: 100%;
    height: 260px;
    object-fit: cover;
}

.compact-form {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.gallery-admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 1rem;
}

.gallery-admin-grid article {
    background: linear-gradient(180deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .025));
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 8px;
    padding: .85rem;
}

.gallery-admin-grid img {
    width: 100%;
    height: 130px;
    object-fit: cover;
    border-radius: 4px;
    margin-bottom: .6rem;
}

.gallery-admin-grid strong,
.gallery-admin-grid small {
    display: block;
}

.gallery-admin-grid small {
    color: var(--edph-muted);
    word-break: break-word;
}

.gallery-thumb {
    border: 1px solid rgba(255, 255, 255, .13);
    background: transparent;
    padding: 0;
    border-radius: 5px;
    cursor: pointer;
    overflow: hidden;
}

.gallery-thumb:hover {
    border-color: var(--edph-green-bright);
}

@media (max-width: 980px) {
    .admin-grid,
    .equipment-admin-grid,
    .form-grid,
    .form-grid.two {
        grid-template-columns: 1fr;
    }

    .calendar-day {
        min-height: 58px;
        padding: .35rem;
    }

    .calendar-status {
        display: none;
    }
}

@media (max-width: 620px) {
    .calendar-weekdays,
    .calendar-grid {
        gap: .2rem;
    }

    .calendar-day {
        min-height: 48px;
        font-size: .85rem;
    }
}


.card-link {
    display: block;
    margin-top: .75rem;
    color: var(--edph-green-bright);
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}

.public-booking-note {
    margin-top: 2rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .025));
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 8px;
    padding: 1.5rem;
}

.public-booking-note ol {
    margin: 0 0 1rem 1.2rem;
    padding: 0;
}

.public-booking-note li {
    margin-bottom: .35rem;
}


/* ---------------------------------------------------------------------
   Safety & hire requirements
--------------------------------------------------------------------- */

.section-safety {
    padding-top: 0;
}

.hire-requirements-panel {
    background: linear-gradient(180deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .025));
    border: 1px solid rgba(126, 211, 33, .35);
    border-radius: 8px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .28);
    padding: 1.5rem;
}

.hire-requirements-panel h2 {
    margin: 0 0 1rem;
    color: var(--edph-green-bright);
    text-transform: uppercase;
}

.requirements-list {
    columns: 2;
    column-gap: 2rem;
}

.requirement-checkbox {
    margin-top: 1rem;
    background: rgba(126, 211, 33, .08);
    border: 1px solid rgba(126, 211, 33, .25);
    border-radius: 4px;
    padding: .85rem;
}

@media (max-width: 720px) {
    .requirements-list {
        columns: 1;
    }
}


/* ---------------------------------------------------------------------
   Coming soon / temporary launch state
--------------------------------------------------------------------- */

.coming-soon-panel,
.coming-soon-box {
    border-color: rgba(126, 211, 33, .38);
}

.equipment-notice {
    margin-bottom: 2rem;
}

.price-line {
    color: var(--edph-muted);
}

.price-line strong {
    color: var(--edph-green-bright);
}

.card-link {
    display: block;
    margin-top: .75rem;
    color: var(--edph-green-bright);
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}

/* ---------------------------------------------------------------------
   About page
--------------------------------------------------------------------- */

.about-section {
    padding-bottom: 2.25rem;
}

.about-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(300px, .8fr);
    gap: 1.5rem;
    align-items: start;
}

.about-main,
.about-card {
    background: linear-gradient(180deg, rgba(255, 255, 255, .065), rgba(255, 255, 255, .025));
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 8px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .28);
    padding: 1.6rem;
}

.about-main h2,
.about-card h2 {
    margin-top: 0;
    color: var(--edph-green-bright);
    text-transform: uppercase;
}

.about-main p {
    color: var(--edph-muted);
    font-size: 1.05rem;
}

.about-safety {
    padding-top: 0;
}

@media (max-width: 980px) {
    .about-grid {
        grid-template-columns: 1fr;
    }
}
