#gal-hero{min-height:calc(100vh - var(--ss-header-total));background:#fff;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:48px 7% 80px;gap:64px;position:relative;overflow:hidden;}
.gh-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(26,95,122,.038) 1px,transparent 1px),linear-gradient(90deg,rgba(26,95,122,.038) 1px,transparent 1px);background-size:55px 55px;animation:gridDrift 22s linear infinite;pointer-events:none;}
.gh-circle{position:absolute;right:-60px;top:-60px;width:360px;height:360px;border:1px solid rgba(201,168,76,.14);border-radius:50%;animation:rotateSlow 45s linear infinite;pointer-events:none;}
.gh-circle::before{content:'';position:absolute;inset:28px;border:1px dashed rgba(26,95,122,.09);border-radius:50%;animation:rotateCCW 30s linear infinite;}
.gh-circle::after{content:'';position:absolute;inset:56px;border:1px solid rgba(201,168,76,.07);border-radius:50%;}
.gh-left{position:relative;z-index:5;animation:heroUp .9s var(--ease) .1s both;}
.gh-badge{display:inline-flex;align-items:center;gap:10px;padding:9px 20px;background:rgba(255,255,255,.78);backdrop-filter:blur(14px);border:1px solid rgba(26,95,122,.18);border-radius:60px;font-family:var(--f-nav);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);margin-bottom:26px;box-shadow:var(--shadow-glass);}
.bp{width:7px;height:7px;background:var(--blue-l);border-radius:50%;animation:pulseDot 2s infinite;}
.gh-h1{font-family:var(--f-serif);font-size:clamp(3rem,5.5vw,6rem);font-weight:700;line-height:.92;letter-spacing:-.025em;margin-bottom:8px;}
.gh-h1 .line{display:block;overflow:hidden;}
.gh-h1 .inner{display:block;transform:translateY(110%);animation:fadeUp .85s var(--ease) forwards;}
.gh-h1 .l2 .inner{animation-delay:.14s;color:var(--blue);font-style:italic;}
.gh-h1 .l3 .inner{animation-delay:.28s;-webkit-text-stroke:1.5px var(--blue);color:transparent;}
.gh-sub{font-family:var(--f-nav);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:22px 0 16px;animation:fadeL .8s var(--ease) .5s both;}
.gh-p{font-size:.98rem;line-height:1.85;color:var(--ink-l);max-width:520px;margin-bottom:34px;animation:fadeUp .8s var(--ease) .65s both;}
.gh-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px;animation:fadeUp .8s var(--ease) .82s both;}
.gh-stats{display:grid;grid-template-columns:repeat(3,1fr);border-radius:14px;overflow:hidden;animation:fadeUp .8s var(--ease) 1s both;background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--border-w);box-shadow:var(--shadow-glass);}
.ghs-i{padding:18px 14px;text-align:center;border-right:1px solid var(--border);position:relative;overflow:hidden;transition:background .3s;}
.ghs-i:last-child{border-right:none;}
.ghs-i::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--gold));transform:scaleX(0);transition:transform .4s var(--ease);transform-origin:left;}
.ghs-i:hover::after{transform:scaleX(1);}
.ghs-i:hover{background:var(--cream);}
.ghs-n{font-family:var(--f-serif);font-size:2rem;font-weight:700;color:var(--blue);line-height:1;margin-bottom:4px;}
.ghs-l{font-family:var(--f-nav);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-l);}
/* Right */
.gh-right{position:relative;z-index:5;height:670px;animation:fadeR .9s var(--ease) .3s both;perspective:1200px;}
.gh-main{position:absolute;top:0;right:0;width:calc(100% - 70px);height:550px;border-radius:24px;overflow:hidden;box-shadow:var(--shadow),0 0 0 1px rgba(26,95,122,.1);animation:floatA 10s ease infinite;border:1px solid rgba(255,255,255,.6);transition:transform .4s ease;}
.gh-main img{width:100%;height:100%;}
.gh-main::after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(26,122,156,.08) 0%,transparent 50%,rgba(13,27,34,.3) 100%);}
.gh-fc1{position:absolute;bottom:50px;left:0;width:215px;background:rgba(255,255,255,.78);backdrop-filter:blur(22px);border:1px solid var(--border-w);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-glass);animation:floatB 8s ease 1s infinite;z-index:10;}
.gh-fc1 img{width:100%;height:118px;}
.gh-fc1b{padding:13px 15px;}
.gh-fc1b h4{font-family:var(--f-nav);font-size:13px;font-weight:700;color:var(--ink);margin-bottom:3px;}
.gh-fc1b p{font-size:11px;color:var(--ink-l);}
.gh-fc2{position:absolute;top:28px;left:18px;padding:11px 17px;background:rgba(255,255,255,.78);backdrop-filter:blur(18px);border:1px solid var(--border-w);border-radius:10px;box-shadow:var(--shadow-glass);animation:floatC 6s ease .5s infinite;z-index:10;}
.gh-fc2 p{font-family:var(--f-nav);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);}
.gh-fc2 span{font-family:var(--f-serif);font-size:1.5rem;font-weight:700;color:var(--ink);display:block;margin-top:1px;}
.cdeco{position:absolute;width:44px;height:44px;pointer-events:none;}
.cdeco::before,.cdeco::after{content:'';position:absolute;width:13px;height:13px;border-color:var(--gold);border-style:solid;}
.cdeco-tr{top:14px;right:14px;}.cdeco-tr::before{top:0;right:0;border-width:1.5px 1.5px 0 0;}
.cdeco-bl{bottom:60px;left:60px;}.cdeco-bl::after{bottom:0;left:0;border-width:0 0 1.5px 1.5px;}

