/* ==========================================================================
   Aaroha Architectural and Lighting Solutions — stylesheet
   ========================================================================== */

:root{
  --bg:            #0a0908;
  --bg-soft:       #121110;
  --bg-elevate:    #1a1815;
  --line:          rgba(212,175,90,0.14);
  --line-soft:     rgba(255,255,255,0.08);

  --gold:          #d4af5a;
  --gold-bright:   #f3d98a;
  --gold-deep:     #a5793a;
  --cool:          #6f89a3;
  --cool-soft:     #3d4f61;

  --ink:           #f3efe6;
  --ink-soft:      #cfc9bd;
  --ink-mute:      #8b867c;

  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Jost', 'Segoe UI', sans-serif;

  --ease: cubic-bezier(.22,1,.36,1);
  --container: 1240px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; background:none; border:none; color:inherit; }
input,select,textarea{ font-family:inherit; }

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
}

/* film grain / texture overlay */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:9999;
  opacity:0.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.cursor-glow{
  position:fixed; top:0; left:0; width:420px; height:420px;
  border-radius:50%; pointer-events:none; z-index:1;
  background:radial-gradient(circle, rgba(212,175,90,0.06), transparent 70%);
  transform:translate(-50%,-50%);
  will-change:transform;
  display:none;
}
@media(min-width:900px){ .cursor-glow{ display:block; } }

.eyebrow{
  font-family:var(--sans);
  font-size:12.5px;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 18px;
}
.section-title{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(32px,4.4vw,52px);
  line-height:1.12;
  margin:0 0 56px;
  color:var(--ink);
  max-width:16ch;
}
.section{ padding:120px 0; position:relative; scroll-margin-top:100px; }

/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px; padding:16px 34px; border-radius:2px;
  font-size:13px; letter-spacing:0.14em; text-transform:uppercase;
  font-weight:500; position:relative; overflow:hidden;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
  white-space:nowrap;
}
.btn-gold{
  background:linear-gradient(135deg,var(--gold-bright),var(--gold) 55%,var(--gold-deep));
  color:#141210;
  box-shadow:0 2px 24px rgba(212,175,90,0.18);
}
.btn-gold:hover{ transform:translateY(-2px); box-shadow:0 10px 34px rgba(212,175,90,0.38); }
.btn-ghost{
  border:1px solid rgba(243,239,230,0.28); color:var(--ink);
}
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold-bright); transform:translateY(-2px); }
.btn-small{ padding:11px 22px; font-size:11.5px; }

/* ============ HEADER ============ */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:26px 0;
  transition:padding .5s var(--ease), background .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  padding:14px 0;
  background:rgba(10,9,8,0.86);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--line);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo-link{ display:flex; align-items:center; }
.logo-img{ height:140px; width:auto; transition:height .5s var(--ease); }
.site-header.scrolled .logo-img{ height:96px; }

.main-nav ul{ display:flex; gap:40px; }
.nav-link{
  position:relative; font-size:13.5px; letter-spacing:0.06em; color:var(--ink-soft);
  padding:4px 0; transition:color .3s var(--ease);
}
.nav-link span{ position:relative; }
.nav-link::after{
  content:''; position:absolute; left:0; bottom:-2px; width:100%; height:1px;
  background:var(--gold);
  transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--ease);
}
.nav-link:hover{ color:var(--ink); }
.nav-link:hover::after{ transform:scaleX(1); transform-origin:left; }

.header-cta{ flex-shrink:0; }

.menu-toggle{
  display:none; flex-direction:column; gap:5px; width:28px; padding:6px; z-index:1100;
}
.menu-toggle span{
  display:block; height:1px; width:100%; background:var(--ink);
  transition:transform .4s var(--ease), opacity .3s var(--ease);
}
.menu-toggle.open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.menu-toggle.open span:nth-child(2){ opacity:0; }
.menu-toggle.open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

.mobile-nav{
  position:fixed; inset:0; z-index:1050;
  background:rgba(8,7,6,0.98);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:44px;
  opacity:0; visibility:hidden; transform:translateY(-14px);
  transition:opacity .45s var(--ease), transform .45s var(--ease), visibility 0s linear .45s;
}
.mobile-nav.open{
  opacity:1; visibility:visible; transform:translateY(0);
  transition:opacity .45s var(--ease), transform .45s var(--ease);
}
.mobile-nav ul{ display:flex; flex-direction:column; align-items:center; gap:28px; }
.mobile-link{ font-family:var(--serif); font-size:30px; color:var(--ink); }
.mobile-link:hover{ color:var(--gold); }

