@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');

:root{
  --black:#070b10;
  --ink:#111820;
  --gold:#d8ad61;
  --gold-light:#f0d29a;
  --white:#f7f7f5;
  --muted:#aab1b8;
  --line:rgba(255,255,255,.14);
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font-family:Montserrat,Arial,sans-serif;line-height:1.65}
a{color:inherit;text-decoration:none}
.site-header{position:absolute;z-index:10;top:0;left:0;right:0;height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;color:#fff;background:linear-gradient(rgba(0,0,0,.42),transparent)}
.brand{display:flex;align-items:center;gap:13px;font-size:13px;letter-spacing:2.4px;text-transform:uppercase;font-weight:600}
.brand img{width:48px;height:48px;border-radius:50%}
nav{display:flex;align-items:center;gap:30px;font-size:12px;letter-spacing:1.4px;text-transform:uppercase}
nav a{opacity:.92}
.nav-cta{border:1px solid rgba(240,210,154,.8);padding:10px 16px;color:#fff}
.hero{height:min(760px,78vh);min-height:560px;position:relative;overflow:hidden;background:#07101a;color:#fff}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.32),rgba(0,0,0,.08) 50%,rgba(0,0,0,.28)),linear-gradient(0deg,rgba(0,0,0,.44),transparent 50%)}
.hero-content{position:relative;z-index:2;max-width:1200px;height:100%;margin:0 auto;padding:0 6vw 52px;display:flex;align-items:flex-end;justify-content:flex-start}
.eyebrow{font-size:11px;letter-spacing:3px;font-weight:600;color:var(--gold-light);margin:0 0 16px;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(42px,6vw,82px);line-height:1.02;font-weight:500;letter-spacing:3px;text-transform:uppercase;margin-bottom:24px}
h1 span{color:var(--gold-light)}
.hero-copy{max-width:650px;font-size:17px;line-height:1.7;color:rgba(255,255,255,.92)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;font-size:11px;letter-spacing:1.7px;text-transform:uppercase;font-weight:600}
.button-gold{background:var(--gold);color:#111}
.button-ghost{border:1px solid rgba(255,255,255,.55);color:#fff}
.section{padding:110px max(6vw,24px)}
.intro{max-width:1000px;margin:auto;text-align:center}
h2{font-family:"Playfair Display",Georgia,serif;font-size:clamp(38px,5vw,64px);line-height:1.1;font-weight:500;margin-bottom:20px}
.lead{font-size:16px;max-width:800px;margin:0 auto;color:#606870}
.dark-section{background:var(--black);color:#fff}
.section-heading{max-width:var(--max);margin:0 auto 50px}
.dark-section .lead{color:var(--muted)}
.service-grid,.process-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.service-card{background:var(--black);padding:34px 30px 38px;min-height:245px}
.number{font-size:11px;letter-spacing:2px;color:var(--gold);display:block;margin-bottom:45px}
.service-card h3,.process-grid h3{font-size:20px;letter-spacing:1px;text-transform:uppercase;font-weight:500}
.service-card p{color:var(--muted);font-size:13px;line-height:1.8}
.feature-image{max-width:var(--max);margin:0 auto;aspect-ratio:2.5/1;overflow:hidden}
.feature-image img{width:100%;height:100%;object-fit:cover}
.work-note{max-width:var(--max);margin:20px auto 0;display:flex;justify-content:space-between;gap:30px;font-size:12px;color:#687078}
.work-note span{letter-spacing:2px;text-transform:uppercase;color:#333}
.work-note p{margin:0}
.about-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.about-copy{color:#c0c6cb;font-size:14px;line-height:1.9}
.credentials{max-width:var(--max);margin:75px auto 0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.credentials div{padding:26px 20px;border-right:1px solid var(--line)}
.credentials div:last-child{border-right:0}
.credentials strong{display:block;color:var(--gold-light);font-size:12px;letter-spacing:2px}
.credentials span{font-size:11px;color:var(--muted)}
.process{background:#eef0f0}
.process-grid{background:#d9dcdd}
.process-grid>div{background:#eef0f0;padding:30px;min-height:200px}
.process-grid span{font-size:11px;color:#8d6a30;letter-spacing:2px}
.process-grid h3{margin-top:35px}
.process-grid p{font-size:13px;color:#697078}
.cta{padding:90px 7vw;background:#0d141c;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px}
.cta h2{margin-bottom:0}
footer{background:#05080b;color:#cbd0d4;padding:32px 5vw;display:flex;justify-content:space-between;align-items:center;gap:30px;font-size:11px;letter-spacing:1px}
.footer-brand{display:flex;align-items:center;gap:14px}
.footer-brand img{width:46px;height:46px;border-radius:50%}
.footer-brand strong{display:block;letter-spacing:2px;color:#fff}
.footer-brand span{display:block;color:#7f878e;margin-top:3px}
.footer-right{text-align:right;color:#8d959c;line-height:1.8}
.footer-right a{color:var(--gold-light)}
@media(max-width:850px){
  nav a:not(.nav-cta){display:none}
  .hero{min-height:520px;height:72vh}
  .hero-content{padding:0 24px 32px}
  .service-grid,.process-grid{grid-template-columns:1fr 1fr}
  .about-grid{grid-template-columns:1fr;gap:30px}
  .credentials{grid-template-columns:1fr 1fr}
  .credentials div:nth-child(2){border-right:0}
  .credentials div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .cta{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  .site-header{padding:0 20px}
  .brand span{display:none}
  .hero{min-height:430px;height:62vh}
  .hero-content{padding:0 20px 24px}
  .hero-image{object-position:center center}
  .section{padding:78px 24px}
  .service-grid,.process-grid{grid-template-columns:1fr}
  .credentials{grid-template-columns:1fr}
  .credentials div{border-right:0!important;border-bottom:1px solid var(--line)}
  .credentials div:last-child{border-bottom:0}
  .feature-image{aspect-ratio:1.5/1}
  .work-note{display:block}
  footer{display:block}
  .footer-right{text-align:left;margin-top:20px}
}

/* Hero v3 — clean HTML headline over the approved photographic background. */
.hero{height:min(700px,76vh);min-height:540px}
.hero-shade{background:
  linear-gradient(90deg,rgba(4,8,13,.20) 0%,rgba(4,8,13,.38) 25%,rgba(4,8,13,.86) 46%,rgba(4,8,13,.88) 55%,rgba(4,8,13,.48) 74%,rgba(4,8,13,.20) 100%),
  linear-gradient(0deg,rgba(0,0,0,.48),rgba(0,0,0,.06) 58%,rgba(0,0,0,.24));}
.hero-content{align-items:center;padding:90px 6vw 45px}
.hero-copy{max-width:760px;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.hero-kicker{font-size:11px;letter-spacing:4px;font-weight:600;color:var(--gold-light);margin:0 0 18px;text-transform:uppercase}
.hero-copy h1{font-size:clamp(42px,5.2vw,74px);line-height:1.02;letter-spacing:2px;text-transform:uppercase;font-weight:500;margin:0 0 22px;color:#fff}
.hero-tagline{max-width:610px;font-size:17px;line-height:1.65;color:rgba(255,255,255,.94);margin:0 0 30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:850px){.hero{min-height:560px;height:70vh}.hero-content{padding:100px 24px 36px}.hero-copy h1{font-size:clamp(38px,8vw,60px)}}
@media(max-width:560px){.hero{min-height:510px;height:76vh}.hero-image{object-position:center center}.hero-shade{background:linear-gradient(90deg,rgba(4,8,13,.58),rgba(4,8,13,.76)),linear-gradient(0deg,rgba(0,0,0,.55),rgba(0,0,0,.15))}.hero-content{padding:90px 20px 28px}.hero-copy h1{font-size:39px;letter-spacing:1px}.hero-tagline{font-size:15px}.hero-actions .button{min-height:44px;padding:0 18px}}


/* =========================================================
   V6 — HERO-ONLY PATCH
   Everything below affects only the first screen.
   All sections after .hero remain exactly as in V3.
   ========================================================= */

.hero{
  position:relative;
  height:min(680px,78vh);
  min-height:560px;
  overflow:hidden;
  background:#07101a;
}

/* Keep the approved original banner as ONE continuous image. */
.hero-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

/*
  The approved banner contains typography baked into the image.
  This opaque/soft central panel hides that embedded typography,
  while leaving Valletta, the coast and the drone visible at the sides.
*/
.hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      rgba(4,10,16,.18) 0%,
      rgba(4,10,16,.34) 20%,
      rgba(4,10,16,.96) 35%,
      rgba(4,10,16,.985) 50%,
      rgba(4,10,16,.96) 65%,
      rgba(4,10,16,.34) 80%,
      rgba(4,10,16,.18) 100%),
    linear-gradient(0deg,rgba(2,7,12,.48),rgba(2,7,12,.06) 55%,rgba(2,7,12,.20));
}

.hero-content{
  position:relative;
  z-index:2;
  height:100%;
  max-width:1240px;
  margin:0 auto;
  padding:118px 6vw 48px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.hero-copy{
  width:min(720px,92%);
  max-width:720px;
  margin:0 auto;
}

.hero-kicker{
  margin:0 0 15px;
  color:var(--gold-light);
  font-size:11px;
  font-weight:600;
  letter-spacing:3.4px;
  text-transform:uppercase;
}

.hero-copy h1{
  margin:0 0 22px;
  color:#fff;
  font-size:clamp(42px,5vw,70px);
  line-height:1.03;
  font-weight:500;
  letter-spacing:2px;
  text-transform:uppercase;
  text-shadow:0 3px 18px rgba(0,0,0,.35);
}

.hero-tagline{
  max-width:610px;
  margin:0 auto;
  color:rgba(255,255,255,.94);
  font-size:16px;
  line-height:1.65;
}

.hero-actions{
  display:flex;
  justify-content:center;
  gap:14px;
  margin-top:30px;
  flex-wrap:wrap;
}

/* Surface / tablet */
@media (max-width: 900px){
  .hero{
    height:620px;
    min-height:620px;
  }
  .hero-content{
    padding:104px 32px 40px;
  }
  .hero-copy h1{
    font-size:clamp(40px,7vw,58px);
  }
  .hero-shade{
    background:
      linear-gradient(90deg,
        rgba(4,10,16,.30) 0%,
        rgba(4,10,16,.92) 24%,
        rgba(4,10,16,.985) 50%,
        rgba(4,10,16,.92) 76%,
        rgba(4,10,16,.30) 100%),
      linear-gradient(0deg,rgba(2,7,12,.52),rgba(2,7,12,.10));
  }
}

/* Phones / Fold */
@media (max-width: 560px){
  .site-header{
    height:72px;
  }
  .hero{
    height:570px;
    min-height:570px;
  }
  .hero-image{
    object-position:center center;
  }
  .hero-shade{
    /* On a narrow screen prioritize readability; photo remains atmospheric. */
    background:rgba(4,10,16,.86);
  }
  .hero-content{
    padding:88px 20px 30px;
    align-items:center;
  }
  .hero-copy{
    width:100%;
  }
  .hero-kicker{
    font-size:10px;
    letter-spacing:2.7px;
  }
  .hero-copy h1{
    font-size:clamp(34px,10.4vw,44px);
    line-height:1.04;
    letter-spacing:1px;
    margin-bottom:18px;
  }
  .hero-tagline{
    font-size:14px;
    line-height:1.55;
    max-width:360px;
  }
  .hero-actions{
    margin-top:24px;
    gap:10px;
  }
  .hero-actions .button{
    min-height:44px;
    padding:0 17px;
    font-size:10px;
  }
}


/* =========================================================
   V7 — DESKTOP HERO COMPOSITION
   Based on approved V6. Only the hero is affected.
   Side service labels move away from the centre and disappear
   on tablet/mobile, where the approved V6 treatment is retained.
   ========================================================= */

@media (min-width: 901px){
  .hero-content{
    max-width:1440px;
    display:grid;
    grid-template-columns:minmax(170px,1fr) minmax(560px,720px) minmax(170px,1fr);
    column-gap:34px;
    align-items:center;
    justify-content:center;
    text-align:center;
  }

  .hero-copy{
    grid-column:2;
    width:100%;
    max-width:720px;
    position:relative;
    z-index:3;
  }

  .hero-side{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:27px;
    color:rgba(255,255,255,.90);
    text-transform:uppercase;
    font-size:12px;
    letter-spacing:2px;
    line-height:1.2;
    position:relative;
    z-index:3;
  }

  .hero-side-left{
    grid-column:1;
    align-items:flex-end;
    text-align:right;
    padding-right:8px;
  }

  .hero-side-right{
    grid-column:3;
    align-items:flex-start;
    text-align:left;
    padding-left:8px;
  }

  .hero-side span{
    min-width:128px;
    padding-bottom:11px;
    border-bottom:1px solid rgba(216,177,104,.58);
  }

  .hero-side-left span{ text-align:right; }
  .hero-side-right span{ text-align:left; }

  /* A slightly wider clean centre keeps baked-in banner labels behind the mask. */
  .hero-shade{
    background:
      linear-gradient(90deg,
        rgba(4,10,16,.16) 0%,
        rgba(4,10,16,.30) 20%,
        rgba(4,10,16,.93) 31%,
        rgba(4,10,16,.985) 40%,
        rgba(4,10,16,.985) 60%,
        rgba(4,10,16,.93) 69%,
        rgba(4,10,16,.30) 80%,
        rgba(4,10,16,.16) 100%),
      linear-gradient(0deg,rgba(2,7,12,.48),rgba(2,7,12,.06) 55%,rgba(2,7,12,.20));
  }
}

/* Keep V6 mobile/Surface clean: no side labels on narrower screens. */
@media (max-width: 900px){
  .hero-side{display:none !important;}
}


/* =========================================================
   V8 — FINAL HERO LABEL CLEANUP
   V7 preserved. Hero-only override.
   Completely hides the OLD labels baked into hero-banner.png
   and retains only the new HTML service labels.
   ========================================================= */

@media (min-width: 901px){
  .hero-shade{
    background:
      linear-gradient(90deg,
        rgba(4,10,16,.15) 0%,
        rgba(4,10,16,.22) 17%,
        rgba(4,10,16,.72) 25%,
        rgba(4,10,16,.985) 31%,
        rgba(4,10,16,1) 38%,
        rgba(4,10,16,1) 62%,
        rgba(4,10,16,.985) 69%,
        rgba(4,10,16,.72) 75%,
        rgba(4,10,16,.22) 83%,
        rgba(4,10,16,.15) 100%),
      linear-gradient(0deg,
        rgba(2,7,12,.50),
        rgba(2,7,12,.08) 55%,
        rgba(2,7,12,.20));
  }

  .hero-side{
    font-size:15px;
    font-weight:500;
    letter-spacing:2.2px;
    gap:29px;
    text-shadow:0 2px 12px rgba(0,0,0,.72);
  }

  .hero-side span{
    min-width:150px;
    padding-bottom:11px;
    border-bottom:1px solid rgba(216,177,104,.72);
  }

  .hero-side-left{
    padding-right:18px;
  }

  .hero-side-right{
    padding-left:18px;
  }
}

/* On Surface/tablet/Fold/phone keep the already approved V6/V7 mobile hero:
   no desktop side labels. */
@media (max-width:900px){
  .hero-side{
    display:none !important;
  }
}


/* V9 — micro-sfalsamento categorie desktop
   Hospitality ed Events restano ESATTAMENTE nella posizione V8.
   Solo Weddings -30px e Real Estate +30px. */
@media (min-width: 901px) {
  .hero-side-left span:first-child {
    transform: translateX(-30px);
  }

  .hero-side-right span:first-child {
    transform: translateX(30px);
  }

  .hero-side-left span:nth-child(2),
  .hero-side-right span:nth-child(2) {
    transform: none;
  }
}

/* V11: keep approved V9 HTML/layout and suppress baked-in UI in source visual */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(3,12,20,.90) 0 112px, transparent 180px),
    radial-gradient(ellipse 43% 62% at 50% 49%,
      rgba(3,14,23,.98) 0%,
      rgba(3,14,23,.94) 54%,
      rgba(3,14,23,.62) 72%,
      rgba(3,14,23,0) 100%);
}
.hero > *:not(.hero-image) { position: relative; z-index: 3; }
.hero-image { z-index: 0; }


/* V12 functional */
html{scroll-behavior:smooth} section[id]{scroll-margin-top:90px}
.quote-form-wrap{width:min(720px,calc(100% - 40px));margin:34px auto 0}
.quote-form{display:grid;gap:16px;text-align:left}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.quote-form label{display:grid;gap:7px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.quote-form input,.quote-form select,.quote-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:inherit;padding:13px 14px;font:inherit;letter-spacing:normal;text-transform:none}
.quote-form select option{color:#111}.quote-form textarea{resize:vertical}
.quote-submit{justify-self:start;padding:13px 22px;border:1px solid #c9a45c;background:#c9a45c;color:#07121c;font-weight:700;letter-spacing:.08em;cursor:pointer}
.quote-note{margin:0;opacity:.65;font-size:12px}
@media(max-width:700px){.quote-grid{grid-template-columns:1fr}.quote-form-wrap{width:min(100% - 28px,720px)}}


/* V13 — ONLY header emblem enlargement (+20%).
   "Malta Sky Media" text and all other V12 elements remain unchanged. */
header .brand img,
.navbar .brand img,
nav .brand img,
.site-header .brand img,
.header-brand img {
  transform: scale(1.20);
  transform-origin: center;
}


/* V14 — header emblem +30% over original (V13 was +20%). */
header .brand img,
.navbar .brand img,
nav .brand img,
.site-header .brand img,
.header-brand img {
  transform: scale(1.30);
  transform-origin: center;
}


/* V15 — Selected Work / Capabilities. Hero and header remain untouched. */
.capability-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  margin-top:1px;
  background:rgba(10,20,29,.12);
}
.capability-grid article{
  padding:30px 26px 32px;
  background:#f7f4ee;
  min-height:180px;
}
.capability-grid span{
  display:block;
  margin-bottom:30px;
  color:#b38a45;
  font-size:12px;
  letter-spacing:.16em;
}
.capability-grid h3{
  margin:0 0 12px;
  font-size:21px;
}
.capability-grid p{
  margin:0;
  line-height:1.65;
  opacity:.72;
  font-size:14px;
}
#about .about-copy p + p{margin-top:18px}
@media(max-width:900px){
  .capability-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .capability-grid{grid-template-columns:1fr}
  .capability-grid article{min-height:auto}
}

/* V18: only Malta from above image */
#work .feature-image,#work .feature-image img{border-radius:12px}
#work .feature-image{overflow:hidden}

/* V19 — real quote form: invisible anti-spam field + status */
.msm-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-status{min-height:1.4em;margin-top:12px}

/* V20 — quote form fixes only */
#quote #quote-form label{display:block}
#quote #quote-form .quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
#quote #quote-form input,
#quote #quote-form select,
#quote #quote-form textarea{display:block;width:100%;box-sizing:border-box}
#quote #quote-form textarea{resize:vertical}
@media(max-width:700px){
  #quote #quote-form .quote-grid{grid-template-columns:1fr}
}

/* V21 — Cloudflare Turnstile */
.turnstile-wrap{margin:18px 0 16px;min-height:65px}

/* V22 — secondary email fallback; form remains primary */
#email-fallback{cursor:pointer}


/* V26 legal/privacy additions */
.legal-footer{margin-top:10px;font-size:.78rem;opacity:.72}
.legal-footer a,.form-privacy-note a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.form-privacy-note{margin-top:10px;font-size:.76rem;line-height:1.45;opacity:.72}
.legal-page{max-width:900px;margin:0 auto;padding:120px 24px 70px;color:#16212b}
.legal-page h1{font-size:clamp(2rem,5vw,3.6rem);margin-bottom:12px}
.legal-page h2{margin-top:34px;font-size:1.25rem}
.legal-page p,.legal-page li{line-height:1.7}
.legal-page a{color:inherit}
.legal-page .back-link{display:inline-block;margin-bottom:32px}


/* V27 — service landing pages only. Existing homepage rules above are unchanged. */
.service-page{background:#f7f4ee}
.service-page .site-header{background:#07121c}
.service-hero{min-height:620px;display:flex;align-items:center;padding:150px 7vw 90px;color:#fff;background:linear-gradient(90deg,rgba(3,14,23,.94),rgba(3,14,23,.72)),url("assets/malta-from-above-hd-v17.png") center/cover no-repeat}
.service-hero-inner{max-width:900px}
.service-hero h1{font-size:clamp(2.8rem,7vw,6.4rem);line-height:.96;margin:14px 0 24px;max-width:1050px}
.service-hero-inner>p:not(.eyebrow){max-width:780px;font-size:1.12rem;line-height:1.75;opacity:.88}
.service-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(10,20,29,.12)}
.service-detail-grid article{padding:38px 32px;background:#fff;min-height:230px}
.service-detail-grid span{display:block;margin-bottom:38px;color:#b38a45;font-size:12px;letter-spacing:.16em}
.service-detail-grid h2{font-size:1.4rem;margin:0 0 14px}.service-detail-grid p{line-height:1.7;opacity:.72;margin:0}
.service-compliance .section-heading{max-width:900px}.service-next{text-align:center}.service-next p:not(.eyebrow){max-width:650px;margin:0 auto 28px;line-height:1.7}
.service-page footer a{color:inherit}
@media(max-width:800px){.service-hero{min-height:auto;padding:140px 24px 80px}.service-detail-grid{grid-template-columns:1fr}.service-detail-grid article{min-height:auto}.service-page .site-header nav a:not(.nav-cta){display:none}}

/* V27 homepage internal links: visually inherit approved card styling */
#services .service-link{color:inherit;text-decoration:none}

/* V29 — clean Selected Work gallery */
.portfolio-gallery{max-width:var(--max);margin:34px auto 38px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.portfolio-item{margin:0;aspect-ratio:16/10;overflow:hidden;border-radius:12px;background:#0b1720}
.portfolio-item.portfolio-wide{grid-column:1/-1;aspect-ratio:2.15/1}
.portfolio-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
@media (hover:hover){.portfolio-item:hover img{transform:scale(1.018)}}
@media (max-width:700px){.portfolio-gallery{grid-template-columns:1fr;gap:10px;margin-top:26px}.portfolio-item,.portfolio-item.portfolio-wide{grid-column:auto;aspect-ratio:4/3}}


/* V30 — Services & Packages */
.service-packages{background:#f5f2eb;color:#0b1720;padding:92px 24px}
.service-packages .section-inner{max-width:1180px;margin:0 auto}
.service-packages .eyebrow{font-size:12px;letter-spacing:.22em;font-weight:700;color:#a17b36;margin-bottom:18px}
.service-packages h2{font-family:Georgia,serif;font-size:clamp(36px,5vw,64px);line-height:1.02;margin:0 0 22px;font-weight:500}
.packages-intro{max-width:780px;font-size:17px;line-height:1.75;color:#5b6469;margin:0 0 46px}
.sector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.sector-card{background:#fff;border:1px solid rgba(11,23,32,.09);border-radius:14px;padding:30px;scroll-margin-top:100px}
.sector-number{display:block;font-size:12px;letter-spacing:.18em;color:#a17b36;margin-bottom:15px}
.sector-card h3{font-family:Georgia,serif;font-size:29px;margin:0 0 13px;font-weight:500}
.sector-card p{color:#5b6469;line-height:1.65;margin:0 0 18px}
.sector-card ul{padding-left:18px;margin:0 0 25px;color:#334047;line-height:1.75}
.sector-price{border-top:1px solid rgba(11,23,32,.1);padding-top:20px;margin-top:4px;font-size:14px;color:#5b6469}
.sector-price strong{display:block;color:#0b1720;font-family:Georgia,serif;font-size:27px;font-weight:500;margin-top:4px}
.sector-cta{display:inline-block;margin-top:18px;text-decoration:none;color:#0b1720;font-size:12px;font-weight:700;letter-spacing:.13em;border-bottom:1px solid #a17b36;padding-bottom:5px}
.package-strip{display:grid;grid-template-columns:repeat(3,1fr);background:#071722;color:#fff;border-radius:14px;margin-top:22px;overflow:hidden}
.package-strip>div{padding:27px 26px;border-right:1px solid rgba(255,255,255,.12)}
.package-strip>div:last-child{border-right:0}
.package-strip span{display:block;color:#c7a762;font-size:11px;letter-spacing:.16em;font-weight:700}
.package-strip strong{display:block;font-family:Georgia,serif;font-size:27px;font-weight:500;margin:8px 0 5px}
.package-strip small{color:#b8c0c4;line-height:1.45}
.pricing-note{font-size:12px;color:#747b7f;line-height:1.6;margin:18px 3px 0;max-width:900px}
.service-clickable{cursor:pointer}
.service-clickable:focus-visible{outline:2px solid #c7a762;outline-offset:5px}
@media (hover:hover){.service-clickable{transition:transform .2s ease,opacity .2s ease}.service-clickable:hover{transform:translateY(-2px);opacity:.9}}
@media(max-width:760px){
 .service-packages{padding:68px 20px}
 .sector-grid,.package-strip{grid-template-columns:1fr}
 .package-strip>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
 .package-strip>div:last-child{border-bottom:0}
}

/* V30.1 spacing fix */
.service-packages .section-inner{width:min(1180px,calc(100% - 96px));max-width:1180px;margin-left:auto;margin-right:auto}
@media(max-width:760px){.service-packages .section-inner{width:calc(100% - 32px)}}


/* V30.2 — Premium framed Services & Packages presentation */
.service-packages{
  background:#f5f2eb;
  padding:96px 24px 104px;
}
.service-packages .section-inner{
  width:min(1120px,calc(100% - 72px));
  max-width:1120px;
  margin:0 auto;
}
.service-packages .eyebrow{
  text-align:center;
  margin-bottom:16px;
}
.service-packages h2{
  text-align:center;
  max-width:820px;
  margin:0 auto 22px;
}
.packages-intro{
  text-align:center;
  max-width:760px;
  margin:0 auto 48px;
}

/* One elegant outer frame keeps the whole commercial offer together */
.sector-grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  max-width:1040px;
  margin:0 auto;
  background:#fff;
  border:1px solid rgba(161,123,54,.55);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 18px 55px rgba(8,24,34,.09);
}
.sector-grid::before{
  content:"";
  position:absolute;
  inset:9px;
  border:1px solid rgba(161,123,54,.14);
  border-radius:13px;
  pointer-events:none;
  z-index:2;
}
.sector-card{
  position:relative;
  background:#fff;
  border:0;
  border-radius:0;
  padding:40px 42px 38px;
  min-height:390px;
  display:flex;
  flex-direction:column;
}
.sector-card:nth-child(odd){border-right:1px solid rgba(11,23,32,.11)}
.sector-card:nth-child(-n+2){border-bottom:1px solid rgba(11,23,32,.11)}
.sector-number{
  width:38px;height:38px;border:1px solid rgba(161,123,54,.55);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  margin-bottom:20px;color:#9b7530;background:#fbf8f1;
}
.sector-card h3{font-size:31px;margin-bottom:14px}
.sector-card p{font-size:15px;line-height:1.7;max-width:440px}
.sector-card ul{
  margin:2px 0 24px;
  padding:0;
  list-style:none;
}
.sector-card li{
  position:relative;
  padding:5px 0 5px 20px;
  line-height:1.5;
}
.sector-card li::before{
  content:"";
  position:absolute;
  left:0;top:13px;
  width:7px;height:7px;
  border:1px solid #a17b36;
  transform:rotate(45deg);
}
.sector-price{
  margin-top:auto;
  padding-top:20px;
  border-top:1px solid rgba(11,23,32,.1);
}
.sector-price strong{font-size:29px}
.sector-cta{
  align-self:flex-start;
  margin-top:18px;
}

/* The three simple products become a centered premium price band */
.package-strip{
  max-width:1040px;
  margin:24px auto 0;
  border-radius:18px;
  box-shadow:0 14px 42px rgba(8,24,34,.12);
}
.package-strip>div{
  padding:30px 30px 28px;
  text-align:center;
}
.package-strip span{margin-bottom:8px}
.package-strip strong{font-size:30px}
.pricing-note{
  max-width:920px;
  margin:20px auto 0;
  text-align:center;
}

@media(max-width:760px){
  .service-packages{padding:68px 18px 76px}
  .service-packages .section-inner{width:100%}
  .sector-grid{grid-template-columns:1fr;border-radius:16px}
  .sector-card{min-height:auto;padding:32px 28px}
  .sector-card:nth-child(odd){border-right:0}
  .sector-card:nth-child(-n+3){border-bottom:1px solid rgba(11,23,32,.11)}
  .package-strip{grid-template-columns:1fr;border-radius:16px}
  .package-strip>div{text-align:left;padding:25px 27px}
}


/* V31 — Service Area + FAQ */
.faq-area{
  background:#071722;
  color:#fff;
  padding:94px 24px 102px;
}
.faq-inner{
  width:min(1060px,calc(100% - 72px));
  margin:0 auto;
}
.faq-area .eyebrow{
  color:#c7a762;
  font-size:11px;
  letter-spacing:.21em;
  font-weight:700;
  margin-bottom:14px;
}
.faq-service-area{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:70px;
  align-items:end;
  padding:0 0 54px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.faq-service-area h2,
.faq-heading h2{
  font-family:Georgia,serif;
  font-weight:500;
  line-height:1.04;
  margin:0;
}
.faq-service-area h2{font-size:clamp(38px,5vw,60px)}
.faq-service-area p{
  color:#bdc6ca;
  line-height:1.75;
  margin:0;
  max-width:570px;
}
.faq-heading{
  text-align:center;
  padding:62px 0 35px;
}
.faq-heading h2{font-size:clamp(38px,5vw,58px)}
.faq-heading p{
  color:#aeb8bd;
  margin:14px 0 0;
}
.faq-list{
  max-width:900px;
  margin:0 auto;
  border-top:1px solid rgba(199,167,98,.45);
}
.faq-list details{
  border-bottom:1px solid rgba(255,255,255,.14);
}
.faq-list summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
  padding:23px 4px;
  font-size:16px;
  font-weight:600;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{
  color:#c7a762;
  font-family:Georgia,serif;
  font-size:25px;
  font-weight:400;
  transition:transform .2s ease;
}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-answer{
  color:#b9c2c6;
  line-height:1.75;
  padding:0 48px 24px 4px;
  max-width:820px;
}
@media(max-width:760px){
  .faq-area{padding:70px 18px 78px}
  .faq-inner{width:100%}
  .faq-service-area{grid-template-columns:1fr;gap:22px;padding-bottom:42px}
  .faq-heading{padding-top:48px}
  .faq-list summary{font-size:15px;padding:21px 2px}
  .faq-answer{padding-right:20px}
}


/* V32 — Aerial showreel */
.showreel-section {
  padding: 88px 6vw 96px;
  background: #071521;
  color: #fff;
}
.showreel-inner {
  width: min(1180px, 100%);
  margin: 0 auto;
}
.showreel-heading {
  max-width: 760px;
  margin: 0 auto 34px;
  text-align: center;
}
.showreel-heading h2 {
  margin: 8px 0 14px;
  color: #fff;
}
.showreel-heading p:last-child {
  margin: 0 auto;
  max-width: 680px;
  color: rgba(255,255,255,.72);
  line-height: 1.7;
}
.showreel-frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  border: 1px solid rgba(197,158,85,.48);
  background: #02080d;
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
}
.showreel-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}
.showreel-frame video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 700px) {
  .showreel-section { padding: 62px 20px 70px; }
  .showreel-heading { margin-bottom: 24px; }
  .showreel-frame { border-radius: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .showreel-frame video { }
}

/* =========================================================
   V32.1 — RESPONSIVE HERO CLEANUP
   Surgical fix only: suppress residual baked-in CTA/UI from
   the approved hero artwork. Desktop composition is unchanged.
   ========================================================= */
.hero::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:min(620px,46vw);
  height:74px;
  transform:translateX(-50%);
  z-index:2;
  pointer-events:none;
  background:linear-gradient(to bottom,
    rgba(3,14,23,0) 0%,
    rgba(3,14,23,.88) 38%,
    rgba(3,14,23,.98) 100%);
}

@media (max-width:560px){
  .hero::before{
    background:rgba(3,14,23,.965);
  }
  .hero::after{
    width:100%;
    height:96px;
    background:linear-gradient(to bottom,rgba(3,14,23,0),rgba(3,14,23,.98));
  }
  .hero-content{
    padding-left:22px;
    padding-right:22px;
  }
  .hero-copy h1{
    font-size:clamp(31px,9.4vw,39px);
    line-height:1.05;
    letter-spacing:.6px;
    overflow-wrap:normal;
  }
  .hero-actions{
    width:100%;
    justify-content:center;
  }
  .hero-actions .button{
    flex:0 1 auto;
    white-space:nowrap;
    padding-left:14px;
    padding-right:14px;
  }
}

/* V32.2B — corrected desktop cleanup.
   Overrides V32.1 bottom fade without creating a visible horizontal bar. */
@media (min-width:901px){
  .hero::after{
    content:"";
    position:absolute;
    z-index:2;
    pointer-events:none;
    left:50%;
    right:auto;
    top:auto;
    bottom:0;
    width:min(760px,42vw);
    height:64px;
    transform:translateX(-50%);
    background:radial-gradient(
      ellipse 72% 110% at 50% 100%,
      rgba(3,14,23,.99) 0%,
      rgba(3,14,23,.97) 58%,
      rgba(3,14,23,.70) 76%,
      rgba(3,14,23,0) 100%
    );
  }
  .hero>*:not(.hero-image){position:relative;z-index:3;}
}