/* TICKER */
.ticker{background:var(--blue);padding:16px 0;overflow:hidden;}
.ticker-t{display:flex;white-space:nowrap;animation:ticker 28s linear infinite;}
.ti{display:inline-flex;align-items:center;gap:16px;padding:0 32px;font-family:var(--f-nav);font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.75);white-space:nowrap;}
.ti .dot{width:5px;height:5px;border-radius:50%;background:var(--gold-l);flex-shrink:0;}

/* OUR STORY */
#story{padding:120px 7%;background:var(--off);position:relative;overflow:hidden;}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.story-vis{position:relative;height:520px;}
.sv-main{position:absolute;inset:0 0 60px 0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--border);}
.sv-main img{width:100%;height:100%;transition:transform .8s ease;}
.sv-main:hover img{transform:scale(1.04);}
.sv-main::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(26,95,122,.12),transparent 60%);}
.sv-badge{position:absolute;bottom:0;right:20px;width:192px;padding:18px;background:rgba(255,255,255,.78);backdrop-filter:blur(22px);border:1px solid var(--border-w);border-radius:16px;box-shadow:var(--shadow-glass);animation:glassGlow 7s ease infinite;z-index:5;}
.sv-badge .sbn{font-family:var(--f-serif);font-size:2.2rem;font-weight:700;color:var(--gold);line-height:1;}
.sv-badge .sbl{font-family:var(--f-nav);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-l);margin-top:4px;}
.sv-ring{position:absolute;top:-16px;right:-16px;width:96px;height:96px;border:1.5px solid rgba(201,168,76,.22);border-radius:50%;animation:rotateSlow 18s linear infinite;pointer-events:none;}
.sv-ring::before{content:'';position:absolute;inset:11px;border:1px dashed rgba(26,95,122,.15);border-radius:50%;animation:rotateCCW 12s linear infinite;}
.story-text .quote{margin:24px 0;padding:20px 22px;background:rgba(255,255,255,.78);backdrop-filter:blur(14px);border-left:3px solid var(--gold);border-radius:0 12px 12px 0;box-shadow:var(--shadow-glass);font-family:var(--f-serif);font-size:1.2rem;font-style:italic;color:var(--ink-m);line-height:1.6;}