/* ============ HERO ============ */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; padding-top:150px;
}
.hero-bg{ position:absolute; inset:0; z-index:0; background:var(--bg); }
.glow{ position:absolute; border-radius:50%; filter:blur(90px); }
.glow-gold{
  width:640px; height:640px; top:-160px; right:-120px;
  background:radial-gradient(circle, rgba(212,175,90,0.30), transparent 65%);
  animation:drift 18s ease-in-out infinite;
}
.glow-cool{
  width:520px; height:520px; bottom:-200px; left:-140px;
  background:radial-gradient(circle, rgba(111,137,163,0.22), transparent 65%);
  animation:drift 22s ease-in-out infinite reverse;
}
@keyframes drift{
  0%,100%{ transform:translate(0,0) scale(1); }
  50%{ transform:translate(40px,-30px) scale(1.08); }
}
.hero-particles{ position:absolute; inset:0; overflow:hidden; }
.particle{
  position:absolute; width:2px; height:2px; border-radius:50%;
  background:var(--gold-bright); opacity:0;
  box-shadow:0 0 6px 1px rgba(243,217,138,0.7);
}

.hero-inner{ position:relative; z-index:2; }
.hero-eyebrow{ opacity:0; }
.hero-title{
  font-family:var(--serif); font-weight:600; color:var(--ink);
  font-size:clamp(40px,7vw,84px); line-height:1.08; margin:0 0 28px;
  max-width:15ch;
}
.hero-title em{ font-style:italic; color:var(--gold-bright); }
.hero-line{ display:block; }
.hero-sub{
  font-size:clamp(16px,2vw,19px); color:var(--ink-soft); max-width:44ch;
  margin:0 0 44px; font-weight:300; opacity:0;
}
.hero-ctas{ display:flex; gap:20px; flex-wrap:wrap; opacity:0; }
@media(min-width:861px){
  .hero-ctas{ margin-bottom:64px; }
}

/* ============ ABOUT ============ */
.about{
  position:relative; overflow:hidden; min-height:640px;
  display:flex; align-items:center;
}
.about-bg-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%;
  z-index:0; transform:scale(1); animation:about-kenburns 26s ease-in-out infinite alternate;
}
@keyframes about-kenburns{
  0%{ transform:scale(1) translate(0,0); }
  100%{ transform:scale(1.09) translate(-1%,-1%); }
}
.about-overlay{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(8,7,6,0.35) 0%, rgba(8,7,6,0.6) 58%, rgba(8,7,6,0.9) 100%),
    linear-gradient(100deg, rgba(8,7,6,0.65) 0%, rgba(8,7,6,0.2) 42%, rgba(8,7,6,0.1) 100%);
}
.about-inner{ position:relative; z-index:2; width:100%; }
.about .eyebrow, .about .section-title{ text-shadow:0 4px 24px rgba(0,0,0,0.55); }
.about-content{
  display:grid; grid-template-columns:repeat(2,1fr); gap:26px;
  margin-top:12px;
}
.about-col{
  background:rgba(10,9,8,0.66);
  border:1px solid rgba(243,239,230,0.14); border-left:2px solid var(--gold);
  border-radius:3px; padding:34px 32px;
  transition:background .5s var(--ease), transform .5s var(--ease);
}
.about-col:hover{ background:rgba(10,9,8,0.78); transform:translateY(-4px); }
.about-col span.about-index{
  font-family:var(--serif); font-size:15px; color:var(--gold-bright); letter-spacing:.1em;
}
.about-col h3{
  font-family:var(--serif); font-weight:600; font-size:28px; margin:10px 0 16px; color:var(--ink);
}
.about-col p{ color:#e7e2d6; font-size:15.5px; max-width:42ch; line-height:1.7; }

/* ============ ATTRIBUTES ============ */
.attributes{ background:var(--bg-soft); }
.attr-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); }

.attr-card{
  background:var(--bg-soft); padding:44px 32px;
  transition:background .5s var(--ease), transform .5s var(--ease);
}
.attr-card:hover{ background:var(--bg-elevate); transform:translateY(-6px); }

.attr-icon-badge{
  position:relative; display:flex; align-items:center; justify-content:center;
  width:78px; height:78px; margin-bottom:28px; border-radius:50%;
  border:1px solid rgba(212,175,90,0.25);
  transition:border-color .5s var(--ease);
}
.attr-card:hover .attr-icon-badge{ border-color:rgba(212,175,90,0.55); }

