/* ==========================================================================
   PROTECH — Ingeniería en Superficies
   Tokens: azul marino profundo + acero, naranja vívido, gris cálido
   Tipografía: Space Grotesk (display) / Inter (body) / IBM Plex Mono (utilitaria)
   ========================================================================== */

:root{
  /* Color */
  --ph-navy-900:#0a1f3d;
  --ph-navy-800:#0f2a4d;
  --ph-navy-700:#13284d;
  --ph-steel-600:#1e3f66;
  --ph-steel-500:#2c5a8c;
  --ph-orange-500:#ff6a1a;
  --ph-orange-600:#e85d25;
  --ph-orange-700:#c74a12;
  --ph-cream-100:#f4f6f9;
  --ph-white:#ffffff;
  --ph-ink-900:#121826;
  --ph-ink-600:#4a5568;
  --ph-line:#e4e9f0;

  /* Type */
  --ph-font-display:'Space Grotesk', sans-serif;
  --ph-font-body:'Inter', sans-serif;
  --ph-font-mono:'IBM Plex Mono', monospace;

  /* Layout */
  --ph-radius:14px;
  --ph-radius-sm:10px;
  --ph-shadow:0 20px 45px -20px rgba(10,31,61,.25);
  --ph-shadow-sm:0 10px 25px -15px rgba(10,31,61,.2);
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  margin:0;
  font-family:var(--ph-font-body);
  color:var(--ph-ink-900);
  background:var(--ph-white);
  overflow-x:hidden;
  font-size:1rem;
  line-height:1.6;
}

img{max-width:100%;display:block;}

a{text-decoration:none;color:inherit;}

.container{max-width:1200px;}

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

:focus-visible{
  outline:3px solid var(--ph-orange-500);
  outline-offset:2px;
}

/* ============ Typography helpers ============ */
.ph-eyebrow{
  display:inline-block;
  font-family:var(--ph-font-mono);
  font-weight:600;
  font-size:1rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ph-orange-600);
  margin-bottom:1rem;
}
.ph-eyebrow-light{color:#ff9a5c;}

.ph-h2{
  font-family:var(--ph-font-display);
  font-weight:700;
  font-size:clamp(1.75rem, 1.4rem + 1.6vw, 2.75rem);
  line-height:1.15;
  color:var(--ph-navy-900);
  margin-bottom:1.25rem;
}
.ph-h3{
  font-family:var(--ph-font-display);
  font-weight:700;
  font-size:clamp(1.3rem, 1.1rem + 1.6vw, 2.2rem);
  line-height:1.15;
  color:var(--ph-navy-900);
  margin-bottom:1.25rem;
}
.ph-h2-light{color:var(--ph-white);}

.ph-lead{
  font-size:1.0625rem;
  color:var(--ph-ink-600);
  max-width:44ch;
}
.ph-lead-light{color:#c3d1e3;}

/* ============ Buttons ============ */
.ph-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  font-family:var(--ph-font-mono);
  font-weight:600;
  font-size:1rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:.95rem 1.75rem;
  border-radius:999px;
  border:1px solid transparent;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;
}
.ph-btn i{font-size:.9em;}

.ph-btn-primary{
  background:linear-gradient(135deg, var(--ph-orange-500), var(--ph-orange-700));
  color:var(--ph-white);
  box-shadow:0 14px 30px -10px rgba(255,106,26,.55);
}
.ph-btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px -10px rgba(255,106,26,.65);
  color:var(--ph-white);
}

.ph-btn-outline{
  background:transparent;
  color:var(--ph-white);
  border-color:rgba(255,255,255,.4);
}
.ph-btn-outline:hover{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.7);
  color:var(--ph-white);
}

.ph-btn-block{width:100%;}

/* ============ Header ============ */
.ph-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--ph-line);
}
.ph-header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:.9rem 0;
}

.ph-logo{display:flex;align-items:center;gap:.75rem;}
.ph-logo-mark{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  border-radius:10px;
  background:linear-gradient(135deg, var(--ph-navy-900), var(--ph-steel-600));
  color:var(--ph-orange-500);
  font-size:1.15rem;
  flex-shrink:0;
}
.ph-logo-text{display:flex;flex-direction:column;line-height:1.15;}
.ph-logo-text strong{
  font-family:var(--ph-font-display);
  font-size:1.15rem;
  letter-spacing:.03em;
  color:var(--ph-navy-900);
}
.ph-logo-text small{
  font-family:var(--ph-font-mono);
  font-size:1rem;
  letter-spacing:.05em;
  color:var(--ph-ink-600);
  text-transform:uppercase;
}

