/* =============================================
   AW PROPERTY SERVICES — LUXURY EDITION v2
   Three.js water canvas · Glassmorphism · 3D cards
   Splitting.js reveals · Parallax depth layers
   Cormorant Garamond × Switzer
============================================= */

@import url('https://api.fontshare.com/v2/css?f[]=switzer@300,400,500,600&display=swap');

/* ── VARIABLES ── */
:root {
  --text-xs:   clamp(0.7rem,   0.65rem + 0.25vw, 0.82rem);
  --text-sm:   clamp(0.82rem,  0.76rem + 0.3vw,  0.95rem);
  --text-base: clamp(0.95rem,  0.9rem  + 0.25vw, 1.08rem);
  --text-lg:   clamp(1.1rem,   0.95rem + 0.75vw, 1.45rem);
  --text-xl:   clamp(1.4rem,   1.1rem  + 1.25vw, 2.1rem);
  --text-2xl:  clamp(1.9rem,   1.1rem  + 2.5vw,  3.3rem);
  --text-3xl:  clamp(2.4rem,   1rem    + 4vw,    4.8rem);
  --text-hero: clamp(2.8rem,   0.4rem  + 6.5vw,  6.5rem);

  --space-1:0.25rem; --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem;    --space-10:2.5rem;
  --space-12:3rem;   --space-16:4rem;  --space-20:5rem;   --space-24:6rem; --space-32:8rem;

  --radius-sm:0.375rem; --radius-md:0.5rem; --radius-lg:0.875rem;
  --radius-xl:1.25rem;  --radius-2xl:2rem;  --radius-full:9999px;
  --transition-fast: 150ms cubic-bezier(0.16,1,0.3,1);
  --transition-med:  280ms cubic-bezier(0.16,1,0.3,1);
  --transition-slow: 500ms cubic-bezier(0.16,1,0.3,1);

  --font-display:'Cormorant Garamond','Georgia',serif;
  --font-body:'Switzer','Helvetica Neue',sans-serif;
  --content-narrow:640px; --content-default:980px; --content-wide:1240px;
}

/* ── LIGHT (COASTAL LUXURY) ── */
:root,[data-theme='light'] {
  --color-bg:             #F2F6FA;
  --color-surface:        #FFFFFF;
  --color-surface-2:      #EBF1F7;
  --color-surface-glass:  rgba(255,255,255,0.55);
  --color-surface-offset: #E0EAF3;
  --color-divider:        #CCDAe5;
  --color-border:         #BDD0DE;
  --color-border-glass:   rgba(255,255,255,0.3);

  --color-text:           #080F18;
  --color-text-muted:     #3D5A70;
  --color-text-faint:     #85A4B8;
  --color-text-inverse:   #F2F6FA;

  --color-primary:        #0A6896;
  --color-primary-h:      #084F74;
  --color-primary-glow:   rgba(10,104,150,0.18);
  --color-primary-hl:     #C8DFED;

  --color-navy:           #070F18;
  --color-navy-mid:       #0D1E2E;
  --color-navy-surface:   rgba(7,15,24,0.92);

  --color-gold:           #C8A24A;
  --color-gold-h:         #B38E38;
  --color-gold-bright:    #E2C170;
  --color-gold-glow:      rgba(200,162,74,0.25);

  --shadow-xs: 0 1px 2px rgba(8,15,24,0.06);
  --shadow-sm: 0 2px 8px rgba(8,15,24,0.08);
  --shadow-md: 0 6px 20px rgba(8,15,24,0.10);
  --shadow-lg: 0 16px 48px rgba(8,15,24,0.14);
  --shadow-xl: 0 28px 80px rgba(8,15,24,0.18);
  --shadow-gold: 0 8px 32px rgba(200,162,74,0.22);
}

