:root{
  --dark: #10131a;
  --dark-2: #171b24;
}

html{scroll-behavior:smooth}
body{background:#fff}

/* ---- nav ---- */
.hnav{background:var(--blue); position:sticky; top:0; z-index:30}
.hnav-inner{
  max-width:1180px; margin:0 auto; padding:12px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.hnav-links{display:none; gap:22px; align-items:center}
.hnav-links > a{font-family:GCMedium; font-size:14.5px; color:rgba(255,255,255,.9); text-decoration:none; transition:.15s}
.hnav-links > a:hover{color:#fff}
.hnav-links > a.active{color:#fff; font-family:GCBold}
.hnav-actions{display:flex; align-items:center; gap:14px}
.book-pill{
  position:relative; overflow:hidden;
  display:none; align-items:center; gap:8px; background:#fff; color:var(--blue-dark); text-decoration:none;
  font-family:GCBold; font-size:13.5px; padding:10px 20px; border-radius:999px; transition:.15s;
  box-shadow:0 8px 18px rgba(8,20,46,.2);
}
.book-pill:hover{background:var(--blue-tint)}
.book-pill::after{
  content:""; position:absolute; top:0; left:0; width:35%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(28,116,224,.2) 35%, rgba(28,116,224,.9) 50%, rgba(28,116,224,.2) 65%, transparent);
  transform:translateX(-290%) skewX(-20deg);
  animation:heroCtaShine 3.4s ease-in-out infinite;
}
@media(prefers-reduced-motion: reduce){
  .book-pill::after{animation:none}
}
.nav-toggle{background:none; border:none; font-size:22px; cursor:pointer; color:#fff; display:block}
@media(min-width:860px){
  .hnav-links{display:flex}
  .book-pill{display:flex}
  .nav-toggle{display:none}
}

/* services dropdown */
.nav-dropdown{position:relative}
.nav-dropdown > a{display:flex; align-items:center; gap:4px; font-family:GCMedium; font-size:14.5px; color:rgba(255,255,255,.9); text-decoration:none; transition:.15s; cursor:pointer}
.nav-dropdown > a:hover{color:#fff}
.nav-dropdown .caret{font-size:10px; transition:transform .2s}
.nav-dropdown-menu{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(4px);
  background:#fff; border-radius:10px; box-shadow:var(--shadow); padding:8px; min-width:230px;
  display:flex; flex-direction:column; gap:1px; opacity:0; pointer-events:none; transition:.15s; z-index:5;
}
.nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown:focus-within .nav-dropdown-menu{
  opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.nav-dropdown-menu a{color:var(--ink); font-size:13.5px; padding:9px 12px; border-radius:6px; text-decoration:none}
.nav-dropdown-menu a:hover{background:var(--bg); color:var(--blue)}

/* mobile flyout */
.hnav-links.open{
  display:flex; position:absolute; top:60px; left:0; right:0; background:#fff; flex-direction:column;
  padding:16px 20px; gap:16px; border-bottom:1px solid var(--line); box-shadow:var(--shadow);
}
.hnav-links.open > a, .hnav-links.open .nav-dropdown > a{color:var(--ink)}
.hnav-links.open > a.active{background:none; color:var(--blue); margin:0; padding:0; border-radius:0}
.hnav-links.open .nav-dropdown{width:100%}
.hnav-links.open .nav-dropdown > a{justify-content:center}
.hnav-links.open .nav-dropdown.open > a{color:var(--blue)}
.hnav-links.open .nav-dropdown.open .caret{transform:rotate(180deg)}
.hnav-links.open .nav-dropdown-menu{
  position:static; opacity:1; pointer-events:auto; transform:none; box-shadow:none; padding:0 0 0 14px;
  min-width:0; margin-top:0; max-height:0; overflow:hidden; transition:max-height .25s ease, margin-top .25s ease;
}
.hnav-links.open .nav-dropdown.open .nav-dropdown-menu{max-height:600px; margin-top:8px}
.hnav-links.open a:hover{color:var(--blue)}

/* ---- hero ---- */
.hero{position:relative; overflow:hidden}
.hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:center 20%; display:block; z-index:0;
}
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg, rgba(15,56,133,.92) 0%, rgba(15,56,133,.72) 32%, rgba(15,56,133,.32) 58%, rgba(15,56,133,.08) 78%);
}
.hero-inner{
  position:relative; z-index:2;
  max-width:1180px; margin:0 auto; padding:13vh 20px 44px; box-sizing:border-box;
  display:flex; align-items:flex-start;
  min-height:calc(100vh - 56px); min-height:calc(100svh - 56px);
}
@media(min-width:860px){
  .hero-inner{ min-height:calc(100vh - 65px); min-height:calc(100svh - 65px); }
}
.hero-copy{max-width:560px}
@media(max-width:640px){
  .hero-bg{object-position:center 15%}
  .hero-overlay{
    background:linear-gradient(180deg, rgba(15,56,133,.88) 0%, rgba(15,56,133,.82) 55%, rgba(15,56,133,.62) 100%);
  }
  .hero-inner{padding:12vh 20px 36px}
}
.eyebrow-light{font-family:GCBold; color:#fff; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase}
.hero-title{
  font-family:GCExtraBold; color:#fff; font-size:40px; line-height:1.12; letter-spacing:-1.5px;
}
.hero-title span{color:#dcecff}
@media(min-width:400px){ .hero-title{font-size:46px} }
@media(min-width:640px){ .hero-title{font-size:56px} }
@media(min-width:1200px){ .hero-title{font-size:68px} }
.hero-sub{color:#e4ecfb; font-size:16px; line-height:1.6; margin-top:22px; max-width:460px}
@media(min-width:1200px){ .hero-copy{max-width:600px} .hero-sub{font-size:18px; max-width:520px; margin-top:26px} }
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-top:38px}
.hero-cta{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--blue); color:#fff; text-decoration:none;
  font-family:GCBold; font-size:16px; padding:16px 36px; border-radius:999px;
  transition:.15s; box-shadow:0 14px 30px rgba(8,20,46,.35);
}
.hero-cta:hover{background:var(--blue-dark)}

.hero-cta::after{
  content:""; position:absolute; top:0; left:0; width:35%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,.25) 35%, rgba(255,255,255,.95) 50%, rgba(255,255,255,.25) 65%, transparent);
  transform:translateX(-290%) skewX(-20deg);
  animation:heroCtaShine 3.4s ease-in-out infinite;
}
@keyframes heroCtaShine{
  0%{transform:translateX(-290%) skewX(-20deg)}
  35%{transform:translateX(410%) skewX(-20deg)}
  100%{transform:translateX(410%) skewX(-20deg)}
}
@media(prefers-reduced-motion: reduce){
  .hero-cta::after{animation:none}
}
.btn-outline-blue{background:transparent; color:var(--blue); border-color:var(--blue)}
.btn-outline-blue:hover{background:var(--blue-tint)}

/* ---- about page ---- */
.about-header{
  position:relative; overflow:hidden; min-height:38vh; display:flex; align-items:center;
  background-image:
    linear-gradient(100deg, rgba(15,56,133,.90) 0%, rgba(15,56,133,.65) 48%, rgba(15,56,133,.28) 85%),
    url('img/heroimage.png');
  background-size:cover; background-position:center;
}
.about-header-inner{max-width:1180px; margin:0 auto; padding:70px 20px; width:100%; box-sizing:border-box}
.about-header h1{font-family:GCExtraBold; color:#fff; font-size:32px; line-height:1.15; letter-spacing:-1px; margin-top:10px}
@media(min-width:640px){ .about-header h1{font-size:44px} }

.about-intro{padding-top:0}
.about-card{
  max-width:820px; margin:-56px auto 0; background:#fff; border-radius:16px; box-shadow:var(--shadow);
  padding:36px 24px; position:relative; z-index:2; box-sizing:border-box;
  transition:transform .3s ease, box-shadow .3s ease;
}
.about-card:hover{transform:translateY(-6px); box-shadow:0 26px 54px rgba(15,56,133,.2)}
@media(min-width:640px){ .about-card{padding:48px 56px} }
.about-card h2{font-size:24px}
.about-card p{color:var(--ink-soft); margin-top:18px; font-size:15.5px; line-height:1.7}

.about-cta{
  position:relative; overflow:hidden;
  background-image:
    linear-gradient(100deg, rgba(15,56,133,.90) 0%, rgba(15,56,133,.72) 50%, rgba(15,56,133,.5) 100%),
    url('img/afterconstruction.png');
  background-size:cover; background-position:center 25%;
  padding:80px 20px; text-align:center;
}
.about-cta-inner{max-width:560px; margin:0 auto}
.about-cta h2{color:#fff; font-size:28px; font-family:GCExtraBold}
@media(min-width:640px){ .about-cta h2{font-size:34px} }
.about-cta p{color:#e4ecfb; margin-top:14px; font-size:16px; line-height:1.6}
.about-cta .hero-cta{margin-top:26px}

/* ---- intro ---- */
.intro{background:var(--bg); padding:88px 0}
.intro-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:center}
@media(min-width:900px){ .intro-grid{grid-template-columns:0.85fr 1.15fr; gap:64px} }
.intro-media{
  border-radius:20px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/3;
  max-width:360px; margin:0 auto;
}
@media(min-width:900px){ .intro-media{max-width:100%} }
.intro-media img{width:100%; height:100%; object-fit:cover; object-position:center 25%; display:block}
.intro-copy h2{color:var(--ink); font-size:30px; line-height:1.25}
@media(min-width:640px){ .intro-copy h2{font-size:38px} }
.intro-text-box{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:28px 26px; margin-top:28px; box-sizing:border-box;
  transition:transform .3s ease, box-shadow .3s ease;
}
.intro-text-box:hover{transform:translateY(-4px); box-shadow:0 20px 40px rgba(15,56,133,.14)}
.intro-text-box p{color:var(--ink-soft); font-size:15.5px; line-height:1.8}
.intro-btn{
  display:flex; width:max-content; align-items:center; justify-content:center; margin:36px auto 0;
  background:#fff; color:var(--blue); text-decoration:none; font-family:GCBold; font-size:14px;
  padding:15px 34px; border-radius:999px; border:1.5px solid var(--blue);
  box-shadow:var(--shadow); transition:.2s;
}
.intro-btn:hover{background:var(--blue-tint)}

/* ---- shared section heading ---- */
.section{padding:88px 0}
.section-head{text-align:center; max-width:580px; margin:0 auto}
.rule-heading{display:flex; align-items:center; justify-content:center; gap:16px}
.rule-heading span{width:36px; height:2px; background:var(--blue)}
.rule-heading h2{font-size:28px}
.section-head p{color:var(--ink-soft); margin-top:12px; font-size:15.5px}
.section-cta{text-align:center; margin-top:44px}
.book-service-btn{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--blue); color:#fff; text-decoration:none;
  font-family:GCBold; font-size:16px; padding:16px 36px; border-radius:999px;
  transition:.15s; box-shadow:0 16px 34px rgba(51,145,255,.22);
}
.book-service-btn:hover{background:var(--blue-dark); box-shadow:0 16px 34px rgba(51,145,255,.32)}

/* ---- category filter pills: swap the grid in place, no stacked sections
   to scroll past ---- */
.service-filter-bar{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:32px;
}
.service-pill{
  border:1.5px solid var(--line); background:#fff; color:var(--ink-soft);
  border-radius:999px; padding:9px 18px; font-family:GCBold; font-size:13.5px; transition:.15s;
}
.service-pill:hover{border-color:var(--blue); color:var(--blue-dark)}
.service-pill.active{background:var(--blue); border-color:var(--blue); color:#fff}
.service-count{text-align:center; color:var(--ink-soft); font-size:12.5px; margin-top:16px}

/* ---- homepage service grid (icon-badge over photo) ---- */
.service-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:16px;
  transition:opacity .15s ease;
  /* replacing the grid's contents on every filter click re-creates all its
     child nodes; without this, the browser's scroll-anchoring picks a new
     anchor mid-swap and the page visibly jumps. */
  overflow-anchor:none;
}
.service-grid.filtering{opacity:0}
@media(min-width:640px){ .service-grid{grid-template-columns:repeat(3,1fr)} }
@media(min-width:960px){ .service-grid{grid-template-columns:repeat(4,1fr)} }
@media(min-width:1200px){ .service-grid{grid-template-columns:repeat(5,1fr)} }
.hservice-card{
  text-decoration:none; color:inherit; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line); background:#fff; transition:.2s; display:block;
}
.hservice-card:hover{box-shadow:var(--shadow); transform:translateY(-3px); border-color:var(--blue-tint)}
.hservice-media{position:relative; aspect-ratio:5/4}
.hservice-img-wrap{width:100%; height:100%; overflow:hidden; background:var(--bg)}
.hservice-img-wrap img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s}
.hservice-card:hover .hservice-img-wrap img{transform:scale(1.07)}
.hservice-icon{
  position:absolute; left:12px; bottom:-16px; width:38px; height:38px; border-radius:50%;
  background:#fff; box-shadow:var(--shadow); display:flex; align-items:center; justify-content:center; color:var(--blue); z-index:2;
}
.hservice-icon svg{width:18px; height:18px}
.hservice-icon .emoji-icon{font-size:18px; line-height:1}
.hservice-body{padding:22px 12px 12px}
.hservice-body h4{font-size:13px}

/* ---- "don't see what you need?" custom request card ---- */
.custom-request{
  margin-top:44px; display:flex; gap:20px; align-items:flex-start;
  background:linear-gradient(135deg, var(--blue-tint), var(--bg));
  border:1.5px solid var(--blue-tint); border-radius:var(--radius); padding:28px 24px;
}
@media(max-width:639px){ .custom-request{flex-direction:column; align-items:center; text-align:center} }
.custom-request-icon{
  flex-shrink:0; width:52px; height:52px; border-radius:50%; background:#fff; color:var(--blue);
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow);
}
.custom-request-icon svg{width:26px; height:26px}
.custom-request-body{flex:1; max-width:560px}
.custom-request-body h3{font-size:19px}
.custom-request-body > p{color:var(--ink-soft); font-size:14px; margin-top:6px; line-height:1.55}
.custom-request-body form{margin-top:20px; text-align:left}
.custom-request-body .btn-block{margin-top:16px}

