/* ==========================================================================
   Safir Kalıp — safirkalip.com
   Tek sayfa kurumsal site / parallax
   ========================================================================== */

:root{
  /* Logodan alınan marka renkleri */
  --brand:        #1c8fcf;
  --brand-bright: #29abe2;
  --brand-deep:   #16688f;
  --brand-ink:    #0f4f6e;

  --ink:      #1c2026;
  --ink-2:    #2b3038;
  --ink-3:    #3a4049;
  --steel:    #5d6570;
  --steel-2:  #8a939e;
  --line:     #dfe3e8;
  --line-2:   #e9edf1;
  --paper:    #ffffff;
  --paper-2:  #f4f6f8;
  --paper-3:  #eceff3;

  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --disp: 'Archivo', 'Inter', 'Segoe UI', sans-serif;

  --gut: clamp(1.25rem, 4vw, 2.5rem);
  --sec-y: clamp(4.5rem, 9vw, 8.5rem);

  --shadow-1: 0 1px 2px rgba(20,28,38,.06), 0 4px 14px rgba(20,28,38,.06);
  --shadow-2: 0 10px 30px rgba(20,28,38,.10), 0 2px 6px rgba(20,28,38,.05);
  --shadow-3: 0 26px 60px rgba(15,22,32,.20);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ------------------------------ temel ----------------------------------- */

*,*::before,*::after{ box-sizing:border-box; }

/* Yumuşak kaydırma main.js içinde jQuery ile yapılıyor. CSS'te de açık olursa iki
   animasyon birbirini ezip hedefi ıskalıyor; bu yüzden burada bilerek kapalı. */
html{ scroll-behavior:auto; }

body{
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.72;
  color:var(--ink-3);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; }

h1,h2,h3,h4{
  font-family:var(--disp);
  color:var(--ink);
  font-weight:700;
  letter-spacing:-.015em;
  line-height:1.14;
}

a{ color:var(--brand-deep); text-decoration:none; transition:color .2s var(--ease); }
a:hover{ color:var(--brand); }

::selection{ background:var(--brand); color:#fff; }

.txt-brand{ color:var(--brand); }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:2000;
  background:var(--ink); color:#fff; padding:.85rem 1.4rem; font-weight:600;
}
.skip-link:focus{ left:1rem; top:1rem; color:#fff; }

:focus-visible{
  outline:2px solid var(--brand-bright);
  outline-offset:3px;
}

/* --------------------------- ortak bileşenler --------------------------- */

/* Bootstrap'in gx-5 satır boşluğu, container dolgusundan büyük olduğu için
   küçük ekranlarda 12px yatay taşma yaratıyor. Sütunlar zaten alt alta indiği
   için tablet ve altında boşluğu container dolgusuyla eşitliyoruz. */
@media (max-width:991.98px){
  .row.gx-5{ --bs-gutter-x:1.5rem; }
}

.section{ padding:var(--sec-y) 0; position:relative; }
.section--tight{ padding:clamp(3rem,6vw,5rem) 0; }
.section--light{ background:var(--paper); }
.section--tint{ background:var(--paper-2); }
.section--dark{ background:var(--ink); color:#aeb6c0; }
.section--dark p{ color:#a4adb8; }

.eyebrow{
  font-family:var(--disp);
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brand);
  margin:0 0 1.1rem;
  display:flex;
  align-items:flex-start;
  gap:.75rem;
}
.eyebrow::before{
  content:"";
  width:34px; height:2px;
  margin-top:.62em;          /* çok satırlı olduğunda ilk satıra hizalanır */
  background:var(--brand);
  flex:0 0 auto;
}
@media (max-width:575.98px){
  .eyebrow{ font-size:.7rem; letter-spacing:.16em; }
  .eyebrow::before{ width:24px; }
}
.eyebrow--light{ color:var(--brand-bright); }
.eyebrow--light::before{ background:var(--brand-bright); }

.section-title{
  font-size:clamp(1.95rem, 3.4vw, 3.05rem);
  margin:0 0 1.4rem;
}
.section-title--light{ color:#fff; }
.section-title--sm{ font-size:clamp(1.6rem,2.4vw,2.2rem); }

.section-head{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1rem 3.5rem;
  align-items:end;
  margin-bottom:clamp(2.75rem,5vw,4.25rem);
}
.section-head__text{ margin:0; max-width:56ch; }
.section--dark .section-head__text{ color:#98a1ad; }

@media (min-width:992px){
  .section-head{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); }
  .section-head__text{ padding-bottom:.5rem; }
}

.lead-text{
  font-size:1.075rem;
  color:var(--ink-2);
  margin-bottom:1.15rem;
}
.lead-text--light{ color:#c2cad4; }

/* butonlar */
.btn{
  --bs-btn-border-radius:2px;
  font-family:var(--disp);
  font-weight:600;
  letter-spacing:.02em;
  border-radius:2px;
  padding:.72rem 1.6rem;
  border:1px solid transparent;
  transition:background .22s var(--ease), color .22s var(--ease),
             border-color .22s var(--ease), transform .22s var(--ease),
             box-shadow .22s var(--ease);
}
.btn-lg{ padding:.95rem 2rem; font-size:1rem; }
.btn-sm{ padding:.55rem 1.15rem; font-size:.875rem; }

.btn-brand{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
  box-shadow:0 6px 18px rgba(28,143,207,.24);
}
.btn-brand:hover,.btn-brand:focus{
  background:var(--brand-deep);
  border-color:var(--brand-deep);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(28,143,207,.30);
}

.btn-ghost{
  background:transparent;
  border-color:rgba(255,255,255,.34);
  color:#fff;
}
.btn-ghost:hover,.btn-ghost:focus{
  background:rgba(255,255,255,.10);
  border-color:#fff;
  color:#fff;
  transform:translateY(-2px);
}

/* scroll ile beliren öğeler */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .75s var(--ease), transform .75s var(--ease);
  will-change:opacity, transform;
}
.reveal.is-in{ opacity:1; transform:none; }

/* ------------------------------ üst şerit -------------------------------- */

.topbar{
  background:var(--ink-2);
  color:#98a1ad;
  font-size:.82rem;
  line-height:1;
  padding:.7rem 0;
  position:relative;
  z-index:1035;
}
.topbar__claim{
  color:#8b95a1;
  letter-spacing:.01em;
}
.topbar__list{ display:flex; gap:2rem; }
.topbar__list li{ display:flex; align-items:center; gap:.5rem; }
.topbar__list a{ color:#c3cbd5; }
.topbar__list a:hover{ color:var(--brand-bright); }
.topbar svg{ width:15px; height:15px; fill:var(--brand); flex:0 0 auto; }

/* -------------------------------- menü ---------------------------------- */

.site-head{
  position:sticky;
  top:0;
  z-index:1040;
  background:rgba(28,32,38,.94);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background .3s var(--ease), border-color .3s var(--ease),
             box-shadow .3s var(--ease);
}
.site-head.is-stuck{
  background:rgba(255,255,255,.97);
  border-bottom-color:var(--line);
  box-shadow:0 4px 22px rgba(20,28,38,.08);
}

.navbar{ padding:.65rem 0; }

.navbar-brand{ display:block; padding:0; margin-right:2rem; }
.brand-img{
  height:38px; width:auto; display:block;
  transition:opacity .3s var(--ease);
}
.brand-img--dark{ display:none; }
.site-head.is-stuck .brand-img--light{ display:none; }
.site-head.is-stuck .brand-img--dark{ display:block; }

.navbar-nav{ gap:.15rem; }

.nav-link{
  font-family:var(--disp);
  font-size:1rem;
  font-weight:500;
  color:rgba(255,255,255,.80);
  padding:.6rem .95rem;
  position:relative;
  transition:color .2s var(--ease);
}
.nav-link::after{
  content:"";
  position:absolute;
  left:.95rem; right:.95rem; bottom:.28rem;
  height:2px;
  background:var(--brand-bright);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s var(--ease);
}
.nav-link:hover,.nav-link.active{ color:#fff; }
.nav-link:hover::after,.nav-link.active::after{ transform:scaleX(1); }

.site-head.is-stuck .nav-link{ color:var(--ink-3); }
.site-head.is-stuck .nav-link:hover,
.site-head.is-stuck .nav-link.active{ color:var(--ink); }
.site-head.is-stuck .nav-link::after{ background:var(--brand); }

.nav-item--cta{ margin-left:.9rem; }

/* hamburger */
.navbar-toggler{
  border:1px solid rgba(255,255,255,.22);
  border-radius:2px;
  padding:.5rem .6rem;
  box-shadow:none !important;
}
.site-head.is-stuck .navbar-toggler{ border-color:var(--line); }
.burger{ display:block; width:22px; }
.burger i{
  display:block; height:2px; background:#fff; border-radius:2px;
  transition:transform .3s var(--ease), opacity .25s var(--ease), background .3s var(--ease);
}
.burger i + i{ margin-top:5px; }
.site-head.is-stuck .burger i{ background:var(--ink); }
.navbar-toggler[aria-expanded="true"] .burger i:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .burger i:nth-child(2){ opacity:0; }
.navbar-toggler[aria-expanded="true"] .burger i:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:991.98px){
  .navbar-collapse{
    margin-top:.85rem;
    padding:.6rem 0 1rem;
    border-top:1px solid rgba(255,255,255,.10);
  }
  .site-head.is-stuck .navbar-collapse{ border-top-color:var(--line); }
  .navbar-nav{ gap:0; }
  .nav-link{ padding:.72rem .25rem; }
  .nav-link::after{ left:.25rem; right:auto; width:26px; }
  .nav-item--cta{ margin:.85rem 0 0; }
  .nav-item--cta .btn{ width:100%; padding:.8rem 1rem; }
}

/* -------------------------------- hero ---------------------------------- */

.hero{
  position:relative;
  background:
    radial-gradient(120% 100% at 78% 8%, #2b3138 0%, transparent 58%),
    linear-gradient(165deg, #22272e 0%, #1a1e24 52%, #14171c 100%);
  color:#b7bfca;
  padding:clamp(4.5rem,9vw,7.5rem) 0 clamp(5.5rem,10vw,8rem);
  overflow:hidden;
  isolation:isolate;
}

/* teknik ızgara dokusu */
.hero__grid{
  position:absolute; inset:-12% -5%;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size:120px 120px, 120px 120px, 24px 24px, 24px 24px;
  mask-image:radial-gradient(85% 75% at 30% 35%, #000 0%, transparent 78%);
  -webkit-mask-image:radial-gradient(85% 75% at 30% 35%, #000 0%, transparent 78%);
  z-index:-2;
}

/* filigran "S" */
.hero__mark{
  position:absolute;
  right:-3vw; top:44%;
  transform:translateY(-50%);
  font-family:var(--disp);
  font-weight:700;
  font-size:min(48vw,44rem);
  line-height:.72;
  color:rgba(255,255,255,.022);
  z-index:-1;
  user-select:none;
  pointer-events:none;
}

.hero__col-text{ position:relative; z-index:2; }

.hero__title{
  font-size:clamp(2.4rem, 5.4vw, 4.3rem);
  color:#fff;
  letter-spacing:-.028em;
  line-height:1.06;
  margin:0 0 1.5rem;
}

.hero__lead{
  font-size:clamp(1rem,1.25vw,1.1rem);
  color:#a8b1bd;
  max-width:50ch;
  margin:0 0 2.25rem;
}

.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  margin-bottom:3rem;
}

.hero__facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.10);
  margin:0;
  max-width:33rem;
}
.hero__facts li{
  background:rgba(20,23,28,.55);
  padding:1rem 1.15rem;
  display:flex;
  flex-direction:column;
  gap:.1rem;
}
.hero__facts strong{
  font-family:var(--disp);
  font-size:1.05rem;
  font-weight:600;
  color:#fff;
  letter-spacing:.01em;
}
.hero__facts span{
  font-size:.78rem;
  color:#8792a0;
  letter-spacing:.04em;
}
@media (min-width:576px){
  .hero__facts{ grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* hero görseli */
.hero__col-media{ position:relative; z-index:1; }

.hero__figure{
  position:relative;
  margin:3rem 0 0;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--shadow-3);
  overflow:hidden;
}
.hero__figure img{
  display:block;
  width:100%;
  aspect-ratio:1080/1220;
  object-fit:cover;
}
.hero__figure::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(200deg, rgba(28,143,207,.10) 0%, transparent 45%, rgba(16,20,26,.42) 100%);
  pointer-events:none;
}

.hero__caption{
  position:absolute;
  left:0; right:0; bottom:0;
  z-index:2;
  background:linear-gradient(to top, rgba(14,17,21,.90), rgba(14,17,21,0));
  color:#cfd6de;
  font-size:.8rem;
  letter-spacing:.03em;
  padding:2.5rem 1.15rem .95rem;
  display:flex;
  align-items:center;
  gap:.55rem;
}
.hero__caption-dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--brand-bright);
  box-shadow:0 0 0 3px rgba(41,171,226,.22);
  flex:0 0 auto;
}

.hero__badge{
  position:absolute;
  left:0;
  bottom:2.5rem;
  background:var(--brand);
  color:#fff;
  padding:1rem 1.35rem;
  box-shadow:0 16px 34px rgba(12,60,88,.45);
  z-index:3;
}
.hero__badge b{
  display:block;
  font-family:var(--disp);
  font-size:1.55rem;
  line-height:1;
  letter-spacing:-.01em;
}
.hero__badge span{
  display:block;
  font-size:.72rem;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(255,255,255,.84);
  margin-top:.2rem;
}

@media (min-width:992px){
  .hero__figure{ margin-top:0; margin-left:1.5rem; }
  .hero__badge{ left:-1.25rem; }
}

/* aşağı kaydır */
.hero__scroll{
  position:absolute;
  left:50%;
  bottom:1.5rem;
  transform:translateX(-50%);
  display:none;
  flex-direction:column;
  align-items:center;
  gap:.6rem;
  color:#7d8794;
  font-size:.68rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  z-index:4;
}
.hero__scroll:hover{ color:var(--brand-bright); }
.hero__scroll-line{
  width:1px; height:46px;
  background:linear-gradient(to bottom, transparent, rgba(255,255,255,.42));
  position:relative;
  overflow:hidden;
}
.hero__scroll-line::after{
  content:"";
  position:absolute; left:0; top:-50%;
  width:1px; height:50%;
  background:var(--brand-bright);
  animation:scrollPulse 2.1s var(--ease) infinite;
}
@keyframes scrollPulse{
  0%   { top:-50%; opacity:0; }
  40%  { opacity:1; }
  100% { top:100%; opacity:0; }
}
@media (min-width:1200px){ .hero__scroll{ display:flex; } }

/* ------------------------- görsel çerçeve bloğu -------------------------- */

.frame-stack{ position:relative; padding:0 0 2.25rem 2.25rem; }
.frame-stack__main{
  display:block;
  width:100%;
  position:relative;
  z-index:2;
  border:1px solid var(--line);
  box-shadow:var(--shadow-2);
}
.section--dark .frame-stack__main{ border-color:rgba(255,255,255,.12); }

/* görselden sol-alta taşan ince çerçeve */
.frame-stack__accent{
  position:absolute;
  left:0; bottom:0;
  right:2.25rem; top:2.25rem;
  border:2px solid var(--brand);
  z-index:1;
}
.section--dark .frame-stack__accent{ border-color:var(--brand-bright); opacity:.6; }

.frame-stack--rev{ padding:0 2.25rem 2.25rem 0; }
.frame-stack--rev .frame-stack__accent{
  left:2.25rem; right:0;
}

.frame-stack__note{
  position:absolute;
  right:-.75rem; bottom:.75rem;
  z-index:3;
  background:var(--ink);
  color:#fff;
  padding:1.05rem 1.35rem;
  max-width:16rem;
  box-shadow:var(--shadow-3);
}
.frame-stack__note-num{
  display:block;
  font-family:var(--disp);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.2em;
  color:var(--brand-bright);
  margin-bottom:.3rem;
}
.frame-stack__note p{
  margin:0;
  font-size:.87rem;
  line-height:1.5;
  color:#cbd3dc;
}
@media (max-width:575.98px){
  .frame-stack,.frame-stack--rev{ padding:0 0 2rem; }
  .frame-stack__accent{ display:none; }
  .frame-stack__note{ right:0; bottom:0; max-width:none; }
}

/* ------------------------------ tik liste ------------------------------- */

.tick-list{ list-style:none; padding:0; margin:1.75rem 0 0; }
.tick-list li{
  position:relative;
  padding:.42rem 0 .42rem 2rem;
  color:var(--ink-2);
}
.tick-list li::before{
  content:"";
  position:absolute;
  left:0; top:1.05em;
  width:11px; height:11px;
  border:2px solid var(--brand);
  transform:translateY(-50%) rotate(45deg);
}
.section--dark .tick-list li{ color:#b3bcc7; }
.section--dark .tick-list li::before{ border-color:var(--brand-bright); }

/* ------------------------------ sayaçlar -------------------------------- */

.stat-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:clamp(3rem,6vw,5rem);
}
.stat{
  background:var(--paper);
  padding:2rem 1.5rem;
  text-align:center;
}
.stat__num{
  display:block;
  font-family:var(--disp);
  font-size:clamp(2.1rem,4vw,2.9rem);
  font-weight:700;
  color:var(--ink);
  line-height:1;
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.stat__label{
  display:block;
  margin-top:.6rem;
  font-size:.83rem;
  color:var(--steel);
  letter-spacing:.03em;
}
@media (min-width:768px){
  .stat-row{ grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* ----------------------------- hizmet kartı ----------------------------- */

.svc-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.09);
}
@media (min-width:576px){ .svc-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1200px){ .svc-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

.svc{
  position:relative;
  display:flex;
  flex-direction:column;
  background:#1f242a;
  padding:2.5rem 1.75rem 2.25rem;
  transition:background .35s var(--ease), transform .35s var(--ease);
}
.svc::before{
  content:"";
  position:absolute; left:0; top:0; right:0;
  height:2px;
  background:var(--brand-bright);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s var(--ease);
}
.svc:hover{ background:#252b32; }
.svc:hover::before{ transform:scaleX(1); }

.svc__num{
  position:absolute;
  right:1.5rem; top:1.5rem;
  font-family:var(--disp);
  font-size:2.6rem;
  font-weight:700;
  line-height:1;
  color:rgba(255,255,255,.055);
  letter-spacing:-.03em;
}
.svc__icon{
  display:block;
  width:46px; height:46px;
  margin-bottom:1.5rem;
}
.svc__icon svg{
  width:100%; height:100%;
  fill:none;
  stroke:var(--brand-bright);
  stroke-width:1.6;
  stroke-linecap:square;
  stroke-linejoin:miter;
}
.svc__title{
  font-size:1.1rem;
  font-weight:600;
  color:#fff;
  line-height:1.32;
  margin:0 0 .85rem;
}
.svc__text{
  font-size:.92rem;
  line-height:1.68;
  color:#98a2ae !important;
  margin:0 0 1.35rem;
}
.svc__list{
  list-style:none;
  padding:1.15rem 0 0;
  margin:auto 0 0;              /* kart yüksekliği ne olursa olsun alta yaslanır */
  border-top:1px solid rgba(255,255,255,.09);
}
.svc__list li{
  font-size:.83rem;
  color:#7f8994;
  padding:.26rem 0 .26rem 1.05rem;
  position:relative;
}
.svc__list li::before{
  content:"";
  position:absolute; left:0; top:.95em;
  width:5px; height:1px;
  background:var(--brand);
}

/* ------------------------------ parallax -------------------------------- */

.parallax{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:clamp(5rem,10vw,9rem) 0;
  color:#fff;
}
.parallax__bg{
  position:absolute;
  left:0; right:0;
  top:-18%;
  height:136%;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  will-change:transform;
  z-index:-2;
}
.parallax__veil{
  position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(14,17,21,.90) 0%, rgba(14,17,21,.74) 48%, rgba(14,17,21,.86) 100%);
  z-index:-1;
}
.parallax__veil--brand{
  background:linear-gradient(105deg, rgba(11,44,64,.94) 0%, rgba(14,17,21,.78) 55%, rgba(14,17,21,.88) 100%);
}
.parallax__inner{ position:relative; z-index:1; }

.parallax--quote .eyebrow{ justify-content:center; }

.quote{
  font-family:var(--disp);
  font-size:clamp(1.5rem,3.2vw,2.55rem);
  font-weight:600;
  line-height:1.30;
  letter-spacing:-.018em;
  color:#fff;
  margin:0 0 1.35rem;
}
.quote__sub{
  color:#9aa4b0 !important;
  font-size:1.02rem;
  max-width:56ch;
  margin:0 auto;
}

.cta__title{
  font-size:clamp(1.6rem,3vw,2.5rem);
  color:#fff;
  margin:0 0 1rem;
}
.cta__text{
  color:#a6b0bc !important;
  max-width:52ch;
  margin:0;
}
.cta__actions{ display:flex; flex-direction:column; gap:.85rem; }

/* ------------------------------- galeri --------------------------------- */

.filter-bar{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-bottom:2rem;
  padding-bottom:1.5rem;
  border-bottom:1px solid var(--line);
}
.filter{
  font-family:var(--disp);
  font-size:.855rem;
  font-weight:500;
  color:var(--steel);
  background:transparent;
  border:1px solid var(--line);
  border-radius:2px;
  padding:.55rem 1.05rem;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  cursor:pointer;
  transition:color .22s var(--ease), border-color .22s var(--ease),
             background .22s var(--ease);
}
.filter:hover{ color:var(--ink); border-color:var(--steel-2); }
.filter.is-active{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
}
.filter__count{
  font-size:.72rem;
  color:var(--steel-2);
  font-variant-numeric:tabular-nums;
}
.filter.is-active .filter__count{ color:rgba(255,255,255,.55); }

.gallery{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(.6rem,1.4vw,1.1rem);
}
@media (min-width:768px){ .gallery{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:1200px){ .gallery{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

.gal{
  margin:0;
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--paper-2);
  border:1px solid var(--line-2);
  overflow:hidden;
  transition:opacity .38s var(--ease), transform .38s var(--ease),
             box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.gal:hover{
  border-color:var(--line);
  box-shadow:var(--shadow-2);
}
@media (min-width:768px){
  .gal--wide{ grid-column:span 2; }
}

.gal.is-hidden{
  opacity:0;
  transform:scale(.94);
  pointer-events:none;
  position:absolute;
  visibility:hidden;
}

.gal__btn{
  display:block;
  width:100%;
  flex:1 1 auto;
  padding:0;
  border:0;
  background:none;
  cursor:zoom-in;
  position:relative;
  overflow:hidden;
}
.gal__btn img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform .7s var(--ease);
}
/* Geniş karo, satırdaki normal karolarla aynı yüksekliği alsın: satır yüksekliğini
   4:3 oranlı normal karolar belirler, geniş karonun görseli boşluğu doldurur. */
@media (min-width:768px){
  .gallery{ grid-auto-rows:1fr; }
  .gal--wide .gal__btn img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    aspect-ratio:auto;
  }
}
.gal:hover .gal__btn img{ transform:scale(1.045); }

.gal__mask{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(16,22,30,.38), rgba(16,22,30,0) 55%);
  opacity:0;
  transition:opacity .35s var(--ease);
  display:flex;
  align-items:center;
  justify-content:center;
}
.gal:hover .gal__mask{ opacity:1; }
.gal__zoom{
  width:44px; height:44px;
  border:1px solid rgba(255,255,255,.75);
  background:rgba(28,143,207,.88);
  position:relative;
  transform:scale(.8);
  transition:transform .35s var(--ease);
}
.gal:hover .gal__zoom{ transform:scale(1); }
.gal__zoom::before,.gal__zoom::after{
  content:"";
  position:absolute;
  left:50%; top:50%;
  background:#fff;
  transform:translate(-50%,-50%);
}
.gal__zoom::before{ width:15px; height:1.5px; }
.gal__zoom::after{ width:1.5px; height:15px; }

.gal__cap{
  padding:.95rem 1.1rem 1.05rem;
  background:var(--paper);
  border-top:1px solid var(--line-2);
}
.gal__tag{
  display:block;
  font-family:var(--disp);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brand);
  margin-bottom:.28rem;
}
.gal__name{
  display:block;
  font-family:var(--disp);
  font-size:.94rem;
  font-weight:500;
  color:var(--ink);
  line-height:1.35;
}

.gallery__empty{
  text-align:center;
  color:var(--steel);
  padding:3rem 0 0;
  margin:0;
}

/* ---------------------------- üretim süreci ----------------------------- */

.steps{
  list-style:none;
  counter-reset:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
@media (min-width:768px){ .steps{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1200px){ .steps{ grid-template-columns:repeat(5,minmax(0,1fr)); } }

.step{
  background:var(--paper);
  padding:2.15rem 1.6rem 2.25rem;
  position:relative;
  transition:background .3s var(--ease);
}
.step:hover{ background:#fbfcfd; }
.step::after{
  content:"";
  position:absolute;
  left:1.6rem; top:0;
  width:38px; height:3px;
  background:var(--brand);
}
.step__num{
  display:block;
  font-family:var(--disp);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.2em;
  color:var(--brand);
  margin:.35rem 0 .9rem;
}
.step__title{
  font-size:1.05rem;
  font-weight:600;
  margin:0 0 .7rem;
  line-height:1.35;
}
.step p{
  font-size:.9rem;
  line-height:1.7;
  color:var(--steel);
  margin:0;
}

/* ---------------------------- teknik altyapı ---------------------------- */

.cap-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.09);
  margin-top:2rem;
}
@media (min-width:576px){ .cap-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

.cap{
  background:#1f242a;
  padding:1.4rem 1.35rem;
  transition:background .3s var(--ease);
}
.cap:hover{ background:#252b32; }
.cap__title{
  font-size:.95rem;
  font-weight:600;
  color:#fff;
  margin:0 0 .4rem;
  padding-left:.85rem;
  position:relative;
  line-height:1.3;
}
.cap__title::before{
  content:"";
  position:absolute;
  left:0; top:.42em;
  width:3px; height:.75em;
  background:var(--brand-bright);
}
.cap__text{
  font-size:.845rem;
  line-height:1.6;
  color:#8b95a1 !important;
  margin:0;
  padding-left:.85rem;
}

/* ------------------------------ sektörler ------------------------------- */

.sector-head{ text-align:center; margin-bottom:2.5rem; }
.sector-head .eyebrow{ justify-content:center; }

.sector-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
@media (min-width:768px){ .sector-list{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

.sector-list li{
  background:var(--paper);
  padding:1.35rem 1.15rem;
  text-align:center;
  font-family:var(--disp);
  font-size:.9rem;
  font-weight:500;
  color:var(--ink-2);
  letter-spacing:.01em;
  transition:background .28s var(--ease), color .28s var(--ease);
}
.sector-list li:hover{ background:var(--ink); color:#fff; }

/* ------------------------------- iletişim ------------------------------- */

.contact-list{ margin:0 0 2.5rem; }
.contact-list li{
  display:flex;
  gap:1.05rem;
  padding:1.15rem 0;
  border-bottom:1px solid var(--line-2);
}
.contact-list li:first-child{ padding-top:0; }
.contact-list__ico{
  flex:0 0 auto;
  width:42px; height:42px;
  display:grid;
  place-items:center;
  background:var(--paper-2);
  border:1px solid var(--line);
}
.contact-list__ico svg{ width:19px; height:19px; fill:var(--brand); }
.contact-list__label{
  display:block;
  font-size:.72rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--steel-2);
  margin-bottom:.18rem;
}
.contact-list__value{
  font-family:var(--disp);
  font-size:1.02rem;
  font-weight:500;
  color:var(--ink);
  line-height:1.45;
}
a.contact-list__value:hover{ color:var(--brand); }

.hours{
  background:var(--paper-2);
  border:1px solid var(--line);
  border-left:3px solid var(--brand);
  padding:1.4rem 1.5rem;
}
.hours__title{
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink);
  margin:0 0 .9rem;
}
.hours__row{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  font-size:.9rem;
  margin:0;
  padding:.34rem 0;
  color:var(--ink-2);
  font-variant-numeric:tabular-nums;
}
.hours__row--off{ color:var(--steel-2); }

/* form */
.form-card{
  background:var(--paper);
  border:1px solid var(--line);
  padding:clamp(1.5rem,3vw,2.5rem);
  box-shadow:var(--shadow-1);
}
.form-label{
  font-family:var(--disp);
  font-size:.82rem;
  font-weight:600;
  color:var(--ink-2);
  letter-spacing:.02em;
  margin-bottom:.4rem;
}
.form-label span{ color:var(--brand); }

.form-control,.form-select{
  border-radius:2px;
  border:1px solid var(--line);
  padding:.72rem .9rem;
  font-size:.94rem;
  color:var(--ink);
  background-color:#fcfdfe;
  transition:border-color .22s var(--ease), box-shadow .22s var(--ease),
             background-color .22s var(--ease);
}
.form-control::placeholder{ color:#a9b2bc; }
.form-control:focus,.form-select:focus{
  border-color:var(--brand);
  background-color:#fff;
  box-shadow:0 0 0 3px rgba(28,143,207,.14);
}
.form-control.is-invalid,.form-select.is-invalid{
  border-color:#d0432f;
  box-shadow:none;
  background-image:none;
}
.invalid-feedback{ font-size:.8rem; }

.form-check-input{ border-radius:2px; border-color:var(--steel-2); margin-top:.28em; }
.form-check-input:checked{ background-color:var(--brand); border-color:var(--brand); }
.form-check-input:focus{ box-shadow:0 0 0 3px rgba(28,143,207,.14); border-color:var(--brand); }
.form-check-label{ font-size:.875rem; color:var(--steel); }

.form-card__note{
  font-size:.83rem;
  color:var(--steel);
  max-width:34ch;
}

.form-status{
  margin:1.5rem 0 0;
  padding:.95rem 1.1rem;
  font-size:.9rem;
  border-left:3px solid var(--brand);
  background:var(--paper-2);
  color:var(--ink-2);
}
.form-status--err{ border-left-color:#d0432f; }

/* -------------------------------- footer -------------------------------- */

.site-foot{
  background:#15181d;
  color:#828c98;
  padding:clamp(3.5rem,6vw,5rem) 0 0;
  font-size:.9rem;
}
.foot__logo{ height:38px; width:auto; margin-bottom:1.15rem; }
.foot__text{ max-width:38ch; line-height:1.72; margin:0; }

.foot__title{
  font-size:.76rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#fff;
  margin:0 0 1.1rem;
}
.foot__list li{ margin-bottom:.6rem; line-height:1.55; }
.foot__list a{ color:#828c98; }
.foot__list a:hover{ color:var(--brand-bright); }
.foot__list--contact li{ color:#98a2ae; }

.foot__bottom{
  margin-top:clamp(2.5rem,5vw,3.5rem);
  padding:1.5rem 0;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.5rem 1.5rem;
  font-size:.83rem;
  color:#6d7783;
}

/* ------------------------------ yukarı çık ------------------------------ */

.to-top{
  position:fixed;
  right:1.15rem; bottom:1.15rem;
  z-index:1030;
  width:46px; height:46px;
  display:grid;
  place-items:center;
  background:var(--brand);
  border:0;
  color:#fff;
  box-shadow:0 8px 22px rgba(12,60,88,.34);
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .3s var(--ease), transform .3s var(--ease),
             visibility .3s var(--ease), background .22s var(--ease);
}
.to-top.is-on{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:var(--brand-deep); }
.to-top svg{ width:20px; height:20px; fill:#fff; }

/* ------------------------------- lightbox ------------------------------- */

.lb{
  position:fixed; inset:0;
  z-index:1080;
  display:grid;
  place-items:center;
  padding:clamp(1rem,4vw,3rem);
}
.lb[hidden]{ display:none; }
.lb__backdrop{
  position:absolute; inset:0;
  background:rgba(10,13,17,.93);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  opacity:0;
  transition:opacity .3s var(--ease);
}
.lb.is-open .lb__backdrop{ opacity:1; }

.lb__panel{
  position:relative;
  z-index:2;
  max-width:min(1100px,100%);
  width:100%;
  opacity:0;
  transform:scale(.97);
  transition:opacity .3s var(--ease), transform .35s var(--ease);
}
.lb.is-open .lb__panel{ opacity:1; transform:none; }

.lb__figure{ margin:0; }
.lb__figure img{
  display:block;
  width:100%;
  max-height:72vh;
  object-fit:contain;
  background:#f2f4f6;
}

.lb__cap{
  display:block;
  background:#1a1e24;
  color:#96a0ac;
  padding:1.1rem 1.35rem;
  font-size:.88rem;
}
.lb__count{
  display:block;
  font-family:var(--disp);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  color:var(--brand-bright);
  margin-bottom:.3rem;
}
.lb__title{
  display:block;
  font-family:var(--disp);
  font-size:1.05rem;
  font-weight:600;
  color:#fff;
  margin-bottom:.3rem;
}
.lb__desc{ display:block; line-height:1.6; max-width:76ch; }

.lb__close,.lb__nav{
  position:absolute;
  z-index:3;
  width:44px; height:44px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.20);
  color:#fff;
  cursor:pointer;
  transition:background .22s var(--ease), border-color .22s var(--ease);
}
.lb__close:hover,.lb__nav:hover{
  background:var(--brand);
  border-color:var(--brand);
}
.lb__close svg,.lb__nav svg{ width:18px; height:18px; fill:#fff; }

.lb__close{ top:-56px; right:0; }
.lb__nav{ top:50%; transform:translateY(-50%); }
.lb__nav--prev{ left:-56px; }
.lb__nav--next{ right:-56px; }

@media (max-width:1279.98px){
  .lb__nav--prev{ left:.5rem; }
  .lb__nav--next{ right:.5rem; }
  .lb__nav{ background:rgba(16,20,26,.62); }
}
@media (max-width:575.98px){
  .lb__close{ top:.5rem; right:.5rem; background:rgba(16,20,26,.72); }
  .lb__figure img{ max-height:58vh; }
}

body.lb-open{ overflow:hidden; }

/* --------------------------- erişilebilirlik ---------------------------- */

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .reveal{ opacity:1 !important; transform:none !important; }
  .parallax__bg{ transform:none !important; }
  .hero__scroll-line::after{ display:none; }
}

/* ------------------------------- yazdırma ------------------------------- */

@media print{
  .site-head,.topbar,.to-top,.hero__scroll,.lb,.filter-bar{ display:none !important; }
  .parallax__bg,.parallax__veil{ display:none; }
  .parallax{ color:#000; padding:2rem 0; }
  .section--dark{ background:#fff; color:#000; }
  .reveal{ opacity:1; transform:none; }
}