.ph-nav{gap:2rem;}
.ph-nav a{
  font-weight:600;
  font-size:1rem;
  color:var(--ph-ink-900);
  position:relative;
  padding:.25rem 0;
}
.ph-nav a::after{
  content:'';
  position:absolute;
  left:0;bottom:-2px;
  width:0;height:2px;
  background:var(--ph-orange-500);
  transition:width .25s ease;
}
.ph-nav a:hover::after{width:100%;}

.ph-header-phone{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--ph-font-mono);
  font-weight:600;
  font-size:1rem;
  color:var(--ph-navy-900);
  white-space:nowrap;
}
.ph-phone-icon{
  width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:rgba(255,106,26,.12);
  color:var(--ph-orange-600);
  font-size:1rem;
}
/* ============ Hero ============ */
.ph-hero{
  position:relative;
  overflow:hidden;
  background:var(--ph-navy-900);

}
.ph-hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
}
.ph-hero-bg img{
  width:100%;height:100%;
  object-fit:cover;
  opacity:.55;
}
.ph-hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(10,31,61,.52) 0%, rgba(10,31,61,.45) 45%, rgba(10,31,61,.37) 100%);
}
.ph-curve-bg{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  opacity:.35;
}
.ph-curve-bg path{
  fill:none;
  stroke:var(--ph-orange-500);
  stroke-width:2;
  stroke-dasharray:6 10;
}

.ph-hero-content{
  position:relative;
  z-index:2;
  padding-bottom: 200px;
  padding-top: 150px;
  max-width:900px;
  margin:0 auto;
  text-align:center;
}

.ph-badge{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family:var(--ph-font-mono);
  font-weight:600;
  font-size:.8125rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--ph-white);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  padding:.5rem 1.1rem;
  margin-bottom:1.75rem;
}
.ph-badge i{color:var(--ph-orange-500);}

.ph-hero-title{
  font-family:var(--ph-font-display);
  font-weight:700;
  font-size:clamp(2.1rem, 1.5rem + 2.8vw, 3.75rem);
  line-height:1.12;
  color:var(--ph-white);
  margin-bottom:1.5rem;
}
.ph-accent{color:var(--ph-orange-500);}

.ph-hero-sub{
  font-size:1.125rem;
  color:#c3d1e3;
  max-width:640px;
  margin:0 auto 2.25rem;
}

.ph-hero-cta{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  justify-content:center;
}


/* ============ Stats + chevrons ============ */
.ph-stats{
  position:relative;
  background:none;
  padding:0rem 0 0;
  overflow:hidden;
}
.ph-stat-num{
  display:block;
  font-family:var(--ph-font-display);
  font-weight:700;
  font-size:clamp(2rem, 1.6rem + 1.4vw, 2.75rem);
  color:var(--ph-white);
  line-height:1;
  margin-bottom:.5rem;
}
.ph-stat-label{
  display:block;
  font-family:var(--ph-font-mono);
  font-size:1rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:#c3d1e3;
  max-width:16ch;
  margin:0 auto;
}

.ph-chevrons{
  position:absolute;
  top:0;
  height:100%;
  width:70px;
  opacity:.18;
  pointer-events:none;
  z-index:0;
}
.ph-chevrons svg{width:100%;height:100%;}
.ph-chevrons polyline{
  fill:none;
  stroke:var(--ph-orange-500);
  stroke-width:6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ph-chevrons-left{left:0;}
.ph-chevrons-right{right:0;}
.ph-chevrons-corner{
  top:2rem;
  right:1rem;
  height:160px;
}

.ph-stats-divider{
  position:relative;
  z-index:2;
  line-height:0;
  margin-top:-1px;
}
.ph-stats-divider svg{display:block;width:100%;height:56px;}
.ph-stats-divider path{fill:var(--ph-white);}


/* ============ Marquee ============ */
.ph-marquee{
  position:relative;
  z-index:2;
  background:var(--ph-navy-800);
  margin-top:0rem;
  overflow:hidden;
}
.ph-marquee-track{
  display:flex;
  width:max-content;
  animation:ph-scroll 32s linear infinite;
}
.ph-marquee-group{
  display:flex;
  align-items:center;
  flex-shrink:0;
}
.ph-marquee-item{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--ph-font-mono);
  font-weight:600;
  font-size:1rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--ph-white);
  padding:1.1rem 2.25rem;
  border-right:1px solid rgba(255,255,255,.14);
  white-space:nowrap;
}
.ph-marquee-item i{color:var(--ph-orange-500);}