/* ── DARK MODE ── */
[data-theme='dark'],
@media(prefers-color-scheme:dark){:root:not([data-theme]){
  --color-bg:             #050C14;
  --color-surface:        #0A1520;
  --color-surface-2:      #0F1E2E;
  --color-surface-glass:  rgba(10,21,32,0.6);
  --color-surface-offset: #142233;
  --color-divider:        #1A2D3F;
  --color-border:         #233A50;
  --color-border-glass:   rgba(255,255,255,0.08);
  --color-text:           #E5EEF5;
  --color-text-muted:     #6E9BB5;
  --color-text-faint:     #3A5E78;
  --color-text-inverse:   #050C14;
  --color-primary:        #4BA5CA;
  --color-primary-h:      #65B8D8;
  --color-primary-glow:   rgba(75,165,202,0.2);
  --color-primary-hl:     #122A3C;
  --color-navy:           #020A12;
  --color-navy-mid:       #081422;
  --color-navy-surface:   rgba(2,10,18,0.96);
  --color-gold:           #D4AC58;
  --color-gold-h:         #E2C170;
  --color-gold-bright:    #EDD08A;
  --color-gold-glow:      rgba(212,172,88,0.22);
  --shadow-xs:0 1px 2px rgba(0,0,0,0.3);
  --shadow-sm:0 2px 8px rgba(0,0,0,0.4);
  --shadow-md:0 6px 20px rgba(0,0,0,0.5);
  --shadow-lg:0 16px 48px rgba(0,0,0,0.6);
  --shadow-xl:0 28px 80px rgba(0,0,0,0.7);
}}