.attr-icon-glow{
  position:absolute; inset:-14px; border-radius:50%; z-index:0;
  background:radial-gradient(circle, rgba(212,175,90,0.32), transparent 70%);
  opacity:0.85;
  animation:attr-glow-pulse 3.2s ease-in-out infinite;
}
@keyframes attr-glow-pulse{
  0%,100%{ opacity:0.55; transform:scale(0.94); }
  50%{ opacity:0.95; transform:scale(1.08); }
}

.attr-icon{
  position:relative; z-index:1; display:inline-flex; width:34px; height:34px; color:var(--gold);
  transition:transform .5s var(--ease), color .5s var(--ease);
}
.attr-icon svg .attr-icon-facet{ opacity:0.55; }
.attr-card:hover .attr-icon{ color:var(--gold-bright); transform:rotate(8deg) scale(1.1); }
.attr-card h3{
  font-family:var(--serif); font-weight:600; font-size:23px; margin:0 0 12px; color:var(--ink);
  letter-spacing:0.02em;
}
.attr-card p{ color:var(--ink-mute); font-size:14.5px; line-height:1.7; margin:0; }

/* ============ SERVICES ============ */
.services-list{ display:flex; flex-direction:column; margin-top:8px; }
.service-row{
  display:grid; grid-template-columns:70px minmax(200px,300px) 1fr;
  column-gap:40px; align-items:start;
  padding:30px 6px; border-top:1px solid var(--line-soft);
  transition:background .4s var(--ease);
}
.service-row:last-child{ border-bottom:1px solid var(--line-soft); }
.service-row:hover{ background:rgba(212,175,90,0.045); }
.service-index{
  font-family:var(--serif); font-size:16px; color:var(--gold); letter-spacing:0.1em; padding-top:4px;
}
.service-row h3{
  font-family:var(--serif); font-weight:600; font-size:24px; margin:0; color:var(--ink);
  letter-spacing:0.02em;
}
.service-row p{ color:var(--ink-mute); font-size:14.5px; line-height:1.7; margin:0; }

/* ============ WHO WE WORK WITH ============ */
.partners{ background:var(--bg-soft); }
.partners-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
  margin-top:8px;
}
.partner-card{
  background:var(--bg-elevate); padding:40px 32px; border-radius:6px;
  border:1px solid var(--line-soft);
  transition:border-color .5s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease);
}
.partner-card:hover{
  border-color:rgba(212,175,90,0.4); transform:translateY(-6px);
  box-shadow:0 20px 40px rgba(0,0,0,0.35);
}
.partner-icon-badge{
  position:relative; display:flex; align-items:center; justify-content:center;
  width:64px; height:64px; margin-bottom:24px; border-radius:50%;
  border:1px solid rgba(212,175,90,0.25);
  transition:border-color .5s var(--ease);
}
.partner-card:hover .partner-icon-badge{ border-color:rgba(212,175,90,0.55); }
.partner-icon-glow{
  position:absolute; inset:-12px; border-radius:50%; z-index:0; opacity:0.7;
  background:radial-gradient(circle, rgba(212,175,90,0.28), transparent 70%);
}
.partner-icon{
  position:relative; z-index:1; display:inline-flex; width:28px; height:28px; color:var(--gold);
  transition:transform .5s var(--ease), color .5s var(--ease);
}
.partner-card:hover .partner-icon{ color:var(--gold-bright); transform:scale(1.08); }
.partner-card h3{
  font-family:var(--serif); font-weight:600; font-size:22px; margin:0 0 12px; color:var(--ink);
  letter-spacing:0.02em;
}
.partner-card p{ color:var(--ink-mute); font-size:14.5px; line-height:1.7; margin:0; }

/* ============ PRODUCTS ============ */
.product-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.product-card{ }
.product-frame{
  position:relative; aspect-ratio:1/1; overflow:hidden; border-radius:4px;
  border:1px solid var(--line-soft);
}
.product-frame img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center;
  filter:grayscale(0.08) contrast(1.03);
  transition:transform .7s var(--ease), filter .5s var(--ease);
}
.product-frame::after{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 30% 20%, rgba(212,175,90,0.10), transparent 60%);
  opacity:0; transition:opacity .5s var(--ease);
}
.product-card:hover .product-frame img{ transform:scale(1.08) rotate(-1deg); }
.product-card:hover .product-frame::after{ opacity:1; }

