/* ==========================================================================
   ABBOT LABORATORY STORE SMC LTD — Core Stylesheet
   Design language: "Spectral Scan" — precision instrumentation aesthetic
   Palette: Navy / Lab Blue / Titration Teal / Amber Indicator / Ice
   Type: Space Grotesk (display) + Inter (body) + IBM Plex Mono (data)
   ========================================================================== */

:root{
  --navy:#0B3558;
  --navy-deep:#082742;
  --blue:#1B6FA8;
  --blue-light:#4E96C7;
  --teal:#0FBFA6;
  --teal-deep:#0A9784;
  --amber:#F4A93B;
  --ice:#F2F8FC;
  --ice-2:#E7F1F8;
  --white:#FFFFFF;
  --ink:#12202D;
  --mist:#5F7488;
  --mist-light:#8FA2B3;
  --line:#DCE8F0;
  --radius:14px;
  --radius-sm:8px;
  --shadow-sm:0 2px 10px rgba(11,53,88,0.06);
  --shadow-md:0 10px 30px rgba(11,53,88,0.10);
  --shadow-lg:0 20px 50px rgba(11,53,88,0.16);
  --ff-display:'Space Grotesk', sans-serif;
  --ff-body:'Inter', sans-serif;
  --ff-mono:'IBM Plex Mono', monospace;
  --nav-h:76px;
  --transition:.35s cubic-bezier(.4,0,.2,1);
}

[data-theme="dark"]{
  --ice:#0B1A28;
  --ice-2:#0F2236;
  --white:#0F2236;
  --ink:#EAF2F8;
  --mist:#9FB4C4;
  --mist-light:#7590A3;
  --line:#1D3A52;
  --navy:#082742;
  --shadow-sm:0 2px 10px rgba(0,0,0,0.25);
  --shadow-md:0 10px 30px rgba(0,0,0,0.35);
  --shadow-lg:0 20px 50px rgba(0,0,0,0.5);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--ff-body);
  color:var(--ink);
  background:var(--ice);
  line-height:1.65;
  overflow-x:hidden;
  transition:background var(--transition), color var(--transition);
}
h1,h2,h3,h4,h5,h6{font-family:var(--ff-display); color:var(--navy); font-weight:600; letter-spacing:-0.01em;}
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] h4,[data-theme="dark"] h5{color:#EAF2F8;}
a{text-decoration:none; color:inherit;}
.mono{font-family:var(--ff-mono);}
.text-teal{color:var(--teal) !important;}
.text-blue{color:var(--blue) !important;}
.bg-ice{background:var(--ice);}
.bg-ice-2{background:var(--ice-2);}
img{max-width:100%; display:block;}
::selection{background:var(--teal); color:#fff;}

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

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--teal); outline-offset:2px; border-radius:4px;
}

/* ---------- Loader ---------- */
#loader{
  position:fixed; inset:0; z-index:9999; background:var(--navy);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px;
  transition:opacity .5s ease, visibility .5s ease;
}
#loader.hide{opacity:0; visibility:hidden; pointer-events:none;}
.loader-flask{width:46px; height:60px; position:relative;}
.loader-flask svg{width:100%; height:100%;}
.loader-fill{animation:flaskFill 1.4s ease-in-out infinite;}
@keyframes flaskFill{
  0%{transform:translateY(18px);}
  50%{transform:translateY(4px);}
  100%{transform:translateY(18px);}
}
.loader-label{font-family:var(--ff-mono); color:var(--teal); font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;}

/* ---------- Scan-line divider (signature element) ---------- */
.scanline{
  position:relative; height:34px; margin:0 auto; max-width:1200px; overflow:hidden;
}
.scanline svg{width:100%; height:100%;}
.scanline path{
  fill:none; stroke:var(--teal); stroke-width:1.6; opacity:.55;
  stroke-dasharray:1400; stroke-dashoffset:1400;
  animation:scanDraw 2.6s ease forwards;
}
@keyframes scanDraw{ to{stroke-dashoffset:0;} }