/* ── NAV ── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--space-5) var(--space-10);
  background:transparent;
  transition:background 0.5s ease,backdrop-filter 0.5s ease,padding 0.3s ease,box-shadow 0.3s ease;
}
.nav--scrolled{
  background:var(--color-navy-surface);
  backdrop-filter:blur(20px) saturate(180%);
  padding:var(--space-3) var(--space-10);
  box-shadow:0 1px 0 rgba(255,255,255,0.06), 0 4px 24px rgba(0,0,0,0.35);
}
.nav-logo{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:#fff;}
.nav-logo-text{font-family:var(--font-display);font-size:1.15rem;font-weight:500;letter-spacing:0.03em;line-height:1;}
.nav-logo-sub{font-family:var(--font-body);font-size:0.6rem;font-weight:400;letter-spacing:0.16em;text-transform:uppercase;opacity:0.5;margin-top:2px;}
.nav-links{display:flex;align-items:center;gap:var(--space-8);list-style:none;}
.nav-links a{
  font-family:var(--font-body);font-size:0.7rem;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;
  color:rgba(255,255,255,0.65);position:relative;padding-bottom:3px;
  transition:color var(--transition-fast);
}
.nav-links a::after{content:'';position:absolute;bottom:-1px;left:0;width:0;height:1px;background:var(--color-gold);transition:width var(--transition-med);}
.nav-links a:hover{color:#fff;}
.nav-links a:hover::after{width:100%;}
.nav-cta{
  font-family:var(--font-body);font-size:0.68rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;
  padding:var(--space-3) var(--space-6);
  background:linear-gradient(135deg,var(--color-gold),var(--color-gold-bright));
  color:#080F18;border-radius:2px;
  transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);
  box-shadow:var(--shadow-gold);
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 12px 40px var(--color-gold-glow);opacity:0.92;}
.nav-mobile-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:var(--space-2);color:#fff;}
.nav-mobile-toggle span{display:block;width:22px;height:1.5px;background:currentColor;border-radius:2px;transition:transform 0.3s,opacity 0.3s;}
.nav-mobile-menu{display:none;position:fixed;inset:0;background:var(--color-navy);z-index:99;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8);}
.nav-mobile-menu.open{display:flex;}
.nav-mobile-menu a{font-family:var(--font-display);font-size:var(--text-2xl);color:#fff;text-decoration:none;letter-spacing:0.04em;transition:color var(--transition-fast);}
.nav-mobile-menu a:hover{color:var(--color-gold);}
@media(max-width:768px){.nav-links,.nav-cta{display:none;}.nav-mobile-toggle{display:flex;}.nav{padding:var(--space-4) var(--space-5);}.nav--scrolled{padding:var(--space-3) var(--space-5);}}

/* ── HERO ── */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:center;overflow:hidden;background:#040B14;
}
#heroCanvas{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0.72;pointer-events:none;z-index:1;
  mix-blend-mode:screen;
}
.hero-bg-img{
  position:absolute;inset:0;
  background-image:url('./assets/hero-dark.png');
  background-size:cover;background-position:center 40%;
  opacity:0;transition:opacity 1.5s ease;z-index:0;
}
.hero-bg-img.loaded{opacity:1;}
.hero-overlay{
  position:absolute;inset:0;z-index:2;
  background:
    linear-gradient(to right, rgba(4,11,20,0.92) 0%, rgba(4,11,20,0.55) 55%, rgba(4,11,20,0.2) 100%),
    linear-gradient(to top, rgba(4,11,20,0.8) 0%, transparent 40%);
}
.hero-content{
  position:relative;z-index:3;
  max-width:var(--content-wide);margin:0 auto;
  padding:calc(80px + var(--space-20)) var(--space-10) var(--space-20);
  width:100%;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:var(--space-3);
  font-family:var(--font-body);font-size:0.65rem;font-weight:500;
  letter-spacing:0.2em;text-transform:uppercase;
  color:var(--color-gold);margin-bottom:var(--space-6);
}
.hero-eyebrow-line{width:32px;height:1px;background:var(--color-gold);opacity:0.6;}
.hero-title{
  font-family:var(--font-display);font-size:var(--text-hero);
  font-weight:400;color:#fff;line-height:1.0;
  margin-bottom:var(--space-6);max-width:720px;
}
.hero-title em{font-style:italic;color:var(--color-gold);}
/* Splitting.js stagger */
.hero-title .word{overflow:hidden;display:inline-block;vertical-align:bottom;margin-right:0.2em;}
.hero-title .char{display:inline-block;opacity:0;transform:translateY(110%);transition:opacity 0.7s cubic-bezier(0.16,1,0.3,1),transform 0.7s cubic-bezier(0.16,1,0.3,1);}
.hero-title.revealed .char{opacity:1;transform:translateY(0);}
.hero-subtitle{
  font-family:var(--font-body);font-size:var(--text-base);font-weight:300;
  color:rgba(255,255,255,0.65);max-width:460px;line-height:1.8;
  margin-bottom:var(--space-10);
  opacity:0;transform:translateY(16px);
  transition:opacity 0.9s 0.6s ease,transform 0.9s 0.6s ease;
}
.hero-subtitle.revealed{opacity:1;transform:translateY(0);}
.hero-actions{
  display:flex;gap:var(--space-4);flex-wrap:wrap;
  opacity:0;transform:translateY(16px);
  transition:opacity 0.9s 0.85s ease,transform 0.9s 0.85s ease;
}
.hero-actions.revealed{opacity:1;transform:translateY(0);}

/* Scroll indicator */
.hero-scroll{
  position:absolute;bottom:var(--space-8);left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:var(--space-2);
  color:rgba(255,255,255,0.3);font-family:var(--font-body);font-size:0.6rem;letter-spacing:0.15em;text-transform:uppercase;
}
.scroll-chevron{
  width:20px;height:20px;border-right:1px solid rgba(255,255,255,0.3);border-bottom:1px solid rgba(255,255,255,0.3);
  transform:rotate(45deg);animation:scrollBounce 2s ease-in-out infinite;margin-top:4px;
}
@keyframes scrollBounce{0%,100%{transform:rotate(45deg) translateY(0);}50%{transform:rotate(45deg) translateY(4px);}}