/* ============ GALLERY (horizontal scroller) ============ */
.gallery{ padding-bottom:80px; }
.gallery-track-wrap{ position:relative; }

.gallery-grid{
  display:flex; gap:22px; overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x proximity; scroll-behavior:smooth;
  padding:6px max(32px, calc((100% - 1240px) / 2 + 32px)) 26px;
  -ms-overflow-style:none; scrollbar-width:none;
  cursor:grab;
}
.gallery-grid.dragging{ cursor:grabbing; scroll-snap-type:none; }
.gallery-grid::-webkit-scrollbar{ display:none; }

.gallery-item{
  position:relative; overflow:hidden; border-radius:4px;
  flex:0 0 auto; width:min(74vw, 620px); aspect-ratio:4/3;
  scroll-snap-align:center;
  border:1px solid var(--line-soft);
}
.gallery-item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .9s var(--ease), filter .6s var(--ease);
  filter:brightness(0.86) saturate(1.02);
  pointer-events:none;
  -webkit-user-drag:none;
}
.gallery-item::before{
  content:''; position:absolute; inset:0; z-index:2;
  background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.55));
  opacity:0; transition:opacity .5s var(--ease);
}
.gallery-item::after{
  content:'\002B'; position:absolute; top:16px; right:18px; z-index:3;
  color:var(--gold-bright); font-size:22px; font-weight:300;
  opacity:0; transform:scale(0.6) rotate(-45deg);
  transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.gallery-item:hover img{ transform:scale(1.06); filter:brightness(1); }
.gallery-item:hover::before{ opacity:1; }
.gallery-item:hover::after{ opacity:1; transform:scale(1) rotate(0deg); }

.gallery-controls{
  display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:8px;
}
.gallery-progress{
  flex:1; height:1px; background:var(--line-soft); position:relative; max-width:420px;
}
.gallery-progress-bar{
  position:absolute; left:0; top:0; height:100%; width:20%;
  background:var(--gold); transition:transform .2s linear, width .2s linear;
  transform-origin:left;
}
.gallery-arrows{ display:flex; gap:12px; flex-shrink:0; }
.gallery-arrow{
  width:48px; height:48px; border-radius:50%; border:1px solid var(--line-soft);
  display:flex; align-items:center; justify-content:center; color:var(--ink);
  transition:border-color .4s var(--ease), color .4s var(--ease), background .4s var(--ease), transform .3s var(--ease);
}
.gallery-arrow svg{ width:18px; height:18px; }
.gallery-arrow:hover{ border-color:var(--gold); color:var(--gold-bright); background:rgba(212,175,90,0.08); }
.gallery-arrow:active{ transform:scale(0.92); }

.lightbox{
  position:fixed; inset:0; z-index:2000; background:rgba(6,5,4,0.95);
  display:flex; align-items:center; justify-content:center; padding:5vh 5vw;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility 0s linear .4s;
}
.lightbox.open{ opacity:1; visibility:visible; transition:opacity .4s var(--ease); }
.lightbox img{
  max-width:100%; max-height:90vh; border-radius:2px; box-shadow:0 30px 90px rgba(0,0,0,0.6);
  transform:scale(0.94); transition:transform .45s var(--ease);
}
.lightbox.open img{ transform:scale(1); }
.lightbox-close,
.lightbox-nav{
  position:absolute; width:56px; height:56px; border-radius:50%; z-index:3;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(243,239,230,0.22); color:var(--ink);
  background:rgba(10,9,8,0.35);
  transition:border-color .35s var(--ease), color .35s var(--ease), background .35s var(--ease), transform .35s var(--ease);
}
.lightbox-close{
  top:28px; right:4vw; font-size:22px; line-height:1;
}
.lightbox-close:hover{ border-color:var(--gold); color:var(--gold-bright); background:rgba(212,175,90,0.1); transform:rotate(90deg); }
.lightbox-close:active{ transform:rotate(90deg) scale(0.92); }

.lightbox-nav{ top:50%; transform:translateY(-50%); }
.lightbox-nav svg{ width:20px; height:20px; }
.lightbox-nav:hover{ border-color:var(--gold); color:var(--gold-bright); background:rgba(212,175,90,0.1); }
.lightbox-nav:active{ transform:translateY(-50%) scale(0.92); }
.lightbox-prev{ left:4vw; }
.lightbox-next{ right:4vw; }

.lightbox-count{
  position:absolute; left:50%; bottom:24px; transform:translateX(-50%);
  color:var(--ink-mute); font-size:12px; letter-spacing:0.18em; margin:0;
}

@media(max-width:720px){
  .lightbox-close,
  .lightbox-nav{ width:44px; height:44px; }
  .lightbox-prev{ left:12px; }
  .lightbox-next{ right:12px; }
  .lightbox-close{ right:16px; top:16px; }
}

/* ============ CONTACT ============ */
.contact{ background:var(--bg-soft); }
.contact-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:90px; }
.info-row{ padding:22px 0; border-bottom:1px solid var(--line-soft); }
.info-row:first-child{ padding-top:0; }
.info-label{
  display:block; font-size:11.5px; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--gold); margin-bottom:8px;
}
.info-row p{ margin:0; font-size:17px; color:var(--ink-soft); }
.info-row a:hover{ color:var(--gold-bright); }