/* ---- why us ---- */
.why-us{background:var(--bg); padding:88px 0}
.why-us-title{color:var(--ink); text-align:center; font-size:28px}
.why-us-title span{color:var(--blue)}
.why-us-lead{color:var(--ink-soft); text-align:center; max-width:580px; margin:16px auto 0; font-size:15.5px; line-height:1.7}
.why-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:20px 14px; margin-top:48px; justify-items:center;
}
@media(min-width:640px){ .why-grid{grid-template-columns:repeat(3,1fr)} }
@media(min-width:960px){ .why-grid{grid-template-columns:repeat(6,1fr)} }
.why-badge{
  width:108px; height:108px; border-radius:50%; background:#fff; color:var(--blue); box-sizing:border-box;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:10px;
  box-shadow:0 0 0 1.5px rgba(51,145,255,.4), 0 0 16px rgba(51,145,255,.35);
  transition:box-shadow .25s ease, transform .25s ease;
}
.why-badge:hover{
  transform:translateY(-4px);
  box-shadow:0 0 0 1.5px rgba(51,145,255,.6), 0 0 24px rgba(51,145,255,.55);
}
.why-badge svg{width:30px; height:30px; flex-shrink:0}
.why-badge span{font-family:GCMedium; font-size:11px; color:var(--ink); line-height:1.25; text-align:center}
.why-guarantee{
  text-align:center; color:var(--ink-soft); font-size:15px; margin-top:44px;
}
.why-guarantee strong{color:var(--blue-dark); font-family:GCBold}