/* ── BUTTONS ── */
.btn-gold{
  display:inline-flex;align-items:center;gap:var(--space-2);
  padding:var(--space-4) var(--space-8);
  background:linear-gradient(135deg,var(--color-gold) 0%,var(--color-gold-bright) 100%);
  color:#080F18;font-family:var(--font-body);font-size:0.72rem;
  font-weight:600;letter-spacing:0.1em;text-transform:uppercase;
  text-decoration:none;border-radius:2px;
  box-shadow:var(--shadow-gold);
  transition:transform var(--transition-fast),box-shadow var(--transition-fast);
}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 16px 48px var(--color-gold-glow);}
.btn-glass{
  display:inline-flex;align-items:center;gap:var(--space-2);
  padding:var(--space-4) var(--space-8);
  border:1px solid rgba(255,255,255,0.2);
  background:rgba(255,255,255,0.06);
  backdrop-filter:blur(12px);
  color:#fff;font-family:var(--font-body);font-size:0.72rem;
  font-weight:500;letter-spacing:0.1em;text-transform:uppercase;
  text-decoration:none;border-radius:2px;
  transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast);
}
.btn-glass:hover{border-color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.12);transform:translateY(-2px);}
.btn-dark{
  display:inline-flex;align-items:center;gap:var(--space-2);
  padding:var(--space-4) var(--space-8);
  background:var(--color-navy);color:#fff;
  font-family:var(--font-body);font-size:0.72rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;border-radius:2px;
  transition:background var(--transition-fast),transform var(--transition-fast);
}
.btn-dark:hover{background:var(--color-primary);transform:translateY(-2px);}
.btn-outline-dark{
  display:inline-flex;align-items:center;gap:var(--space-2);
  padding:var(--space-4) var(--space-8);
  border:1px solid var(--color-border);color:var(--color-text-muted);
  font-family:var(--font-body);font-size:0.72rem;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;border-radius:2px;
  transition:border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);
}
.btn-outline-dark:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px);}

/* ── TRUST BAR ── */
.trust-bar{background:var(--color-navy-mid);padding:var(--space-5) var(--space-10);border-top:1px solid rgba(255,255,255,0.05);}
.trust-bar-inner{max-width:var(--content-wide);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;}
.trust-item{display:flex;align-items:center;gap:var(--space-3);}
.trust-item-icon{color:var(--color-gold);flex-shrink:0;}
.trust-item-label{font-family:var(--font-body);font-size:0.68rem;font-weight:500;letter-spacing:0.06em;color:rgba(255,255,255,0.6);}

/* ── SECTION UTILITIES ── */
.section{padding-block:clamp(var(--space-16),8vw,var(--space-32));}
.section-inner{max-width:var(--content-wide);margin:0 auto;padding-inline:var(--space-10);}
.section-inner--narrow{max-width:var(--content-default);margin:0 auto;padding-inline:var(--space-10);}
.section-eyebrow{
  display:inline-flex;align-items:center;gap:var(--space-3);
  font-family:var(--font-body);font-size:0.62rem;font-weight:500;
  letter-spacing:0.2em;text-transform:uppercase;
  color:var(--color-primary);margin-bottom:var(--space-4);
}
.section-eyebrow::before{content:'';display:inline-block;width:28px;height:1px;background:currentColor;opacity:0.6;}
.section-title{
  font-family:var(--font-display);font-size:var(--text-2xl);
  font-weight:400;color:var(--color-text);line-height:1.08;margin-bottom:var(--space-5);
}
.section-lead{
  font-family:var(--font-body);font-size:var(--text-base);
  color:var(--color-text-muted);line-height:1.8;max-width:520px;
}
.gold-rule{width:40px;height:1px;background:var(--color-gold);margin-bottom:var(--space-5);opacity:0.7;}

/* ── SCROLL REVEAL ── */
.reveal{opacity:1;}
@supports(animation-timeline:scroll()){
  .reveal{opacity:0;animation:fadeReveal linear both;animation-timeline:view();animation-range:entry 0% entry 75%;}
}
@keyframes fadeReveal{to{opacity:1;}}