/* ---------- Topbar ---------- */
.topbar{
  background:var(--navy-deep); color:#cfe3f0; font-size:.82rem; padding:7px 0;
}
.topbar a{color:#cfe3f0;}
.topbar a:hover{color:var(--teal);}
.topbar .divider{opacity:.3; margin:0 10px;}

/* ---------- Navbar ---------- */
.navbar-abbot{
  background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
  padding:14px 0; transition:all var(--transition); border-bottom:1px solid transparent;
}
[data-theme="dark"] .navbar-abbot{background:rgba(15,34,54,.92);}
.navbar-abbot.scrolled{padding:8px 0; box-shadow:var(--shadow-sm); border-bottom-color:var(--line);}
.navbar-brand-abbot{display:flex; align-items:center; gap:10px;}
.brand-mark{
  width:42px; height:42px; border-radius:10px; background:linear-gradient(145deg,var(--blue),var(--navy));
  display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0;
}
.brand-mark svg{width:24px; height:24px;}
.brand-text{line-height:1.1;}
.brand-text strong{font-family:var(--ff-display); font-size:1.08rem; color:var(--navy); display:block;}
[data-theme="dark"] .brand-text strong{color:#EAF2F8;}
.brand-text span{font-family:var(--ff-mono); font-size:.62rem; letter-spacing:.14em; color:var(--teal); text-transform:uppercase;}
.nav-link-abbot{
  font-weight:500; color:var(--ink) !important; padding:8px 16px !important; position:relative;
}
.nav-link-abbot::after{
  content:''; position:absolute; left:16px; right:16px; bottom:2px; height:2px; background:var(--teal);
  transform:scaleX(0); transform-origin:left; transition:transform var(--transition);
}
.nav-link-abbot:hover::after, .nav-link-abbot.active::after{transform:scaleX(1);}
.nav-link-abbot.active{color:var(--blue) !important;}
.btn-nav-quote{
  background:var(--teal); color:#fff !important; padding:9px 20px !important; border-radius:30px !important;
  font-weight:600; margin-left:6px; transition:all var(--transition);
}
.btn-nav-quote:hover{background:var(--teal-deep); transform:translateY(-2px); box-shadow:0 8px 20px rgba(15,191,166,.35);}
.theme-toggle{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:transparent;
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--navy);
}
[data-theme="dark"] .theme-toggle{color:#EAF2F8;}

/* ---------- Buttons ---------- */
.btn-abbot{
  display:inline-flex; align-items:center; gap:8px; padding:13px 28px; border-radius:30px; font-weight:600;
  font-size:.95rem; transition:all var(--transition); border:2px solid transparent; cursor:pointer;
}
.btn-abbot-primary{background:var(--teal); color:#fff;}
.btn-abbot-primary:hover{background:var(--teal-deep); color:#fff; transform:translateY(-3px); box-shadow:0 12px 28px rgba(15,191,166,.32);}
.btn-abbot-outline{border-color:rgba(255,255,255,.55); color:#fff;}
.btn-abbot-outline:hover{background:rgba(255,255,255,.12); color:#fff; transform:translateY(-3px);}
.btn-abbot-navy{background:var(--navy); color:#fff;}
.btn-abbot-navy:hover{background:var(--navy-deep); color:#fff; transform:translateY(-3px); box-shadow:0 12px 28px rgba(11,53,88,.3);}
.btn-abbot-ghost{border-color:var(--line); color:var(--navy);}
[data-theme="dark"] .btn-abbot-ghost{color:#EAF2F8;}
.btn-abbot-ghost:hover{border-color:var(--teal); color:var(--teal); transform:translateY(-3px);}
.btn-sm-abbot{padding:8px 18px; font-size:.82rem; border-radius:24px;}

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center;
  background:linear-gradient(115deg,var(--navy-deep) 0%,var(--navy) 45%,var(--blue) 100%);
  overflow:hidden; padding-top:var(--nav-h);
}
.hero-bg-img{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:.22; mix-blend-mode:luminosity;
}
.hero::before{
  content:''; position:absolute; inset:0;
  background-image:radial-gradient(circle, rgba(255,255,255,.14) 1px, transparent 1px);
  background-size:26px 26px; opacity:.5;
}
.hero-particles{position:absolute; inset:0; pointer-events:none;}
.hero-particles span{
  position:absolute; width:6px; height:6px; border-radius:50%; background:var(--teal); opacity:.6;
  animation:floatUp linear infinite;
}
@keyframes floatUp{
  0%{transform:translateY(0) scale(1); opacity:0;}
  10%{opacity:.7;}
  100%{transform:translateY(-100vh) scale(.4); opacity:0;}
}
.hero-content{position:relative; z-index:2; color:#fff;}
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--ff-mono); font-size:.74rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--teal); background:rgba(15,191,166,.12);
  border:1px solid rgba(15,191,166,.4); padding:7px 16px; border-radius:30px; margin-bottom:22px;
}
.hero-eyebrow .dot{width:7px; height:7px; border-radius:50%; background:var(--teal); animation:pulseDot 1.6s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:1; box-shadow:0 0 0 0 rgba(15,191,166,.6);} 50%{opacity:.5; box-shadow:0 0 0 6px rgba(15,191,166,0);}}
.hero h1{
  color:#fff; font-size:clamp(2.3rem,4.6vw,3.7rem); line-height:1.08; margin-bottom:22px;
}
.hero h1 em{font-style:normal; color:var(--teal);}
.hero p.lead{color:#C9DCEA; font-size:1.12rem; max-width:560px; margin-bottom:34px;}
.hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:56px;}
.hero-flask-wrap{position:relative; z-index:2;}
.flask-anim{width:100%; max-width:420px; margin:0 auto; display:block;}
.hero-scroll{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:8px; color:#9FC0D6; font-family:var(--ff-mono); font-size:.68rem; letter-spacing:.14em;
}
.hero-scroll .line{width:1px; height:34px; background:linear-gradient(#0FBFA6,transparent); animation:scrollLine 1.8s ease-in-out infinite;}
@keyframes scrollLine{0%{transform:scaleY(0); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0); transform-origin:bottom;}}

/* ---------- Section basics ---------- */
.section{padding:100px 0;}
.section-sm{padding:64px 0;}
.section-title-wrap{max-width:680px; margin-bottom:56px;}
.eyebrow{
  font-family:var(--ff-mono); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--teal); display:flex; align-items:center; gap:10px; margin-bottom:14px; font-weight:600;
}
.eyebrow::before{content:''; width:26px; height:2px; background:var(--teal); display:inline-block;}
.section-title{font-size:clamp(1.7rem,3vw,2.5rem); margin-bottom:16px;}
.section-desc{color:var(--mist); font-size:1.03rem;}
.center-wrap{margin-left:auto; margin-right:auto; text-align:center;}

/* ---------- Stats ---------- */
.stats-band{background:var(--navy); position:relative; padding:64px 0; overflow:hidden;}
.stats-band::before{
  content:''; position:absolute; inset:0; background-image:radial-gradient(circle, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size:24px 24px;
}
.stat-item{position:relative; z-index:1; text-align:center; color:#fff;}
.stat-num{
  font-family:var(--ff-mono); font-size:clamp(2.1rem,4vw,3rem); font-weight:600; color:var(--teal);
  display:flex; align-items:baseline; justify-content:center; gap:2px;
}
.stat-label{color:#B9D2E3; font-size:.86rem; letter-spacing:.05em; margin-top:6px; text-transform:uppercase;}

/* ---------- Cards ---------- */
.card-abbot{
  background:var(--white); border-radius:var(--radius); border:1px solid var(--line);
  transition:all var(--transition); overflow:hidden; height:100%;
}
.card-abbot:hover{transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:var(--teal);}
.cat-card{padding:36px 28px; text-align:center;}
.cat-icon{
  width:64px; height:64px; border-radius:16px; background:linear-gradient(145deg,var(--ice-2),var(--ice));
  display:flex; align-items:center; justify-content:center; margin:0 auto 20px; color:var(--blue); font-size:1.6rem;
  transition:all var(--transition);
}
.card-abbot:hover .cat-icon{background:var(--teal); color:#fff; transform:rotate(-6deg) scale(1.06);}
.cat-card h5{margin-bottom:8px;}
.cat-card p{color:var(--mist); font-size:.88rem; margin-bottom:0;}

.feature-row{display:flex; gap:20px; padding:22px 0; border-bottom:1px solid var(--line);}
.feature-row:last-child{border-bottom:none;}
.feature-icon{
  width:50px; height:50px; border-radius:12px; background:var(--ice-2); color:var(--teal);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:1.15rem;
}
.feature-row h6{margin-bottom:4px;}
.feature-row p{color:var(--mist); font-size:.88rem; margin-bottom:0;}

/* Testimonials */
.testi-card{padding:34px; position:relative;}
.testi-quote{color:var(--teal); font-size:2.2rem; line-height:1; font-family:var(--ff-display); opacity:.5;}
.testi-text{color:var(--ink); font-size:1.0rem; margin:14px 0 22px;}
.testi-person{display:flex; align-items:center; gap:12px;}
.testi-avatar{
  width:46px; height:46px; border-radius:50%; background:linear-gradient(145deg,var(--blue),var(--navy));
  display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-family:var(--ff-display);
}
.testi-person strong{display:block; font-size:.92rem;}
.testi-person span{color:var(--mist); font-size:.78rem;}
.testi-stars{color:var(--amber); font-size:.82rem; margin-bottom:8px;}

/* Partners carousel */
.partners-track{
  display:flex; gap:70px; align-items:center; overflow:hidden; position:relative;
}
.partners-track .track-inner{display:flex; gap:70px; animation:scrollX 26s linear infinite; align-items:center;}
.partners-track:hover .track-inner{animation-play-state:paused;}
@keyframes scrollX{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
.partner-logo{
  font-family:var(--ff-display); font-weight:700; font-size:1.3rem; color:var(--mist-light);
  white-space:nowrap; letter-spacing:.02em; opacity:.75; transition:opacity .3s;
}
.partner-logo:hover{opacity:1; color:var(--blue);}

/* News/blog cards */
.blog-card{overflow:hidden;}
.blog-thumb{height:200px; background-size:cover; background-position:center; position:relative;}
.blog-cat{
  position:absolute; top:14px; left:14px; background:var(--teal); color:#fff; font-size:.7rem;
  padding:5px 12px; border-radius:20px; text-transform:uppercase; letter-spacing:.05em; font-weight:600;
}
.blog-body{padding:24px;}
.blog-meta{font-family:var(--ff-mono); font-size:.72rem; color:var(--mist); margin-bottom:10px; display:flex; gap:14px;}
.blog-body h5{font-size:1.08rem; margin-bottom:10px;}
.blog-body p{color:var(--mist); font-size:.88rem;}
.blog-readmore{color:var(--teal); font-weight:600; font-size:.85rem; display:inline-flex; align-items:center; gap:6px; margin-top:10px;}
.blog-readmore i{transition:transform .3s;}
.blog-card:hover .blog-readmore i{transform:translateX(4px);}

/* Newsletter */
.newsletter-band{
  background:linear-gradient(120deg,var(--navy-deep),var(--blue)); border-radius:24px; padding:56px; position:relative; overflow:hidden;
}
.newsletter-band::after{
  content:''; position:absolute; right:-60px; top:-60px; width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle, rgba(15,191,166,.35), transparent 70%);
}
.newsletter-form .form-control{
  border-radius:30px; padding:14px 22px; border:none; height:52px;
}
.newsletter-form .btn-abbot{height:52px;}

/* Footer */
.footer-abbot{background:var(--navy-deep); color:#B9D2E3; padding-top:80px;}
.footer-abbot h6{color:#fff; font-family:var(--ff-display); margin-bottom:20px; font-size:1rem;}
.footer-abbot a{color:#B9D2E3; font-size:.9rem; transition:color .25s;}
.footer-abbot a:hover{color:var(--teal);}
.footer-abbot ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px;}
.footer-about p{color:#9FBBD0; font-size:.9rem;}
.footer-social{display:flex; gap:10px; margin-top:18px;}
.footer-social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.footer-social a:hover{background:var(--teal); border-color:var(--teal);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1); margin-top:60px; padding:22px 0; font-size:.82rem; color:#8FAAC0;}
.footer-bottom a{color:#8FAAC0;}
.footer-bottom a:hover{color:var(--teal);}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{
  background:linear-gradient(120deg,var(--navy-deep),var(--navy) 60%,var(--blue));
  padding:calc(var(--nav-h) + 70px) 0 70px; position:relative; overflow:hidden; color:#fff;
}
.page-hero::before{
  content:''; position:absolute; inset:0; background-image:radial-gradient(circle, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size:24px 24px;
}
.page-hero .breadcrumb-abbot{position:relative; z-index:1; font-family:var(--ff-mono); font-size:.78rem; color:var(--teal); letter-spacing:.06em;}
.page-hero .breadcrumb-abbot a{color:#C9DCEA;}
.page-hero h1{position:relative; z-index:1; color:#fff; font-size:clamp(2rem,4vw,2.9rem); margin-top:12px;}
.page-hero p{position:relative; z-index:1; color:#C9DCEA; max-width:600px; margin-top:12px;}

/* ---------- Filters / search bar ---------- */
.filter-bar{
  background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow-sm); padding:22px;
  display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:44px; border:1px solid var(--line);
}
.filter-chip{
  padding:9px 18px; border-radius:24px; border:1px solid var(--line); background:transparent; color:var(--ink);
  font-size:.85rem; font-weight:600; cursor:pointer; transition:all .25s; white-space:nowrap;
}
.filter-chip.active, .filter-chip:hover{background:var(--teal); color:#fff; border-color:var(--teal);}
.search-input-wrap{position:relative; flex:1; min-width:220px;}
.search-input-wrap input{
  width:100%; padding:11px 18px 11px 42px; border-radius:24px; border:1px solid var(--line); background:var(--ice);
  color:var(--ink);
}
.search-input-wrap i{position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--mist);}

/* Product card */
.product-card{overflow:hidden; display:flex; flex-direction:column;}
.product-thumb{
  height:180px; background:var(--ice-2); display:flex; align-items:center; justify-content:center;
  color:var(--blue-light); font-size:2.6rem; position:relative;
}
.product-avail{
  position:absolute; top:12px; right:12px; font-size:.68rem; font-weight:700; padding:4px 11px; border-radius:20px;
  text-transform:uppercase; letter-spacing:.04em;
}
.product-avail.in{background:#E4F8F1; color:var(--teal-deep);}
.product-avail.order{background:#FDEEDA; color:#B9701C;}
.product-body{padding:22px; flex:1; display:flex; flex-direction:column;}
.product-cat{font-family:var(--ff-mono); font-size:.7rem; color:var(--mist); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px;}
.product-body h6{margin-bottom:8px;}
.product-body p{color:var(--mist); font-size:.85rem; flex:1;}
.product-actions{display:flex; gap:8px; margin-top:14px;}
.product-actions .btn-abbot{flex:1; justify-content:center; padding:10px 12px; font-size:.82rem;}
.btn-wa{background:#25D366; color:#fff;}
.btn-wa:hover{background:#1DA851; color:#fff;}

/* Services */
.service-card{padding:34px 30px;}
.service-num{font-family:var(--ff-mono); color:var(--teal); font-size:.78rem; letter-spacing:.1em;}
.service-icon{
  width:56px; height:56px; border-radius:14px; background:var(--navy); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.35rem; margin-bottom:20px;
}

/* Gallery */
.gallery-item{border-radius:var(--radius); overflow:hidden; position:relative; cursor:pointer; height:240px;}
.gallery-item img, .gallery-item .gimg{width:100%; height:100%; object-fit:cover; transition:transform .5s;}
.gallery-item .gimg{
  background:linear-gradient(135deg,var(--blue),var(--navy)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:2.2rem;
}
.gallery-item:hover img, .gallery-item:hover .gimg{transform:scale(1.08);}
.gallery-overlay{
  position:absolute; inset:0; background:linear-gradient(0deg, rgba(8,39,66,.86), transparent 60%);
  display:flex; align-items:flex-end; padding:18px; opacity:0; transition:opacity .3s; color:#fff;
}
.gallery-item:hover .gallery-overlay{opacity:1;}
.gallery-overlay span{font-family:var(--ff-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--teal);}
.gallery-item {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;   /* keeps tiles a consistent shape */
  overflow: hidden;
  border-radius: 8px;
}

#gallery-grid {
  margin: 0;
}

.gallery-item {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;       /* square tiles, like the reference image */
  overflow: hidden;
  border-radius: 6px;
  cursor: pointer;
}

.gimg {
  width: 100%;
  height: 100%;
}

.gimg img {
  width: 100%;
  height: 100%;
  object-fit: cover;         /* fills the square, crops overflow */
  object-position: center;
  display: block;
  transition: transform 0.4s ease;
}

/* subtle zoom on hover, like professional galleries */
.gallery-item:hover .gimg img {
  transform: scale(1.08);
}

/* overlay label */
.gallery-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 12px;
  background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 55%);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.gallery-item:hover .gallery-overlay {
  opacity: 1;
}

.gallery-overlay span {
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.3px;
}


/* FAQ accordion */
.faq-item{border-bottom:1px solid var(--line); padding:24px 0;}
.faq-q{display:flex; justify-content:space-between; align-items:center; cursor:pointer; gap:20px;}
.faq-q h6{margin:0; font-size:1.02rem;}
.faq-q .faq-icon{
  width:32px; height:32px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
  flex-shrink:0; transition:all .3s; color:var(--teal);
}
.faq-item.open .faq-icon{background:var(--teal); color:#fff; transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-item.open .faq-a{max-height:300px;}
.faq-a p{color:var(--mist); padding-top:14px; margin-bottom:0;}

/* Timeline (About) */
.timeline-abbot{position:relative; padding-left:40px; border-left:2px solid var(--line);}
.timeline-item{position:relative; padding-bottom:44px;}
.timeline-item::before{
  content:''; position:absolute; left:-46px; top:2px; width:14px; height:14px; border-radius:50%; background:var(--teal);
  box-shadow:0 0 0 5px var(--ice);
}
.timeline-year{font-family:var(--ff-mono); color:var(--teal); font-weight:700; font-size:.9rem;}

/* Team */
.team-card{text-align:center; padding:30px 24px;}
.team-photo{
  width:96px; height:96px; border-radius:50%; margin:0 auto 18px; background:linear-gradient(145deg,var(--blue),var(--navy));
  display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--ff-display); font-size:1.6rem; font-weight:700;
}
.team-card h6{margin-bottom:2px;}
.team-role{color:var(--teal); font-size:.8rem; font-family:var(--ff-mono); text-transform:uppercase; letter-spacing:.05em;}

/* Values / Certificates */
.value-card{padding:30px; text-align:center;}
.cert-badge{
  display:flex; align-items:center; gap:14px; padding:18px 20px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--white);
}
.cert-badge i{font-size:1.6rem; color:var(--teal);}

/* Contact page */
.contact-info-card{padding:26px; display:flex; gap:16px; align-items:flex-start;}
.contact-info-icon{
  width:48px; height:48px; border-radius:12px; background:var(--navy); color:#fff; display:flex; align-items:center;
  justify-content:center; flex-shrink:0; font-size:1.1rem;
}
.form-abbot label{font-weight:600; font-size:.86rem; margin-bottom:6px; display:block;}
.form-abbot .form-control, .form-abbot .form-select{
  border-radius:10px; border:1px solid var(--line); padding:12px 16px; background:var(--white); color:var(--ink);
}
.form-abbot .form-control:focus, .form-abbot .form-select:focus{border-color:var(--teal); box-shadow:0 0 0 3px rgba(15,191,166,.15);}
.map-frame{border-radius:var(--radius); overflow:hidden; height:340px; border:1px solid var(--line);}
.map-frame iframe{width:100%; height:100%; border:0; filter:grayscale(.15);}
.hours-row{display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px dashed var(--line); font-size:.9rem;}
.hours-row:last-child{border-bottom:none;}
.hours-row span:last-child{font-family:var(--ff-mono); color:var(--teal); font-weight:600;}

/* Floating buttons */
.float-stack{position:fixed; right:24px; bottom:24px; z-index:1500; display:flex; flex-direction:column; gap:14px; align-items:flex-end;}
.fab{
  width:58px; height:58px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff;
  font-size:1.5rem; box-shadow:var(--shadow-lg); transition:transform .3s; position:relative;
}
.fab:hover{transform:scale(1.08) translateY(-2px); color:#fff;}
.fab-wa{background:#25D366;}
.fab-wa::before{
  content:''; position:absolute; inset:0; border-radius:50%; background:#25D366; opacity:.5;
  animation:pulseFab 2s ease-out infinite;
}
@keyframes pulseFab{0%{transform:scale(1); opacity:.5;} 100%{transform:scale(1.9); opacity:0;}}
.fab-top{
  width:46px; height:46px; background:var(--navy); opacity:0; visibility:hidden; transform:translateY(10px); font-size:1.15rem;
}
.fab-top.show{opacity:1; visibility:visible; transform:translateY(0);}
.wa-tooltip{
  position:absolute; right:70px; bottom:8px; background:#fff; color:var(--ink); padding:12px 16px; border-radius:12px;
  box-shadow:var(--shadow-md); width:240px; font-size:.82rem; opacity:0; visibility:hidden; transition:all .3s; transform:translateX(8px);
}
.fab-wa:hover .wa-tooltip{opacity:1; visibility:visible; transform:translateX(0);}
.wa-tooltip::after{content:''; position:absolute; right:-6px; bottom:18px; width:12px; height:12px; background:#fff; transform:rotate(45deg);}

/* Reveal on scroll */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* Social share */
.share-row{display:flex; gap:10px; align-items:center;}
.share-row a{
  width:36px; height:36px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center;
  justify-content:center; color:var(--navy); font-size:.85rem;
}
[data-theme="dark"] .share-row a{color:#EAF2F8;}
.share-row a:hover{background:var(--teal); border-color:var(--teal); color:#fff;}

/* Badges */
.badge-abbot{
  display:inline-flex; align-items:center; gap:6px; font-family:var(--ff-mono); font-size:.7rem; letter-spacing:.06em;
  text-transform:uppercase; background:var(--ice-2); color:var(--blue); padding:6px 12px; border-radius:20px; font-weight:600;
}

/* Utility */
.divider-dot{width:5px; height:5px; border-radius:50%; background:var(--mist-light); display:inline-block;}
.rounded-abbot{border-radius:var(--radius) !important;}
.shadow-abbot{box-shadow:var(--shadow-md) !important;}

/* Responsive tweaks */
@media (max-width:991px){
  .hero{min-height:auto; padding-bottom:70px;}
  .section{padding:70px 0;}
  .newsletter-band{padding:36px 24px;}
  .float-stack{right:16px; bottom:16px;}
}
@media (max-width:767px){
  .hero-cta{flex-direction:column;}
  .hero-cta .btn-abbot{width:100%; justify-content:center;}
  .filter-bar{flex-direction:column; align-items:stretch;}
}