@keyframes ph-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ============ Sections ============ */
.ph-section{padding:6rem 0;}
.ph-section-alt{background:var(--ph-cream-100);}
.ph-section-head{max-width:760px;margin:0 auto 3rem;}
.ph-section-head .ph-lead{max-width:60ch;}

/* ============ Cards (soluciones) ============ */
.ph-card{
  position:relative;
  background:var(--ph-white);
  border:1px solid var(--ph-line);
  border-radius:var(--ph-radius);
  padding:0;
  height:100%;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ph-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--ph-shadow-sm);
  border-color:transparent;
}
.ph-card-arrow{
  position:absolute;
  top:1.25rem;
  right:1.25rem;
  width:32px;height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.5);
  background:rgba(15,41,66,.35);
  backdrop-filter:blur(2px);
  color:var(--ph-white);
  font-size:1rem;
  z-index:3;
  transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.ph-card:hover .ph-card-arrow{
  transform:translate(3px,-3px);
  background:var(--ph-orange-500);
  border-color:var(--ph-orange-500);
  color:var(--ph-white);
}

/* Imagen superior */
.ph-card-media{
  position:relative;
  width:100%;
  height:270px;
  overflow:;
}
.ph-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .4s ease;
}
.ph-card:hover .ph-card-media img{
  transform:scale(1.06);
}
.ph-card-media-fade{
  position:absolute;
  left:0;right:0;bottom:-15px;
  height:75px;
  background:linear-gradient(to bottom, rgba(255,255,255,0), var(--ph-white) 85%);
  pointer-events:none;
}

/* Icono montado sobre el difuminado */
.ph-card-icon{
  position:absolute;
  left:1.75rem;
  bottom:-26px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:52px;height:52px;
  border-radius:12px;
  background:linear-gradient(135deg, var(--ph-navy-900), var(--ph-steel-600));
  color:var(--ph-orange-500);
  font-size:1.25rem;
  box-shadow:var(--ph-shadow-sm);
  z-index:5;
}

/* Contenido de texto */
.ph-card-body{
  padding:2.5rem 1.75rem 2rem;
  flex:1;
}
.ph-card-title{
  font-family:var(--ph-font-display);
  font-weight:700;
  font-size:1.125rem;
  color:var(--ph-navy-900);
  margin-bottom:.6rem;
}
.ph-card-text{
  font-size:1rem;
  color:var(--ph-ink-600);
  margin:0;
}
/* ============ Aplicación en campo ============ */
.ph-field{
  position:relative;
  min-height:480px;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.ph-field-img{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  object-position: 70% 20%;
}
.ph-field-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(10,31,61,.95) 0%, rgba(10,31,61,.75) 45%, rgba(10,31,61,.35) 100%);
}
.ph-field-content{
  position:relative;
  z-index:2;
  max-width:560px;
  padding:4rem 0;
}

/* ============ Brands swiper ============ */
.ph-brands-swiper{padding-bottom:.5rem;}
.ph-brand-card{
  background:var(--ph-white);
  border:1px solid var(--ph-line);
  border-radius:var(--ph-radius);
  padding:1.75rem;
  height:100%;
}
.ph-brand-card-highlight{
  border-color:var(--ph-orange-500);
  box-shadow:0 0 0 1px var(--ph-orange-500), var(--ph-shadow-sm);
}
.ph-brand-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.75rem;
  border-bottom:2px solid var(--ph-orange-500);
  padding-bottom:.6rem;
  margin-bottom:.85rem;
}
.ph-brand-head h3{
  font-family:var(--ph-font-display);
  font-weight:700;
  font-size:1.25rem;
  color:var(--ph-navy-900);
  margin:0;
}
.ph-brand-head span{
  font-family:var(--ph-font-mono);
  font-size:1rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--ph-ink-600);
}
.ph-brand-card p{
  font-size:1rem;
  color:var(--ph-ink-600);
  margin:0;
}

.ph-swiper-dots{
  display:flex;
  justify-content:center;
  gap:.5rem;
  margin-top:2rem;
}
.ph-swiper-dots .swiper-pagination-bullet{
  width:9px;height:9px;
  background:var(--ph-steel-500);
  opacity:.35;
}
.ph-swiper-dots .swiper-pagination-bullet-active{
  opacity:1;
  background:var(--ph-orange-500);
}