/* ── 3D SERVICE CARDS ── */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-5);margin-top:var(--space-12);}
.service-card{
  position:relative;
  background:var(--color-surface-glass);
  border:1px solid var(--color-border-glass);
  backdrop-filter:blur(20px) saturate(160%);
  border-radius:var(--radius-lg);padding:var(--space-8);
  overflow:hidden;cursor:default;
  transform-style:preserve-3d;
  transition:transform 0.4s cubic-bezier(0.16,1,0.3,1),box-shadow 0.4s ease,border-color 0.3s ease;
  box-shadow:var(--shadow-sm);
}
.service-card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(200,162,74,0.06) 0%,transparent 60%);
  opacity:0;transition:opacity 0.4s;border-radius:inherit;
}
.service-card::after{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--color-gold),transparent);
  opacity:0;transition:opacity 0.4s;
}
.service-card:hover{
  transform:translateY(-8px) rotateX(2deg) rotateY(-1deg);
  box-shadow:var(--shadow-xl),0 0 0 1px rgba(200,162,74,0.1);
  border-color:rgba(200,162,74,0.2);
}
.service-card:hover::before,.service-card:hover::after{opacity:1;}
.service-icon-wrap{
  width:52px;height:52px;border-radius:var(--radius-md);
  background:linear-gradient(135deg,var(--color-primary-hl),var(--color-surface-offset));
  display:flex;align-items:center;justify-content:center;
  margin-bottom:var(--space-5);color:var(--color-primary);
  position:relative;z-index:1;
  box-shadow:var(--shadow-sm);
}
.service-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--color-text);margin-bottom:var(--space-3);position:relative;z-index:1;}
.service-desc{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.75;position:relative;z-index:1;}
.service-list{list-style:none;margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);position:relative;z-index:1;}
.service-list li{font-size:var(--text-xs);color:var(--color-text-muted);display:flex;align-items:flex-start;gap:var(--space-2);}
.service-list li::before{content:'';width:5px;height:5px;background:var(--color-gold);border-radius:50%;flex-shrink:0;margin-top:6px;}

/* ── WHY SECTION (DARK) ── */
.why-section{background:var(--color-navy);position:relative;overflow:hidden;}
.why-section-bg{
  position:absolute;inset:0;
  background-image:url('./assets/water-texture.png');
  background-size:cover;background-position:center;
  opacity:0.04;pointer-events:none;
}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center;}
.why-image-frame{
  position:relative;
  border-radius:var(--radius-xl);overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--shadow-xl);
}
.why-image-frame img{width:100%;height:100%;object-fit:cover;transition:transform 0.8s cubic-bezier(0.16,1,0.3,1);}
.why-image-frame:hover img{transform:scale(1.04);}
.why-image-frame::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(7,15,24,0.5) 0%,transparent 50%);pointer-events:none;
}
.why-image-badge{
  position:absolute;bottom:var(--space-5);left:var(--space-5);z-index:2;
  background:rgba(7,15,24,0.7);backdrop-filter:blur(12px);
  border:1px solid rgba(200,162,74,0.3);
  color:var(--color-gold);
  padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);
  font-family:var(--font-body);font-size:0.6rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;
}
.why-content .section-eyebrow{color:var(--color-gold);}
.why-content .section-title{color:#fff;}
.why-content .section-lead{color:rgba(255,255,255,0.55);max-width:440px;}
.why-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);margin-top:var(--space-10);}
.why-stat{
  padding:var(--space-5) var(--space-5);
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:var(--radius-md);
  backdrop-filter:blur(8px);
  transition:background 0.3s,border-color 0.3s;
}
.why-stat:hover{background:rgba(200,162,74,0.06);border-color:rgba(200,162,74,0.15);}
.why-stat-number{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;color:var(--color-gold);line-height:1;}
.why-stat-label{font-family:var(--font-body);font-size:0.6rem;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:0.1em;margin-top:var(--space-2);}
@media(max-width:768px){.why-grid{grid-template-columns:1fr;}.why-image-frame{aspect-ratio:16/10;}}

