/* ===========================================================
   1. TOKENS
   =========================================================== */
:root{
  --rota-navy:#2B3796;
  --rota-navy-700:#232E7C;
  --rota-navy-900:#151B4A;
  --rota-red:#E11B22;
  --rota-red-700:#B8141A;
  --rota-ink:#12141C;
  --rota-muted:#6B7280;
  --rota-line:#E4E7EE;
  --rota-bg:#F6F7FA;

  --ff-display:'Barlow Condensed', system-ui, sans-serif;
  --ff-body:'Inter', system-ui, sans-serif;

  --shell:1240px;
  --nav-h:78px;
}

/* ===========================================================
   2. BASE
   =========================================================== */
*{ -webkit-tap-highlight-color:transparent; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--ff-body);
  color:var(--rota-ink);
  background:#fff;
  overflow-x:hidden;
  font-size:15.5px;
  line-height:1.7;
}
h1,h2,h3,h4,h5,.display-face{
  font-family:var(--ff-display);
  font-weight:700;
  letter-spacing:.005em;
  line-height:1.06;
  text-transform:uppercase;
}
a{ text-decoration:none; transition:color .2s ease; }
img{ max-width:100%; }
.shell{ max-width:var(--shell); margin-inline:auto; padding-inline:20px; }
section{ position:relative; }
.sec-pad{ padding:96px 0; }
@media (max-width:767px){ .sec-pad{ padding:64px 0; } }