/* ============ Normativas ============ */
.ph-normativas{
  position:relative;
  background:var(--ph-navy-900);
  padding:6rem 0;
  overflow:hidden;
}
.ph-blueprint-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse at center, black 40%, transparent 85%);
}
.ph-normativas .container{position:relative;z-index:2;}

.ph-normativas-visual{
  position:relative;
  max-width:460px;
  margin:0 auto;
  padding-bottom:2.5rem;
  padding-left:1.5rem;
}
.ph-normativas-img{
  border-radius:var(--ph-radius);
  box-shadow:var(--ph-shadow);
  width:100%;
  height:auto;
  display:block;
}
.ph-normativas-img-float{
  position:absolute;
  left:-1.5rem;
  bottom:0;
  width:44%;
  border-radius:var(--ph-radius-sm);
  border:4px solid var(--ph-navy-900);
  box-shadow:var(--ph-shadow);
}
.ph-normativas-badge{
  position:absolute;
  right:.5rem;
  bottom:-1rem;
  display:flex;
  align-items:center;
  gap:.75rem;
  background:var(--ph-white);
  border-radius:var(--ph-radius-sm);
  box-shadow:var(--ph-shadow);
  padding:.85rem 1.1rem;
  max-width:230px;
}
.ph-normativas-badge-icon{
 
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:;
  color:var(--ph-steel-500);
  font-size:3rem;
}
.ph-normativas-badge-icon i{
 
  
  color:var(--ph-steel-500);
  font-size:2rem;
}
.ph-normativas-badge strong{
  display:block;
  font-size:1rem;
  color:var(--ph-navy-900);
  line-height:1.3;
}
.ph-normativas-badge span{
  display:block;
  font-size:.80rem;
  color:var(--ph-ink-600);
}

.ph-norm-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--ph-radius);
  padding:1.75rem;
  height:100%;
}
.ph-norm-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px;height:46px;
  border-radius:50%;
  border:2px solid var(--ph-orange-500);
  color:var(--ph-orange-500);
  font-size:1.05rem;
  margin-bottom:1rem;
}
.ph-norm-label{
  display:block;
  font-family:var(--ph-font-mono);
  font-size:1rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ph-orange-500);
  margin-bottom:.25rem;
}
.ph-norm-title{
  font-family:var(--ph-font-display);
  font-weight:700;
  font-size:1.375rem;
  color:var(--ph-white);
  margin-bottom:.6rem;
}
.ph-norm-text{
  font-size:1rem;
  color:#c3d1e3;
  margin:0;
}

/* ============ Contacto ============ */
.ph-info-card{
  display:flex;
  align-items:center;
  gap:1rem;
  background:var(--ph-white);
  border:1px solid var(--ph-line);
  border-radius:var(--ph-radius-sm);
  padding:1.1rem 1.35rem;
  margin-bottom:1rem;
}
.ph-info-icon{
  width:42px;height:42px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:rgba(255,106,26,.12);
  color:var(--ph-orange-600);
  font-size:1.05rem;
}
.ph-info-label{
  display:block;
  font-family:var(--ph-font-mono);
  font-size:1rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--ph-ink-600);
  margin-bottom:.15rem;
}
.ph-info-value{
  font-size:1.0625rem;
  color:var(--ph-navy-900);
}

.ph-contact-img{
  border-radius:var(--ph-radius);
  margin-top:1.5rem;
}