/* ── GALLERY ── */
.gallery-mosaic{
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  grid-template-rows:auto;
  gap:var(--space-3);
  margin-top:var(--space-10);
}
.gallery-mosaic .g1{grid-column:1/7;grid-row:1/3;}
.gallery-mosaic .g2{grid-column:7/10;grid-row:1/2;}
.gallery-mosaic .g3{grid-column:10/13;grid-row:1/2;}
.gallery-mosaic .g4{grid-column:7/10;grid-row:2/3;}
.gallery-mosaic .g5{grid-column:10/13;grid-row:2/3;}
.gitem{
  position:relative;overflow:hidden;border-radius:var(--radius-md);
  cursor:pointer;min-height:180px;background:var(--color-surface-offset);
}
.gitem img{width:100%;height:100%;object-fit:cover;transition:transform 0.7s cubic-bezier(0.16,1,0.3,1),filter 0.5s ease;}
.gitem:hover img{transform:scale(1.07);filter:brightness(1.08);}
.gitem-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(7,15,24,0.7) 0%,transparent 55%);
  opacity:0;transition:opacity 0.4s;
  display:flex;align-items:flex-end;padding:var(--space-4);
}
.gitem:hover .gitem-overlay{opacity:1;}
.gitem-label{
  font-family:var(--font-body);font-size:0.6rem;
  color:rgba(255,255,255,0.9);letter-spacing:0.1em;text-transform:uppercase;
}
@media(max-width:768px){
  .gallery-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .gallery-mosaic .g1{grid-column:1/3;grid-row:auto;}
  .gallery-mosaic .g2,.gallery-mosaic .g3,.gallery-mosaic .g4,.gallery-mosaic .g5{grid-column:auto;grid-row:auto;}
}

/* ── TESTIMONIALS ── */
.testimonials-section{background:var(--color-surface-2);}
.testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-5);margin-top:var(--space-10);}
.testimonial-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);padding:var(--space-8);
  position:relative;overflow:hidden;
  transition:transform 0.35s ease,box-shadow 0.35s ease,border-color 0.3s;
}
.testimonial-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--color-primary),var(--color-gold));
  transform:scaleX(0);transform-origin:left;transition:transform 0.4s ease;
}
.testimonial-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-primary-hl);}
.testimonial-card:hover::before{transform:scaleX(1);}
.testimonial-quote-mark{font-family:var(--font-display);font-size:5rem;color:var(--color-primary-hl);line-height:0.4;margin-bottom:var(--space-5);user-select:none;}
.testimonial-text{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text-muted);line-height:1.8;font-style:italic;margin-bottom:var(--space-5);}
.testimonial-author{display:flex;align-items:center;gap:var(--space-3);}
.testimonial-avatar{
  width:42px;height:42px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--color-primary),var(--color-gold));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);
}
.testimonial-name{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--color-text);}
.testimonial-location{font-size:var(--text-xs);color:var(--color-text-faint);}
.stars{display:flex;gap:2px;margin-bottom:var(--space-3);}
.star{color:var(--color-gold);font-size:0.9rem;}

/* ── WATER DIVIDER ── */
.water-divider{
  height:220px;position:relative;overflow:hidden;
  background:var(--color-navy);
}
.water-divider img{width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:0.35;}
.water-divider-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,var(--color-bg) 0%,transparent 30%,transparent 70%,var(--color-navy) 100%);
}