/* GALLERY FILTER TABS */
#gallery{padding:100px 7%;background:#fff;position:relative;overflow:hidden;}
.gal-head{text-align:center;max-width:640px;margin:0 auto 48px;}
.gal-filters{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:48px;}
.gf{padding:10px 22px;background:rgba(255,255,255,.78);backdrop-filter:blur(12px);border:1.5px solid var(--border-w);border-radius:60px;font-family:var(--f-nav);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-m);cursor:pointer;transition:all .3s var(--ease);box-shadow:var(--shadow-glass);}
.gf:hover,.gf.active{background:var(--blue);color:#fff;border-color:var(--blue);transform:translateY(-3px);box-shadow:0 10px 30px rgba(26,95,122,.25);}

/* Category gallery sections */
.gal-category-section{
  padding:100px 7% 80px;
  width:100%;
}
#residential-gallery{background:var(--off);}
#hospitality-gallery{background:#fff;}
#pubs-gallery{background:var(--off);}
#unique-gallery{background:#fff;}
#institutional-gallery{background:var(--off);}
.gal-category-section .gal-head{
  max-width:720px;
  margin:0 auto 40px;
  text-align:center;
}
.gal-category-section .gal-head .eyebrow{justify-content:center;}
.gal-category-section .gal-head .gold-bar{margin-left:auto;margin-right:auto;}
.gal-category-section .gal-head .body-p{margin-left:auto;margin-right:auto;max-width:640px;}

/* True masonry — full image, no crop, no letterbox */
.gal-masonry{
  max-width:1280px;
  margin:0 auto;
  column-count:3;
  column-gap:18px;
}
.gal-category-section .gal-masonry{margin-top:8px;}

.gal-category-section .gi,
.gal-masonry .gi{
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  margin:0 0 18px;
  border-radius:18px;
  overflow:hidden;
  position:relative;
  border:1px solid var(--border);
  cursor:pointer;
  background:#0d1b22;
  box-shadow:var(--shadow-s);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s;
  display:block;
  aspect-ratio:auto;
  padding:0;
  width:100%;
}
.gal-category-section .gi:hover,
.gal-masonry .gi:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow);
  border-color:rgba(26,95,122,.28);
}
.gal-category-section .gi img,
.gal-masonry .gi img{
  width:100%;
  height:auto;
  max-height:none;
  display:block;
  object-fit:unset;
  object-position:center;
  background:transparent;
  border-radius:0;
  transition:transform .7s ease;
  filter:contrast(1.04) saturate(1.06);
}
.gal-category-section .gi:hover img,
.gal-masonry .gi:hover img{transform:scale(1.03);opacity:1;}

/* Showcase-style glass caption */
.gal-category-section .gi-cap,
.gal-masonry .gi-cap{
  position:absolute;left:0;right:0;bottom:0;
  padding:14px 14px 16px;
  background:linear-gradient(180deg,transparent,rgba(13,27,34,.78));
  opacity:0;
  transform:translateY(8px);
  transition:opacity .35s var(--ease),transform .35s var(--ease);
  pointer-events:none;
}
.gal-category-section .gi:hover .gi-cap,
.gal-masonry .gi:hover .gi-cap{opacity:1;transform:translateY(0);}
.gi-cap-inner{
  display:block;
  background:rgba(255,255,255,.16);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.28);
  border-radius:10px;
  padding:10px 12px;
  color:#fff;
  font-family:var(--f-body);
  font-size:.88rem;
  font-weight:600;
  line-height:1.35;
  letter-spacing:-.01em;
}
.gal-category-section .gi-info,
.gal-category-section .gi-ov,
.gi-ov,.gi-info{display:none!important;}
.gi-wide,.gi-tall{grid-column:auto;grid-row:auto;}

@media(max-width:980px){
  .gal-masonry{column-count:2;column-gap:14px;}
}
@media(max-width:560px){
  .gal-masonry{column-count:1;}
  .gal-category-section{padding:72px 5% 56px;}
}