.ph-form{
  background:var(--ph-white);
  border:1px solid var(--ph-line);
  border-radius:var(--ph-radius);
  box-shadow:var(--ph-shadow);
  padding:2.5rem;
}
.ph-form-title{
  font-family:var(--ph-font-display);
  font-weight:700;
  font-size:1.5rem;
  color:var(--ph-navy-900);
  margin-bottom:.5rem;
}
.ph-form-sub{
  font-size:1rem;
  color:var(--ph-ink-600);
  margin-bottom:1.75rem;
}
.ph-label{
  display:block;
  font-size:1rem;
  font-weight:600;
  color:var(--ph-navy-900);
  margin-bottom:.4rem;
}
.ph-input{
  width:100%;
  font-family:var(--ph-font-body);
  font-size:1rem;
  color:var(--ph-ink-900);
  background:var(--ph-cream-100);
  border:1px solid var(--ph-line);
  border-radius:var(--ph-radius-sm);
  padding:.75rem 1rem;
  transition:border-color .2s ease, background .2s ease;
}
.ph-input::placeholder{color:#96a3b8;}
.ph-input:focus{
  outline:none;
  border-color:var(--ph-orange-500);
  background:var(--ph-white);
}
.ph-textarea{resize:vertical;min-height:110px;}

.ph-form-note{
  text-align:center;
  font-size:1rem;
  color:var(--ph-ink-600);
  margin:1rem 0 0;
}

.ph-form-success{
  display:none;
  align-items:center;
  gap:.5rem;
  justify-content:center;
  font-size:1rem;
  font-weight:600;
  color:#1a8a4c;
  background:#e8f8ee;
  border-radius:var(--ph-radius-sm);
  padding:.85rem 1rem;
  margin-top:1rem;
}
.ph-form-success.is-visible{display:flex;}

/* ============ Footer ============ */
.ph-footer{
  background:var(--ph-navy-900);
  color:#c3d1e3;
  padding:0rem 0 2rem;
}
.ph-footer-logo{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-bottom:1.1rem;
}
.ph-footer-logo .ph-logo-text strong{color:var(--ph-white);}
.ph-footer-logo .ph-logo-text small{color:#9fb0c8;}
.ph-footer-text{
  font-size:1rem;
  color:#c3d1e3;
  margin-bottom:.4rem;
}
.ph-logo img{
  max-width: 100px;
}
.ph-footer-divider{
  border-color:rgba(255,255,255,.14);
  margin:2.5rem 0 1.5rem;
}
.ph-footer-bottom{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem 1.5rem;
  justify-content:space-between;
  font-family:var(--ph-font-mono);
  font-size:1rem;
  color:#9fb0c8;
}

/* ============ WhatsApp float ============ */
.ph-whatsapp{
  position:fixed;
  right:1.5rem;
  bottom:1.5rem;
  z-index:999;
  width:56px;height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#25d366;
  color:var(--ph-white);
  font-size:1.6rem;
  box-shadow:0 12px 26px -8px rgba(37,211,102,.6);
  transition:transform .2s ease;
}
.ph-whatsapp:hover{
  transform:scale(1.08);
  color:var(--ph-white);
}

/* ============ Responsive ============ */
@media (max-width: 991.98px){
  .ph-section{padding:4.5rem 0;}
  .ph-hero-row{padding:2.5rem 0 4.5rem;}
  .ph-hero-content{margin:0 auto 3rem;text-align:center;}
  .ph-hero-cta{justify-content:center;}
  .ph-hero-sub{margin-left:auto;margin-right:auto;}
  .ph-form{padding:2rem 1.5rem;}
  .ph-field{min-height:420px;}
  .ph-normativas-visual{margin-bottom:1rem;}
}

@media (max-width: 575.98px){
  .ph-hero-cta{flex-direction:column;align-items:stretch;}
  .ph-btn{width:100%;}
  .ph-footer-bottom{flex-direction:column;}
  .ph-field-content{padding:3rem 0;}
  .ph-hero-visual{max-width:320px;padding-left:1rem;padding-bottom:1.5rem;}
  .ph-hero-badge{left:-.75rem;bottom:-1rem;padding:.8rem 1rem;gap:.65rem;}
  .ph-hero-badge-num{font-size:1.6rem;}
  .ph-stat-label{max-width:none;}
  .ph-chevrons{display:none;}
  .ph-normativas-img-float{width:48%;border-width:3px;}
}


/* ============ Galería (swiper) ============ */
.ph-gallery-swiper{padding-bottom:.25rem;}
.ph-gallery-item{
  position:relative;
  border-radius:var(--ph-radius-sm);
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--ph-shadow-sm);
}
.ph-gallery-item img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
.ph-gallery-item:hover img{transform:scale(1.08);}
.ph-gallery-item::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(10,31,61,0) 55%, rgba(10,31,61,.75) 100%);
  pointer-events:none;
}
.ph-gallery-caption{
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:1;
  padding:1rem 1.1rem;
  font-family:var(--ph-font-mono);
  font-size:1rem;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--ph-white);
}

.ph-gallery-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.25rem;
  margin-top:2rem;
}
.ph-gallery-prev,
.ph-gallery-next{
  width:44px;height:44px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid var(--ph-line);
  background:var(--ph-white);
  color:var(--ph-navy-900);
  font-size:.9rem;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.ph-gallery-prev:hover,
.ph-gallery-next:hover{
  background:var(--ph-orange-500);
  border-color:var(--ph-orange-500);
  color:var(--ph-white);
}
.ph-gallery-prev.swiper-button-disabled,
.ph-gallery-next.swiper-button-disabled{
  opacity:.4;
  cursor:default;
}
.ph-gallery-dots{margin-top:0;}