/* ── CTA SECTION ── */
.cta-section{
  background:var(--color-navy);position:relative;overflow:hidden;
  padding-block:clamp(var(--space-16),8vw,var(--space-32));
}
.cta-section::before{
  content:'';position:absolute;
  top:-30%;left:-10%;width:70%;height:160%;
  background:radial-gradient(ellipse at center,rgba(200,162,74,0.08) 0%,transparent 60%);
  pointer-events:none;
}
.cta-section::after{
  content:'';position:absolute;
  bottom:-20%;right:-5%;width:50%;height:120%;
  background:radial-gradient(ellipse at center,rgba(10,104,150,0.12) 0%,transparent 55%);
  pointer-events:none;
}
.cta-inner{max-width:var(--content-default);margin:0 auto;padding-inline:var(--space-10);text-align:center;position:relative;z-index:1;}
.cta-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:#fff;line-height:1.12;margin-bottom:var(--space-5);}
.cta-title em{font-style:italic;color:var(--color-gold);}
.cta-subtitle{font-family:var(--font-body);font-size:var(--text-base);color:rgba(255,255,255,0.55);margin-bottom:var(--space-8);max-width:440px;margin-left:auto;margin-right:auto;line-height:1.75;}
.cta-actions{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;}

/* ── FOOTER ── */
.footer{background:#030810;color:rgba(255,255,255,0.4);padding-block:var(--space-16);}
.footer-inner{max-width:var(--content-wide);margin:0 auto;padding-inline:var(--space-10);}
.footer-top{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-10);
  margin-bottom:var(--space-10);padding-bottom:var(--space-10);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.footer-brand-name{font-family:var(--font-display);font-size:var(--text-lg);color:#fff;margin-bottom:var(--space-2);}
.footer-tagline{font-size:var(--text-sm);line-height:1.65;margin-bottom:var(--space-6);max-width:260px;}
.footer-col-title{font-family:var(--font-body);font-size:0.58rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-bottom:var(--space-4);}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);}
.footer-links a{color:rgba(255,255,255,0.38);text-decoration:none;font-size:var(--text-sm);transition:color 0.2s;}
.footer-links a:hover{color:var(--color-gold);}
.footer-contact-row{display:flex;gap:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-3);align-items:flex-start;}
.footer-contact-row svg{flex-shrink:0;margin-top:2px;color:var(--color-gold);}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);flex-wrap:wrap;gap:var(--space-4);}
.footer-bottom a{color:var(--color-gold);text-decoration:none;}
.footer-gold-line{width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--color-gold),transparent);opacity:0.2;margin-bottom:var(--space-8);}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:540px){.footer-top{grid-template-columns:1fr;}}

/* ── PAGE HERO (inner) ── */
.page-hero{
  padding-top:calc(80px + var(--space-16));padding-bottom:var(--space-12);
  background:var(--color-navy);text-align:center;position:relative;overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background-image:url('./assets/water-texture.png');
  background-size:cover;background-position:center;
  opacity:0.05;
}
.page-hero-eyebrow{display:inline-flex;align-items:center;gap:var(--space-3);font-family:var(--font-body);font-size:0.62rem;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--color-gold);margin-bottom:var(--space-4);}
.page-hero-eyebrow::before,.page-hero-eyebrow::after{content:'';display:inline-block;width:28px;height:1px;background:currentColor;opacity:0.5;}
.page-hero-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:#fff;margin-bottom:var(--space-4);position:relative;}
.page-hero-sub{font-family:var(--font-body);font-size:var(--text-base);color:rgba(255,255,255,0.5);max-width:520px;margin:0 auto;position:relative;line-height:1.75;}