.contact-form{ display:flex; flex-direction:column; gap:30px; }
.contact-form-title{
  font-family:var(--serif); font-weight:600; font-size:26px; margin:0; color:var(--ink);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.field{ position:relative; }
.field input, .field select, .field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line-soft);
  color:var(--ink); font-size:16px; padding:10px 2px 12px; outline:none; resize:none;
  transition:border-color .4s var(--ease);
  appearance:none; -webkit-appearance:none;
}
.field select{ color:var(--ink); }
.field select:invalid{ color:transparent; }
.field select option{ background:var(--bg-elevate); color:var(--ink); }
.field textarea{ min-height:70px; }

.field-phone-row{ display:flex; gap:16px; align-items:flex-end; }
.field-phone-row .field-phone{ flex:1 1 auto; min-width:0; }

.phone-country-picker{ position:relative; flex:0 0 auto; width:128px; max-width:42%; }
.phone-country-trigger{
  display:flex; align-items:center; gap:8px; width:100%;
  background:transparent; border:none; border-bottom:1px solid var(--line-soft);
  color:var(--ink); font-size:15px; padding:10px 4px 12px; cursor:pointer;
  transition:border-color .4s var(--ease);
}
.phone-country-trigger:hover, .phone-country-trigger:focus-visible{ border-color:var(--gold); outline:none; }
.phone-country-flag{
  width:20px; height:15px; object-fit:cover; border-radius:2px;
  border:1px solid rgba(255,255,255,0.12); flex-shrink:0;
}
.phone-country-code{ flex:1 1 auto; text-align:left; white-space:nowrap; }
.phone-country-chevron{ width:14px; height:14px; color:var(--ink-mute); flex-shrink:0; transition:transform .3s var(--ease); }
.phone-country-picker.open .phone-country-chevron{ transform:rotate(180deg); }

.phone-country-panel{
  position:absolute; top:calc(100% + 8px); left:0; z-index:50;
  width:280px; max-width:80vw;
  background:var(--bg-elevate); border:1px solid var(--line-soft); border-radius:4px;
  box-shadow:0 20px 50px rgba(0,0,0,0.5);
  display:flex; flex-direction:column; overflow:hidden;
}
.phone-country-panel[hidden]{ display:none; }
.phone-country-search{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line-soft);
  color:var(--ink); font-size:14px; padding:14px 16px; outline:none;
}
.phone-country-search:focus{ border-color:var(--gold); }
.phone-country-list{
  list-style:none; margin:0; padding:6px 0; max-height:280px; overflow-y:auto;
}
.phone-country-list li{
  display:flex; align-items:center; gap:10px; padding:9px 16px;
  font-size:13.5px; color:var(--ink-soft); cursor:pointer;
  transition:background .2s var(--ease);
}
.phone-country-list li img{ width:20px; height:15px; object-fit:cover; border-radius:2px; border:1px solid rgba(255,255,255,0.12); flex-shrink:0; }
.phone-country-list li .pc-name{ flex:1 1 auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.phone-country-list li .pc-dial{ color:var(--ink-mute); font-size:12.5px; flex-shrink:0; }
.phone-country-list li:hover, .phone-country-list li.highlighted{ background:rgba(212,175,90,0.1); color:var(--ink); }
.phone-country-list li.active{ color:var(--gold-bright); }
.phone-country-list li[hidden]{ display:none; }
.phone-country-list::-webkit-scrollbar{ width:8px; }
.phone-country-list::-webkit-scrollbar-thumb{ background:rgba(212,175,90,0.25); border-radius:4px; }
.phone-country-list::-webkit-scrollbar-track{ background:transparent; }
.field label{
  position:absolute; left:2px; top:10px; color:var(--ink-mute); font-size:16px;
  pointer-events:none; transition:transform .35s var(--ease), color .35s var(--ease), font-size .35s var(--ease);
  transform-origin:left top;
}
.field .select-label{ top:10px; }
.field input:focus + label,
.field input:not(:placeholder-shown) + label,
.field textarea:focus + label,
.field textarea:not(:placeholder-shown) + label,
.field select:focus + label,
.field select:valid + label{
  transform:translateY(-20px) scale(0.78); color:var(--gold);
}
.field-line{
  position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);
}
.field input:focus ~ .field-line,
.field select:focus ~ .field-line,
.field textarea:focus ~ .field-line{ transform:scaleX(1); }