/* ---- 3-step banner ---- */
.steps{background:linear-gradient(120deg, var(--blue), var(--blue-dark))}
.steps-inner{padding:64px 20px; display:grid; grid-template-columns:1fr; gap:32px; align-items:center}
@media(min-width:960px){ .steps-inner{grid-template-columns:0.8fr 1.4fr 0.8fr} }
.steps-lead h2{color:#fff; font-size:24px; margin-top:10px; line-height:1.25}
.steps .eyebrow-light{color:#dbe9ff}
.steps-list{display:flex; flex-direction:column; gap:22px}

/* rail: the row of numbered circles + connecting track, kept as its own
   strip so circle spacing never depends on how tall the text labels are */
.steps-rail{position:relative; display:flex; justify-content:space-between; align-items:center; height:34px}
.steps-track{
  position:absolute; left:17px; right:17px; top:50%; height:2px; transform:translateY(-50%);
  background:rgba(255,255,255,.25); border-radius:999px; overflow:hidden; z-index:0;
}
.steps-track-fill{
  position:absolute; left:0; top:0; height:100%; width:0; opacity:0;
  background:linear-gradient(90deg, rgba(255,255,255,.15), rgba(255,255,255,.9));
  border-radius:999px; animation:stepsTrackFill 8s ease-in-out infinite;
}
.steps-flow-dot{
  position:absolute; left:0%; top:50%; width:12px; height:12px; margin:-6px 0 0 -6px;
  border-radius:50%; background:#fff; opacity:0; z-index:1;
  box-shadow:0 0 10px 3px rgba(255,255,255,.85), 0 0 22px 8px rgba(255,255,255,.35);
  animation:stepsFlowDot 8s ease-in-out infinite;
}
.steps-dot{
  position:relative; z-index:2;
  width:34px; height:34px; border-radius:50%; background:#fff; color:var(--blue-dark); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-family:GCExtraBold; font-size:15px;
  animation:stepsDotPulse 8s ease-in-out infinite;
}
.steps-dot-2{animation-delay:3s}
.steps-dot-3{animation-delay:6.2s}

@keyframes stepsTrackFill{
  0%{width:0%; opacity:0} 5%{width:0%; opacity:1}
  37.5%{width:50%; opacity:1} 45%{width:50%; opacity:1}
  77.5%{width:100%; opacity:1} 85%{width:100%; opacity:1}
  92%{width:100%; opacity:0} 93%{width:0%; opacity:0} 100%{width:0%; opacity:0}
}
@keyframes stepsFlowDot{
  0%{left:0%; opacity:0} 5%{left:0%; opacity:1}
  37.5%{left:50%; opacity:1} 45%{left:50%; opacity:1}
  77.5%{left:100%; opacity:1} 85%{left:100%; opacity:1}
  92%{left:100%; opacity:0} 93%{left:0%; opacity:0} 100%{left:0%; opacity:0}
}
@keyframes stepsDotPulse{
  0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}
  8%{box-shadow:0 0 0 11px rgba(255,255,255,0)}
  16%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
  100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
}
@media(prefers-reduced-motion: reduce){
  .steps-track-fill, .steps-flow-dot, .steps-dot{animation:none}
  .steps-track-fill{width:100%; opacity:.4}
}

/* labels: stacked under the rail on mobile, spread into 3 columns beneath
   it on wider screens so each label still sits roughly under its circle */
.steps-labels{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px}
@media(min-width:640px){ .steps-labels{flex-direction:row; gap:20px} }
.step-label{transition:transform .25s ease}
.step-label:hover{transform:translateY(-4px)}
@media(min-width:640px){ .step-label{flex:1; text-align:center} }
.step-label h4{color:#fff; font-size:14.5px}
.step-label p{color:#dbe9ff; font-size:12.5px; margin-top:3px}
.steps-cta{display:flex; flex-direction:column; align-items:flex-start; gap:12px}
@media(min-width:960px){ .steps-cta{align-items:flex-end} }
.steps-book-btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; color:var(--blue-dark); text-decoration:none;
  font-family:GCBold; font-size:15px; padding:14px 32px; border-radius:999px;
  transition:.15s; box-shadow:0 10px 24px rgba(8,20,46,.25);
}
.steps-book-btn:hover{background:var(--blue-tint)}
.steps-book-btn::after{
  content:""; position:absolute; top:0; left:0; width:35%; height:100%;
  background:linear-gradient(115deg, transparent, rgba(28,116,224,.2) 35%, rgba(28,116,224,.9) 50%, rgba(28,116,224,.2) 65%, transparent);
  transform:translateX(-290%) skewX(-20deg);
  animation:heroCtaShine 3.4s ease-in-out infinite;
}
@media(prefers-reduced-motion: reduce){
  .steps-book-btn::after{animation:none}
}

/* ---- team ---- */
.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px; max-width:560px; margin-left:auto; margin-right:auto}
.team-card{text-align:center}
.team-card img{
  width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:50%; box-shadow:var(--shadow);
  transition:transform .3s ease, box-shadow .3s ease;
}
.team-card:hover img{transform:scale(1.05); box-shadow:0 18px 36px rgba(15,56,133,.22)}
.team-card h4{margin-top:14px; font-size:13.5px}
.team-role{color:var(--ink-soft); font-size:12px}

.pro-cta{
  margin-top:64px; text-align:center; background:var(--blue-tint); border-radius:var(--radius);
  padding:40px 24px; max-width:560px; margin-left:auto; margin-right:auto;
  transition:transform .25s ease, box-shadow .25s ease;
}
.pro-cta:hover{transform:translateY(-5px); box-shadow:0 20px 40px rgba(15,56,133,.14)}
.pro-cta h3{font-size:19px; color:var(--blue-dark)}
.pro-cta p{color:var(--ink-soft); margin-top:8px; font-size:14px}
.pro-cta .btn{margin-top:20px}

/* ---- contact form ---- */
.contact-card{
  max-width:480px; margin:40px auto 0; background:var(--card); border:1.5px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow); padding:32px 28px;
}
@media(max-width:479px){ .contact-card{padding:26px 20px} }
.contact-form .btn-block{margin-top:22px}
#contactStatus{text-align:center; margin-top:12px}