/* Showcase-style sector mosaic (matches home) */
.gal-sector-sg{
  display:grid;
  grid-template-columns:1.45fr 1fr 1fr;
  grid-template-rows:300px 300px;
  gap:18px;
  max-width:1280px;
  margin:48px auto 0;
  align-items:stretch;
}
.gal-sector-sg .scard{
  border-radius:22px;overflow:hidden;position:relative;
  border:1px solid var(--border);height:100%;min-height:0;
  transition:all .5s var(--ease);
}
.gal-sector-sg .scard:hover{transform:translateY(-10px) scale(1.012);box-shadow:var(--shadow);border-color:rgba(26,95,122,.28);}
.gal-sector-sg .scard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .8s ease;}
.gal-sector-sg .scard:hover img{transform:scale(1.06);}
.gal-sector-sg .sg-large{grid-row:1/3;}
.gal-sector-sg .scard-label{position:absolute;bottom:0;left:0;right:0;padding:0 18px 16px;z-index:3;}
.gal-sector-sg .scard-label::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 10%,rgba(13,27,34,.72));pointer-events:none;}
.gal-sector-sg .scard-glass-inner{
  position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;width:100%;
  background:rgba(255,255,255,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:14px 16px;
  box-shadow:0 4px 20px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.35);
}
.gal-sector-sg .sg-tag{display:inline-block;font-family:var(--f-body);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-l);line-height:1.2;margin:0;}
.gal-sector-sg .scard-glass-inner h3{font-family:var(--f-body);font-size:1.02rem;font-weight:700;color:#fff;margin:0;line-height:1.3;}
.gal-sector-sg .scard-glass-inner p{font-family:var(--f-body);font-size:12px;color:rgba(255,255,255,.78);margin:0;line-height:1.45;}
@media(max-width:900px){
  .gal-sector-sg{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .gal-sector-sg .sg-large{grid-row:1/2;grid-column:1/3;min-height:300px;}
  .gal-sector-sg .scard{min-height:220px;}
}
@media(max-width:560px){
  .gal-sector-sg{grid-template-columns:1fr;}
  .gal-sector-sg .sg-large{grid-column:auto;}
}

/* SECTOR SHOWCASE (legacy cards kept for safety) */
#sectors{padding:120px 7%;background:var(--off);position:relative;overflow:hidden;}
.sec-head{text-align:center;max-width:660px;margin:0 auto 64px;}
.sec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.sec-card{background:rgba(255,255,255,.78);backdrop-filter:blur(18px);border:1px solid var(--border-w);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-glass);transition:all .45s var(--ease);animation:glassGlow 8s ease infinite;}
.sec-card:nth-child(2){animation-delay:1.5s;}.sec-card:nth-child(3){animation-delay:3s;}.sec-card:nth-child(4){animation-delay:4.5s;}
.sec-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:var(--shadow);animation-play-state:paused;}
.sec-img{height:200px;overflow:hidden;position:relative;}
.sec-img img{width:100%;height:100%;transition:transform .7s ease;}
.sec-card:hover .sec-img img{transform:scale(1.08);}
.sec-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(13,27,34,.5) 100%);}
.sec-body{padding:20px 18px 22px;}
.sec-tag{display:inline-block;font-family:var(--f-nav);font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding:3px 10px;border:1px solid rgba(201,168,76,.28);border-radius:20px;background:rgba(201,168,76,.06);margin-bottom:8px;}
.sec-body h4{font-family:var(--f-serif);font-size:1.05rem;font-weight:600;color:var(--ink);margin-bottom:8px;}
.sec-list{list-style:none;display:flex;flex-direction:column;gap:4px;}
.sec-list li{font-size:12px;color:var(--ink-l);display:flex;align-items:center;gap:8px;}
.sec-list li::before{content:'◆';font-size:6px;color:var(--gold);flex-shrink:0;}
.sec-line{height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-l));border-radius:2px;margin-top:14px;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);}
.sec-card:hover .sec-line{transform:scaleX(1);}