/* ── CONTACT ── */
.contact-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:var(--space-12);align-items:start;}
.contact-form{
  background:var(--color-surface-glass);
  backdrop-filter:blur(24px);
  border:1px solid var(--color-border-glass);
  border-radius:var(--radius-xl);padding:var(--space-10);
  box-shadow:var(--shadow-lg);
}
.form-group{margin-bottom:var(--space-5);}
.form-label{display:block;font-size:0.6rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-2);}
.form-input,.form-select,.form-textarea{
  width:100%;padding:var(--space-3) var(--space-4);
  border:1px solid var(--color-border);border-radius:var(--radius-md);
  background:var(--color-bg);color:var(--color-text);
  font-family:var(--font-body);font-size:var(--text-base);
  transition:border-color var(--transition-fast),box-shadow var(--transition-fast);
}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-hl);}
.form-textarea{resize:vertical;min-height:110px;}
.form-submit{
  width:100%;padding:var(--space-4);
  background:linear-gradient(135deg,var(--color-navy),var(--color-primary));
  color:#fff;font-family:var(--font-body);font-size:0.72rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;border:none;
  border-radius:var(--radius-md);cursor:pointer;
  transition:opacity 0.2s,transform 0.2s;
}
.form-submit:hover{opacity:0.9;transform:translateY(-1px);}
.contact-info-icon{width:44px;height:44px;background:var(--color-primary-hl);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-primary);flex-shrink:0;}
.form-success{display:none;text-align:center;padding:var(--space-8);}
.form-success.visible{display:block;}
.form-success-icon{width:64px;height:64px;background:var(--color-primary-hl);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-primary);margin:0 auto var(--space-4);}
.service-area-badge{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-primary-hl);color:var(--color-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-top:var(--space-2);}
@media(max-width:768px){.contact-grid{grid-template-columns:1fr;}.contact-form{padding:var(--space-6);}}

/* ── GALLERY PAGE ── */
.full-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-10);}
.full-gallery .gallery-item{aspect-ratio:4/3;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;position:relative;}
.full-gallery .gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s cubic-bezier(0.16,1,0.3,1);}
.full-gallery .gallery-item:hover img{transform:scale(1.06);}
.gallery-item-featured{grid-column:span 2;}
.gallery-item-featured .gallery-item{aspect-ratio:16/9;}
.gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,15,24,0.65) 0%,transparent 55%);opacity:0;transition:opacity 0.3s;display:flex;align-items:flex-end;padding:var(--space-4);}
.gallery-item:hover .gallery-overlay{opacity:1;}
.gallery-overlay-text{font-family:var(--font-body);font-size:0.6rem;color:rgba(255,255,255,0.9);letter-spacing:0.1em;text-transform:uppercase;}
.lightbox{display:none;position:fixed;inset:0;background:rgba(3,8,16,0.97);z-index:200;align-items:center;justify-content:center;padding:var(--space-8);}
.lightbox.open{display:flex;}
.lightbox-img{max-width:90vw;max-height:88vh;object-fit:contain;border-radius:var(--radius-lg);}
.lightbox-close{position:absolute;top:var(--space-6);right:var(--space-6);color:rgba(255,255,255,0.5);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);background:rgba(255,255,255,0.08);transition:background 0.2s,color 0.2s;}
.lightbox-close:hover{background:rgba(255,255,255,0.15);color:#fff;}
.lightbox-caption{position:absolute;bottom:var(--space-6);left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.4);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:0.1em;text-transform:uppercase;white-space:nowrap;}
@media(max-width:768px){.full-gallery{grid-template-columns:1fr 1fr;}.gallery-item-featured{grid-column:span 2;}}

/* ── ABOUT PAGE ── */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center;}
.about-image{position:relative;border-radius:var(--radius-xl);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-xl);}
.about-image img{width:100%;height:100%;object-fit:cover;}
.about-values{display:flex;flex-direction:column;gap:var(--space-6);margin-top:var(--space-8);}
.about-value{display:flex;gap:var(--space-4);align-items:flex-start;}
.about-value-icon{width:40px;height:40px;background:var(--color-primary-hl);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-primary);flex-shrink:0;}
.about-value-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-1);}
.about-value-text{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;}
@media(max-width:768px){.about-grid{grid-template-columns:1fr;}}

/* ── VIEW TRANSITIONS ── */
@view-transition{navigation:auto;}
::view-transition-old(root){animation:fade-out 0.18s ease;}
::view-transition-new(root){animation:fade-in 0.28s ease;}
@keyframes fade-out{to{opacity:0;}}
@keyframes fade-in{from{opacity:0;}}

/* ── MISC ── */
@media(max-width:640px){.section-inner,.section-inner--narrow{padding-inline:var(--space-5);}.trust-bar{padding-inline:var(--space-5);}.nav{padding-inline:var(--space-5);}}