.ofooter{background:#fff; padding:64px 0 0; border-top:1px solid var(--line)}
.ofooter-grid{display:grid; grid-template-columns:1fr; gap:40px; align-items:start}
@media(min-width:860px){ .ofooter-grid{grid-template-columns:1.3fr 1fr .8fr} }
.ofooter-media{border-radius:16px; overflow:hidden; aspect-ratio:3/2}
.ofooter-media img{width:100%; height:100%; object-fit:cover; object-position:left top; display:block}
.ofooter-col h3{font-family:GCExtraBold; font-size:22px; color:var(--ink)}
.ofooter-col > p{color:var(--ink-soft); margin-top:10px; font-size:14.5px}
.ofooter-list{list-style:none; margin:22px 0 0; padding:0; display:flex; flex-direction:column; gap:14px}
.ofooter-list li{display:flex; align-items:center; gap:12px; color:var(--ink-soft); font-size:14.5px}
.ofooter-list a{color:var(--ink-soft); text-decoration:none}
.ofooter-list a:hover{color:var(--blue)}
.ofooter-icon{display:inline-flex; flex-shrink:0; color:var(--blue)}
.ofooter-icon svg{width:20px; height:20px; display:block}
.ofooter-whatsapp{
  display:inline-flex; align-items:center; gap:9px; margin-top:22px; padding:11px 22px;
  border:1.5px solid #25d366; border-radius:8px; color:#25d366; text-decoration:none;
  font-family:GCBold; font-size:13.5px; transition:.15s;
}
.ofooter-whatsapp svg{flex-shrink:0}
.ofooter-whatsapp:hover{background:#25d366; color:#fff}
.ofooter-social{display:flex; gap:12px; margin-top:20px}
.ofooter-social a{
  display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:999px;
  background:#fff; box-shadow:var(--shadow); text-decoration:none; transition:.15s;
}
.ofooter-social a:hover{transform:translateY(-3px); box-shadow:0 12px 26px rgba(15,56,133,.25)}
.ofooter-bottom{
  margin-top:56px; background:var(--bg); padding:18px 20px; text-align:center;
  color:var(--ink); font-family:GCBold; font-size:13.5px;
}