.submit-btn{ align-self:flex-start; margin-top:8px; position:relative; min-width:190px; }
.btn-spinner{
  display:none; width:14px; height:14px; border-radius:50%;
  border:2px solid rgba(20,18,16,0.35); border-top-color:#141210;
  animation:spin .7s linear infinite; margin-left:10px;
}
.submit-btn.loading .btn-spinner{ display:inline-block; }
.submit-btn.loading .btn-label{ opacity:0.7; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.form-success{
  color:var(--gold-bright); font-size:14.5px; margin:0; opacity:0; height:0; overflow:hidden;
  transition:opacity .5s var(--ease);
}
.form-success.show{ opacity:1; height:auto; }

/* ============ FOOTER ============ */
.site-footer{ padding:64px 0 40px; border-top:1px solid var(--line-soft); }
.footer-inner{
  display:flex; flex-direction:column; align-items:center; gap:36px; text-align:center;
}
.footer-logo img{ height:80px; }
.footer-nav{ display:flex; gap:32px; flex-wrap:wrap; justify-content:center; }
.footer-nav a{ font-size:13px; color:var(--ink-soft); letter-spacing:0.04em; }
.footer-nav a:hover{ color:var(--gold); }
.footer-legal{ font-size:12px; color:var(--ink-mute); display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.footer-legal a:hover{ color:var(--gold); }
.footer-legal .dot{ opacity:0.5; }
.footer-credit{ font-size:11.5px; color:var(--ink-mute); letter-spacing:0.02em; margin-top:-20px; }
.footer-credit a{ color:var(--ink-soft); transition:color .3s var(--ease); }
.footer-credit a:hover{ color:var(--gold); }


/* ============ responsive ============ */
@media(max-width:1080px){
  .attr-grid{ grid-template-columns:repeat(2,1fr); }
  .partners-grid{ grid-template-columns:repeat(2,1fr); }
  .product-grid{ grid-template-columns:repeat(3,1fr); }
}
@media(max-width:860px){
  .main-nav, .header-cta{ display:none; }
  .menu-toggle{ display:flex; }
  .site-header{ padding:16px 0; }
  .site-header.scrolled{ padding:12px 0; }
  .logo-img{ height:78px; }
  .site-header.scrolled .logo-img{ height:62px; }
  .contact-grid{ grid-template-columns:1fr; gap:56px; }
  .form-row{ grid-template-columns:1fr; gap:26px; }
  .section{ padding:88px 0; }
  .gallery-item{ width:min(84vw, 520px); }
  .about{ min-height:0; }
  .about-content{ grid-template-columns:1fr; gap:18px; }
}
@media(max-width:640px){
  .container{ padding:0 22px; }
  .attr-grid{ grid-template-columns:1fr; }
  .partners-grid{ grid-template-columns:1fr; }
  .service-row{ grid-template-columns:1fr; row-gap:8px; }
  .service-index{ padding-top:0; }
  .product-grid{ grid-template-columns:repeat(2,1fr); gap:14px; }
  .gallery-grid{ gap:14px; padding-left:22px; padding-right:22px; }
  .gallery-item{ width:86vw; }
  .hero-ctas{ flex-direction:column; align-items:stretch; }
  .hero-ctas .btn{ width:100%; }
  .about-col{ padding:26px 22px; }
  .phone-country-picker{ width:104px; }
  .phone-country-panel{ width:260px; }
  .field-phone-row{ gap:10px; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}