/* STATS BAND */
#stats-band{padding:80px 7%;background:var(--blue);position:relative;overflow:hidden;}
#stats-band::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.038) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.038) 1px,transparent 1px);background-size:50px 50px;pointer-events:none;}
.scan-line{position:absolute;left:0;right:0;height:1.5px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);animation:scanV 6s linear infinite;pointer-events:none;}
#stats-band::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),var(--blue-l),var(--gold),transparent);opacity:.7;}
.sb-inner{display:grid;grid-template-columns:1fr auto;gap:80px;align-items:center;position:relative;z-index:2;}
.sb-txt h2{font-family:var(--f-serif);font-size:clamp(1.9rem,3vw,2.9rem);font-weight:600;color:#fff;line-height:1.2;margin-bottom:14px;}
.sb-txt h2 em{font-style:italic;color:var(--gold-l);}
.sb-txt p{font-size:.93rem;line-height:1.82;color:rgba(255,255,255,.68);max-width:490px;}
.sb-nums{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden;min-width:340px;}
.sb-num{padding:26px 22px;background:rgba(255,255,255,.06);backdrop-filter:blur(10px);transition:background .3s;}
.sb-num:hover{background:rgba(255,255,255,.12);}
.sb-num .n{font-family:var(--f-serif);font-size:2.5rem;font-weight:700;color:#fff;line-height:1;margin-bottom:5px;}
.sb-num .n span{color:var(--gold-l);}
.sb-num .l{font-family:var(--f-nav);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);}

/* TESTIMONIALS */
#testimonials{padding:120px 7%;background:#fff;position:relative;overflow:hidden;}
.test-head{text-align:center;max-width:640px;margin:0 auto 60px;}
.test-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.tcard{background:rgba(255,255,255,.78);backdrop-filter:blur(18px);border:1px solid var(--border-w);border-radius:18px;padding:26px 22px;position:relative;overflow:hidden;box-shadow:var(--shadow-glass);transition:all .4s var(--ease);animation:glassGlow 6s ease infinite;}
.tcard:nth-child(2){animation-delay:1.5s;}.tcard:nth-child(3){animation-delay:3s;}.tcard:nth-child(4){animation-delay:4.5s;}
.tcard:hover{transform:translateY(-8px);box-shadow:0 28px 70px rgba(26,95,122,.14);animation-play-state:paused;}
.tcard::before{content:'"';position:absolute;top:-10px;left:16px;font-family:var(--f-serif);font-size:7rem;font-weight:700;color:rgba(26,95,122,.05);line-height:1;pointer-events:none;}
.tcard::after{content:'';position:absolute;top:0;bottom:0;width:30%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);left:-70%;transform:skewX(-15deg);}
.tcard:hover::after{animation:beam .65s ease forwards;}
.t-stars{display:flex;gap:3px;margin-bottom:12px;}.t-stars span{font-size:12px;}
.t-name{font-family:var(--f-serif);font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:2px;}
.t-role{font-family:var(--f-nav);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:12px;}
.t-quote{font-size:13px;line-height:1.82;color:var(--ink-l);font-style:italic;}
.t-ago{font-family:var(--f-nav);font-size:10px;color:rgba(107,136,152,.6);margin-top:10px;}