/* --- Eyebrow: chevron mark lifted from the logo --- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--ff-display);
  font-size:15px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--rota-red);
  margin-bottom:14px;
}
.eyebrow::before{
  content:""; width:18px; height:10px; flex:none;
  background:currentColor;
  clip-path:polygon(0 100%, 50% 0, 100% 100%, 78% 100%, 50% 40%, 22% 100%);
}
.sec-title{ font-size:clamp(2rem,3.6vw,3rem); margin-bottom:10px; }
.sec-title .accent{ color:var(--rota-navy); }
.sec-lead{ color:var(--rota-muted); max-width:62ch; }
.on-dark .sec-lead{ color:rgba(255,255,255,.68); }
.on-dark .sec-title{ color:#fff; }

/* --- Buttons --- */
.btn-rota{
  --bg:var(--rota-red); --bgh:var(--rota-red-700);
  display:inline-flex; align-items:center; gap:10px;
  background:var(--bg); color:#fff;
  font-family:var(--ff-display); font-size:17px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase;
  padding:14px 28px; border:0; border-radius:2px;
  transition:background .2s ease, transform .2s ease;
}
.btn-rota:hover{ background:var(--bgh); color:#fff; transform:translateY(-2px); }
.btn-rota.navy{ --bg:var(--rota-navy); --bgh:var(--rota-navy-700); }
.btn-ghost{
  display:inline-flex; align-items:center; gap:10px;
  border:1.5px solid rgba(255,255,255,.45); color:#fff;
  font-family:var(--ff-display); font-size:17px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase;
  padding:13px 26px; border-radius:2px;
  transition:all .2s ease;
}
.btn-ghost:hover{ background:#fff; color:var(--rota-navy); border-color:#fff; }

/* ===========================================================
   3. TOPBAR + NAV
   =========================================================== */
.topbar{
  background:var(--rota-navy-900); color:rgba(255,255,255,.72);
  font-size:13.5px; padding:9px 0;
}
.topbar a{ color:rgba(255,255,255,.72); }
.topbar a:hover{ color:#fff; }
.topbar .divider{ width:1px; height:14px; background:rgba(255,255,255,.2); }

.nav-wrap{
  background:#fff; border-bottom:1px solid var(--rota-line);
  position:sticky; top:0; z-index:1030;
  transition:box-shadow .25s ease; 
}
.nav-wrap.stuck{ box-shadow:0 8px 28px rgba(19,24,60,.09); }
.nav-inner{ height:var(--nav-h); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand img{ height:50px; width:auto; }
.brand .fallback{
  font-family:var(--ff-display); font-size:28px; color:var(--rota-navy);
  line-height:1; letter-spacing:.01em;
}
.brand .fallback span{ color:var(--rota-red); }

.mainmenu{ display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.mainmenu > li > a{
  display:block; padding:5px 6px;
  font-family:var(--ff-display); font-size:17.5px; font-weight:600;
  letter-spacing:.07em; text-transform:uppercase; color:var(--rota-ink);
  position:relative;
}
.mainmenu > li > a::after{
  content:""; position:absolute; left:15px; right:15px; bottom:2px; height:2px;
  background:var(--rota-red); transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.mainmenu > li > a:hover::after,
.mainmenu > li.active > a::after{ transform:scaleX(1); }
.mainmenu > li > a:hover, .mainmenu > li.active > a{ color:var(--rota-navy); }

.has-sub{ position:relative; }
.submenu{
  position:absolute; top:100%; left:0; min-width:290px;
  background:#fff; border:1px solid var(--rota-line);
  border-top:3px solid var(--rota-red);
  box-shadow:0 18px 40px rgba(19,24,60,.12);
  list-style:none; margin:0; padding:8px 0;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:all .22s ease;
}
.has-sub:hover .submenu, .has-sub:focus-within .submenu{
  opacity:1; visibility:visible; transform:translateY(0);
}
.submenu a{
  display:block; padding:11px 20px; font-size:14.5px; font-weight:500;
  color:var(--rota-ink); border-left:3px solid transparent;
}
.submenu a:hover{ background:var(--rota-bg); color:var(--rota-navy); border-left-color:var(--rota-red); }

.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-phone{ display:flex; align-items:center; gap:11px; }
.nav-phone i{ color:var(--rota-red); font-size:19px; }
.nav-phone small{ display:block; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--rota-muted); line-height:1.4; }
.nav-phone strong{ font-family:var(--ff-display); font-size:21px; color:var(--rota-navy); letter-spacing:.02em; }

.burger{
  display:none; width:46px; height:46px; border:1px solid var(--rota-line);
  background:#fff; border-radius:2px; color:var(--rota-navy); font-size:19px;
}
@media (max-width:1199px){
  .mainmenu, .nav-phone{ display:none; }
  .burger{ display:inline-flex; align-items:center; justify-content:center; }
}
@media (max-width:575px){ .nav-cta .btn-rota{ display:none; } }

/* Offcanvas menu */
.oc-menu{ list-style:none; margin:0; padding:0; }
.oc-menu a{
  display:block; padding:14px 4px; border-bottom:1px solid var(--rota-line);
  font-family:var(--ff-display); font-size:19px; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; color:var(--rota-ink);
}
.oc-menu .sub a{ font-family:var(--ff-body); font-size:14.5px; font-weight:500;
  text-transform:none; letter-spacing:0; padding-left:20px; color:var(--rota-muted); }

/* ===========================================================
   4. HERO
   =========================================================== */
.hero{ position:relative; background:var(--rota-navy-900); }
.hero .swiper{ height:clamp(520px,74vh,760px); }
.hero-slide{
  position:relative; height:100%;
  display:flex; align-items:center;
  background-size:cover; background-position:center;
}
.hero-slide::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(21,27,74,.94) 0%, rgba(21,27,74,.80) 46%, rgba(21,27,74,.42) 100%);
}
/* Slide backdrops: gradient shows through if the photo is not yet uploaded */
.hs-1{ background-image:url('images/slider/konveyor-bant.jpg'), linear-gradient(135deg,#2B3796,#151B4A); }
.hs-2{ background-image:url('images/slider/makina-kayislari.jpg'), linear-gradient(135deg,#232E7C,#151B4A); }
.hs-3{ background-image:url('images/slider/teknik-servis.jpg'), linear-gradient(135deg,#1c2566,#151B4A); }

.hero-body{ position:relative; z-index:2; max-width:730px; color:#fff; padding-block:40px; }
.hero-body .eyebrow{ color:#fff; opacity:.85; }
.hero-body .eyebrow::before{ background:var(--rota-red); }
.hero-title{
  font-size:clamp(2.6rem,6vw,4.6rem);
  color:#fff; margin-bottom:18px;
}
.hero-title em{ font-style:normal; color:#fff; position:relative; white-space:nowrap; }
.hero-title em::after{
  content:""; position:absolute; left:0; right:0; bottom:6px; height:9px;
  background:var(--rota-red); z-index:-1;
}
.hero-text{ font-size:17px; color:rgba(255,255,255,.8); max-width:56ch; margin-bottom:30px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; }

.hero-nav{
  position:absolute; z-index:5; right:calc((100vw - var(--shell))/2 + 20px); bottom:112px;
  display:flex; gap:8px;
}
@media (max-width:1320px){ .hero-nav{ right:20px; } }
.hero-nav button{
  width:52px; height:52px; border:1.5px solid rgba(255,255,255,.35);
  background:transparent; color:#fff; font-size:16px; border-radius:2px;
  transition:all .2s ease;
}
.hero-nav button:hover{ background:var(--rota-red); border-color:var(--rota-red); }
@media (max-width:767px){ .hero-nav{ display:none; } }

/* --- SIGNATURE: the conveyor track --- */
.track{
  position:relative; height:44px; overflow:hidden;
  background:var(--rota-red); z-index:4;
}
.track-move{
  display:flex; align-items:center; gap:34px;
  height:100%; width:max-content;
  animation:trackRun 26s linear infinite;
  padding-left:34px;
}
.track-move span{
  font-family:var(--ff-display); font-size:15px; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:#fff;
  display:inline-flex; align-items:center; gap:34px; white-space:nowrap;
}
.track-move span::after{
  content:""; width:16px; height:9px; flex:none; background:#fff;
  clip-path:polygon(0 100%, 50% 0, 100% 100%, 78% 100%, 50% 40%, 22% 100%);
}
@keyframes trackRun{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .track-move{ animation:none; } }

/* ===========================================================
   5. VALUE STRIP
   =========================================================== */
.value-strip{ background:#fff; border-bottom:1px solid var(--rota-line); }
.value-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.value-item{
  padding:38px 30px; border-right:1px solid var(--rota-line);
  display:flex; gap:18px; align-items:flex-start;
}
.value-item:last-child{ border-right:0; }
.value-item i{ font-size:27px; color:var(--rota-red); line-height:1.35; }
.value-item h3{ font-size:21px; margin-bottom:4px; color:var(--rota-navy); }
.value-item p{ font-size:14px; color:var(--rota-muted); margin:0; line-height:1.6; }
@media (max-width:991px){
  .value-grid{ grid-template-columns:repeat(2,1fr); }
  .value-item:nth-child(2){ border-right:0; }
  .value-item:nth-child(-n+2){ border-bottom:1px solid var(--rota-line); }
}
@media (max-width:575px){
  .value-grid{ grid-template-columns:1fr; }
  .value-item{ border-right:0; border-bottom:1px solid var(--rota-line); padding:26px 20px; }
}

/* ===========================================================
   6. ABOUT
   =========================================================== */
.about{ background:var(--rota-bg); }
.about-media{ position:relative; }
.about-media .frame{
  aspect-ratio:4/3.4; background-size:cover; background-position:center;
  background-image:url('images/hakkimizda.jpg'), linear-gradient(140deg,#2B3796,#151B4A);
  border-radius:3px;
}
.year-badge{
  position:absolute; right:-14px; bottom:-14px;
  background:var(--rota-red); color:#fff;
  padding:22px 26px; border-radius:3px; text-align:center;
  box-shadow:0 16px 34px rgba(225,27,34,.28);
}
.year-badge strong{ display:block; font-family:var(--ff-display); font-size:52px; line-height:.9; }
.year-badge span{ font-family:var(--ff-display); font-size:14px; letter-spacing:.16em; text-transform:uppercase; opacity:.92; }
@media (max-width:575px){ .year-badge{ right:10px; bottom:-10px; padding:16px 20px; } .year-badge strong{ font-size:40px; } }

.about-quote{
  border-left:3px solid var(--rota-red);
  background:#fff; padding:22px 26px; margin:26px 0;
  font-size:15.5px; color:var(--rota-ink);
}
.about-list{ list-style:none; margin:0 0 30px; padding:0; display:grid; gap:12px; }
.about-list li{ display:flex; gap:12px; align-items:flex-start; font-size:15px; }
.about-list i{ color:var(--rota-red); margin-top:5px; font-size:13px; }

/* ===========================================================
   7. PRODUCTS
   =========================================================== */
.prod-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:991px){ .prod-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:575px){ .prod-grid{ grid-template-columns:1fr; } }

.prod-card{
  position:relative; background:#fff; border:1px solid var(--rota-line);
  border-radius:3px; overflow:hidden; display:flex; flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.prod-card:hover{ transform:translateY(-6px); box-shadow:0 22px 46px rgba(19,24,60,.13); border-color:transparent; }
.prod-thumb{
  aspect-ratio:16/10; background-size:cover; background-position:center;
  background-color:var(--rota-navy-900); position:relative;
}
.prod-thumb::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(21,27,74,.1),rgba(21,27,74,.55));
  opacity:0; transition:opacity .25s ease;
}
.prod-card:hover .prod-thumb::after{ opacity:1; }
.prod-body{ padding:24px 24px 26px; flex:1; display:flex; flex-direction:column; }
.prod-body h3{ font-size:24px; color:var(--rota-navy); margin-bottom:8px; }
.prod-body p{ font-size:14.5px; color:var(--rota-muted); margin-bottom:18px; flex:1; }
.prod-link{
  font-family:var(--ff-display); font-size:16px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--rota-red);
  display:inline-flex; align-items:center; gap:9px;
}
.prod-card:hover .prod-link i{ transform:translateX(5px); }
.prod-link i{ transition:transform .22s ease; font-size:13px; }

/* ===========================================================
   8. BRANDS
   =========================================================== */
.brands{ background:#fff; }
.brand-grid{ display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--rota-line); border-left:1px solid var(--rota-line); }
@media (max-width:991px){ .brand-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:575px){ .brand-grid{ grid-template-columns:repeat(2,1fr); } }
.brand-grid.brand-grid-6{ grid-template-columns:repeat(3,1fr); }
@media (max-width:575px){ .brand-grid.brand-grid-6{ grid-template-columns:repeat(2,1fr); } }
.brand-grid.brand-grid-home{ grid-template-columns:repeat(4,1fr); }
@media (max-width:991px){ .brand-grid.brand-grid-home{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:575px){ .brand-grid.brand-grid-home{ grid-template-columns:repeat(2,1fr); } }

/* Featured brand cell (e.g. own brand highlight) */
.brand-cell.featured{ background:#fff; position:relative; box-shadow:inset 0 0 0 2px var(--rota-red); z-index:1; }
.brand-cell.featured:hover{ background:#fff; }
.brand-cell.featured .name{ color:var(--rota-navy); }
.brand-cell.featured img{ filter:none; opacity:1; }
.brand-cell.featured::before{
  content:"Kendi Markamız"; position:absolute; top:6px; left:6px;
  background:var(--rota-red); color:#fff; font-family:var(--ff-display);
  font-size:10px; letter-spacing:.08em; text-transform:uppercase;
  padding:3px 8px; border-radius:2px;
}
.brand-cell{
  border-right:1px solid var(--rota-line); border-bottom:1px solid var(--rota-line);
  aspect-ratio:16/9; display:flex; align-items:center; justify-content:center;
  padding:24px; position:relative; background:#fff;
  transition:background .25s ease;
}
.brand-cell:hover{ background:var(--rota-bg); }
.brand-cell img{
  max-height:52px; width:auto; object-fit:contain;
  filter:grayscale(1); opacity:.62;
  transition:filter .25s ease, opacity .25s ease, transform .25s ease;
}
.brand-cell:hover img{ filter:grayscale(0); opacity:1; transform:scale(1.05); }
.brand-cell .name{
  font-family:var(--ff-display); font-size:19px; letter-spacing:.09em;
  color:var(--rota-navy); text-transform:uppercase; text-align:center;
}
.brand-cell.brand-more{
  flex-direction:column; gap:8px; text-decoration:none; background:var(--rota-navy);
}
.brand-cell.brand-more:hover{ background:var(--rota-navy-900); }
.brand-cell.brand-more .name{ color:#fff; }
.brand-cell.brand-more small{
  color:rgba(255,255,255,.72); font-weight:700; text-transform:uppercase;
  letter-spacing:.08em; font-size:11px;
}

/* ===========================================================
   9. SERVICES
   =========================================================== */
.services{ background:var(--rota-navy-900); color:#fff; }
.services::before{
  content:""; position:absolute; inset:0;
  background-image:url('images/hizmetler-bg.jpg'); background-size:cover; background-position:center;
  opacity:.14;
}
.services .shell{ position:relative; z-index:2; }
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.13); }
@media (max-width:991px){ .svc-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:575px){ .svc-grid{ grid-template-columns:1fr; } }
.svc-item{
  background:var(--rota-navy-900); padding:34px 30px;
  transition:background .25s ease;
}
.svc-item:hover{ background:var(--rota-navy-700); }
.svc-item i{ font-size:30px; color:var(--rota-red); margin-bottom:16px; display:block; }
.svc-item h3{ font-size:23px; color:#fff; margin-bottom:9px; }
.svc-item p{ font-size:14.5px; color:rgba(255,255,255,.66); margin:0; }

/* ===========================================================
   10. SECTORS
   =========================================================== */
.sector-row{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
@media (max-width:991px){ .sector-row{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:479px){ .sector-row{ grid-template-columns:repeat(2,1fr); } }
.sector{
  border:1px solid var(--rota-line); border-radius:3px;
  padding:26px 12px; text-align:center; background:#fff;
  transition:all .25s ease;
}
.sector:hover{ border-color:var(--rota-navy); background:var(--rota-navy); }
.sector i{ font-size:26px; color:var(--rota-navy); display:block; margin-bottom:12px; transition:color .25s ease; }
.sector span{ font-family:var(--ff-display); font-size:17px; letter-spacing:.07em; text-transform:uppercase; color:var(--rota-ink); transition:color .25s ease; }
.sector:hover i, .sector:hover span{ color:#fff; }

/* ===========================================================
   11. BLOG
   =========================================================== */
.blog{ background:var(--rota-bg); }
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:991px){ .blog-grid{ grid-template-columns:1fr; } }
.post{ background:#fff; border:1px solid var(--rota-line); border-radius:3px; overflow:hidden; transition:box-shadow .25s ease, transform .25s ease; }
.post:hover{ transform:translateY(-5px); box-shadow:0 20px 42px rgba(19,24,60,.11); }
.post-thumb{ aspect-ratio:16/9; background:var(--rota-navy-900); background-size:cover; background-position:center; }
.post-body{ padding:22px 24px 26px; }
.post-meta{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--rota-red); font-weight:600; margin-bottom:9px; }
.post-body h3{ font-size:22px; line-height:1.2; margin-bottom:10px; }
.post-body h3 a{ color:var(--rota-navy); }
.post-body h3 a:hover{ color:var(--rota-red); }
.post-body p{ font-size:14.5px; color:var(--rota-muted); margin:0; }

/* ===========================================================
   12. CTA
   =========================================================== */
.cta{ background:var(--rota-red); color:#fff; padding:56px 0; }
.cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.cta h2{ font-size:clamp(1.9rem,3.4vw,2.7rem); color:#fff; margin-bottom:6px; }
.cta p{ margin:0; color:rgba(255,255,255,.85); font-size:16px; }
.cta .btn-rota{ background:#fff; color:var(--rota-red); }
.cta .btn-rota:hover{ background:var(--rota-ink); color:#fff; }

/* ===========================================================
   13. FOOTER
   =========================================================== */
.footer{ background:var(--rota-ink); color:rgba(255,255,255,.62); padding:72px 0 0; font-size:14.5px; }
.foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr; gap:44px; }
@media (max-width:991px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:36px; } }
@media (max-width:575px){ .foot-grid{ grid-template-columns:1fr; } }
.foot-title{
  font-size:19px; color:#fff; margin-bottom:22px;
  display:flex; align-items:center; gap:10px;
}
.foot-title::before{ content:""; width:3px; height:17px; background:var(--rota-red); }
.footer a{ color:rgba(255,255,255,.62); }
.footer a:hover{ color:#fff; }
.foot-links{ list-style:none; margin:0; padding:0; }
.foot-links li{ border-bottom:1px solid rgba(255,255,255,.09); }
.foot-links a{ display:flex; gap:10px; padding:11px 0; }
.foot-links i{ color:var(--rota-red); font-size:11px; margin-top:7px; }
.foot-logo{ background:#fff; padding:12px 16px; border-radius:3px; display:inline-block; margin-bottom:20px; }
.foot-logo img{ height:46px; }
.hours-row{ display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.09); }
.hours-row strong{ color:#fff; font-weight:500; }
.support{ background:rgba(255,255,255,.06); border-left:3px solid var(--rota-red); padding:15px 18px; margin-bottom:20px; }
.support small{ display:block; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.support a{ font-family:var(--ff-display); font-size:25px; color:#fff; letter-spacing:.02em; }
.socials{ display:flex; gap:9px; margin-top:18px; }
.socials a{
  width:40px; height:40px; border:1px solid rgba(255,255,255,.18); border-radius:2px;
  display:inline-flex; align-items:center; justify-content:center; color:#fff;
  transition:all .2s ease;
}
.socials a:hover{ background:var(--rota-red); border-color:var(--rota-red); }
.copy{ margin-top:56px; border-top:1px solid rgba(255,255,255,.09); padding:22px 0; font-size:13.5px; }
.copy-inner{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }

/* Floating WhatsApp */
.wa{
  position:fixed; right:20px; bottom:20px; z-index:1050;
  width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff;
  display:inline-flex; align-items:center; justify-content:center; font-size:26px;
  box-shadow:0 10px 26px rgba(37,211,102,.4);
}
.wa:hover{ color:#fff; transform:scale(1.06); }

/* Reveal on scroll */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* Focus visibility */
a:focus-visible, button:focus-visible{ outline:3px solid var(--rota-red); outline-offset:3px; }

/* ===========================================================
   14. PAGE HERO (inner pages)
   =========================================================== */
.page-hero{ position:relative; background:var(--rota-navy-900); background-size:cover; background-position:center; }
.page-hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(21,27,74,.94) 0%, rgba(21,27,74,.84) 55%, rgba(21,27,74,.62) 100%);
}
.page-hero .shell{ position:relative; z-index:2; padding:70px 0 40px; }
.page-hero .eyebrow{ color:#fff; opacity:.85; }
.page-hero .eyebrow::before{ background:var(--rota-red); }
.page-hero h1{ font-size:clamp(2.2rem,5vw,3.4rem); color:#fff; margin-bottom:14px; }

.breadcrumb-rota{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:14px; color:rgba(255,255,255,.7); }
.breadcrumb-rota a{ color:rgba(255,255,255,.7); }
.breadcrumb-rota a:hover{ color:#fff; }
.breadcrumb-rota .sep{ color:rgba(255,255,255,.4); }
.breadcrumb-rota .current{ color:#fff; font-weight:600; }

/* ===========================================================
   15. SIDEBAR
   =========================================================== */
.sidebar{ display:flex; flex-direction:column; gap:24px; }
@media (min-width:992px){ .sidebar{ position:sticky; top:100px; } }

.side-widget{ background:#fff; border:1px solid var(--rota-line); border-radius:3px; padding:26px 24px; }
.side-title{
  font-size:18px; color:var(--rota-navy); margin-bottom:18px;
  display:flex; align-items:center; gap:10px;
}
.side-title::before{ content:""; width:3px; height:16px; background:var(--rota-red); }

.side-links{ list-style:none; margin:0; padding:0; }
.side-links li{ border-bottom:1px solid var(--rota-line); }
.side-links li:last-child{ border-bottom:0; }
.side-links a{ display:flex; align-items:center; gap:10px; padding:11px 0; color:var(--rota-ink); font-size:14.5px; }
.side-links a:hover{ color:var(--rota-red); }
.side-links i{ color:var(--rota-red); font-size:11px; }

.side-cta{ background:var(--rota-navy); border-color:var(--rota-navy); color:#fff; text-align:center; }
.side-cta .side-title{ color:#fff; justify-content:center; }
.side-cta .side-title::before{ display:none; }
.side-cta p{ color:rgba(255,255,255,.75); font-size:14px; margin-bottom:18px; }
.side-cta .phone-big{ display:block; font-family:var(--ff-display); font-size:26px; color:#fff; margin-bottom:16px; }
.side-cta .btn-rota,
.side-cta .btn-ghost{ width:100%; justify-content:center; margin-bottom:10px; }

/* ===========================================================
   16. MISC HELPERS (inner pages)
   =========================================================== */
.map-embed{ position:relative; width:100%; padding-bottom:38%; overflow:hidden; border-radius:3px; }
@media (max-width:767px){ .map-embed{ padding-bottom:70%; } }
.map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

.pagination .page-link{ color:var(--rota-navy); }
.pagination .page-item.active .page-link{ background:var(--rota-navy); border-color:var(--rota-navy); }
.pagination .page-link:focus{ box-shadow:none; }

.gallery-cell{
  aspect-ratio:4/3; background-size:cover; background-position:center;
  background-color:var(--rota-navy-900); border-radius:3px; cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease; display:block; border:0; padding:0; width:100%;
}
.gallery-cell:hover{ transform:translateY(-4px); box-shadow:0 16px 34px rgba(19,24,60,.16); }