/* CONTACT */
#contact{padding:120px 7%;background:var(--ink);position:relative;overflow:hidden;}
#contact::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:55px 55px;pointer-events:none;}
#contact::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),var(--blue-l),var(--gold),transparent);opacity:.7;}
.ct-wire{position:absolute;right:5%;top:50%;transform:translateY(-50%);width:380px;height:380px;opacity:.055;pointer-events:none;}
.ct-wire svg{width:100%;height:100%;animation:wireframeSpin 22s linear infinite;}
.ct-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.ct-left .eyebrow{color:var(--gold-l);}.ct-left .eyebrow::before{background:var(--gold);}
.ct-left h2{font-family:var(--f-serif);font-size:clamp(2.2rem,4vw,3.8rem);font-weight:700;line-height:1.05;color:#fff;margin-bottom:20px;}
.ct-left h2 em{font-style:italic;color:var(--gold-l);}
.ct-left .body-p{color:rgba(255,255,255,.6);margin-bottom:32px;}
.ct-info{display:flex;flex-direction:column;gap:18px;margin-top:32px;padding-top:28px;border-top:1px solid rgba(255,255,255,.08);}
.ci{display:flex;align-items:flex-start;gap:14px;}
.ci-ic{width:40px;height:40px;border:1px solid rgba(255,255,255,.12);border-radius:10px;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:16px;background:rgba(255,255,255,.06);backdrop-filter:blur(8px);flex-shrink:0;}
.ci-lbl{font-family:var(--f-nav);font-size:10px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:3px;}
.ci-val{font-size:13.5px;color:#fff;line-height:1.6;}
.ct-form{background:rgba(255,255,255,.78);backdrop-filter:blur(22px);border:1px solid var(--border-w);border-radius:20px;padding:36px 32px;box-shadow:var(--shadow-glass);}
.ct-form h3{font-family:var(--f-serif);font-size:1.5rem;font-weight:600;color:var(--ink);margin-bottom:24px;}
.fr{margin-bottom:18px;}
.fl{display:block;font-family:var(--f-nav);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-m);margin-bottom:7px;}
.fi,.fta{width:100%;padding:12px 16px;background:rgba(255,255,255,.7);backdrop-filter:blur(8px);border:1.5px solid var(--border);border-radius:8px;font-family:var(--f-body);font-size:.94rem;color:var(--ink);outline:none;transition:border-color .3s,box-shadow .3s;}
.fi:focus,.fta:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,95,122,.1);}
.fta{height:110px;resize:vertical;}
.fsub{width:100%;padding:15px;background:var(--blue);color:#fff;font-family:var(--f-nav);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border:none;border-radius:8px;cursor:pointer;transition:all .35s var(--ease);}
.fsub:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(26,95,122,.35);}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;background:rgba(13,27,34,.92);backdrop-filter:blur(20px);z-index:9999;display:none;align-items:center;justify-content:center;padding:40px;}
.lightbox.active{display:flex;}
.lb-inner{position:relative;max-width:900px;width:100%;animation:lightboxIn .3s var(--ease) both;}
.lb-img{border-radius:16px;overflow:hidden;box-shadow:0 40px 100px rgba(0,0,0,.5);}
.lb-img img{width:100%;max-height:80vh;object-fit:contain;}
.lb-close{position:absolute;top:-16px;right:-16px;width:44px;height:44px;background:var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;font-weight:700;color:var(--ink);border:none;transition:transform .3s;}
.lb-close:hover{transform:scale(1.1) rotate(90deg);}
.lb-info{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:0 0 12px 12px;padding:16px 20px;margin-top:-4px;}
.lb-info h4{font-family:var(--f-serif);font-size:1rem;font-weight:600;color:#fff;margin-bottom:3px;}
.lb-info p{font-size:12px;color:rgba(255,255,255,.55);}

/* RESPONSIVE */
@media(max-width:1100px){
  #gal-hero{grid-template-columns:1fr;padding:100px 6% 70px;gap:48px;}
  .gh-right{height:400px;width:100%;}
  .gh-fc1,.gh-fc2{display:none;}
  .gh-main{width:100%;height:400px;}
  .story-grid{grid-template-columns:1fr;gap:48px;}
  .story-vis{height:340px;}
  .gal-masonry,.gal-category-section .gal-masonry{column-count:2;column-gap:14px;}
  .sec-grid{grid-template-columns:1fr 1fr;gap:16px;}
  .test-grid{grid-template-columns:1fr 1fr;}
  .sb-inner{grid-template-columns:1fr;gap:40px;}
  .sb-nums{min-width:auto;}
  .ct-inner{grid-template-columns:1fr;}
  .ct-wire{display:none;}
}
@media(max-width:768px){
  #gal-hero,#story,#residential-gallery,#hospitality-gallery,#pubs-gallery,#unique-gallery,#institutional-gallery,#gallery,#sectors,#stats-band,#testimonials,#contact{padding-left:5%!important;padding-right:5%!important;}
  #gal-hero{padding:80px 5% 56px!important;gap:32px;}
  .gh-h1{font-size:clamp(2.5rem,11vw,3.5rem);}
  .gh-actions{flex-direction:column;gap:12px;}
  .gh-actions a{width:100%;justify-content:center;}
  .gh-main{width:100%;height:280px;}
  .gal-masonry,.gal-category-section .gal-masonry{column-count:1;}
  .gal-category-section .gi,.gal-masonry .gi{aspect-ratio:auto;padding:0;}
  .sec-grid{grid-template-columns:1fr 1fr;}
  .test-grid{grid-template-columns:1fr 1fr;}
  .gal-filters{gap:8px;}
  .gf{padding:8px 16px;font-size:11px;}
  .h2{font-size:clamp(1.9rem,7vw,2.6rem);}
}
@media(max-width:480px){
  .gh-h1{font-size:clamp(2.2rem,13vw,3rem);}
  .gh-stats{grid-template-columns:1fr;}
  .ghs-i{border-right:none;border-bottom:1px solid var(--border);}
  .ghs-i:last-child{border-bottom:none;}
  .sec-grid{grid-template-columns:1fr;}
  .test-grid{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;}}
