*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:Montserrat,sans-serif;color:#252525;background:#f7f5ef;}
.site-nav{padding:14px 0;background:rgba(10,10,10,.88);backdrop-filter:blur(16px);transition:.3s;}
.site-nav.scrolled{padding:8px 0;background:#0d0d0d;}
.navbar-brand{display:flex;align-items:center;gap:10px;font-family:Cinzel,serif;color:#fff!important;}
.navbar-brand img{width:48px;height:48px;object-fit:contain;}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--primary);color:var(--accent);}
.nav-link{color:#eee!important;font-size:.86rem;text-transform:uppercase;letter-spacing:.08em;}
.btn-gold,.btn-dark-gold{background:linear-gradient(135deg,var(--accent),var(--primary));border:0;color:#111;font-weight:700;padding:.8rem 1.3rem;}
.btn-gold:hover,.btn-dark-gold:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(201,162,39,.28);}
.btn-outline-gold{border:1px solid var(--primary);color:var(--accent);}
.btn-outline-gold:hover{background:var(--primary);color:#111;}
.hero-section{min-height:100vh;background:#111 center/cover no-repeat;display:flex;align-items:center;position:relative;color:#fff;overflow:hidden;padding:120px 0 80px;}
.hero-grain{position:absolute;inset:0;opacity:.12;background-image:radial-gradient(#fff .7px,transparent .7px);background-size:8px 8px;}
.hero-content{position:relative;}
.eyebrow{display:inline-block;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.22em;margin-bottom:1rem;}
.eyebrow.dark{color:#8c6f12;}
.hero-section h1,.section-heading h2,.cta-section h2,.contact-section h2{font-family:Cinzel,serif;}
.hero-section h2{font-weight:500;color:#ddd;}
.hero-section p{color:#d6d6d6;line-height:1.8;}
.hero-scroll{position:absolute;right:30px;bottom:30px;writing-mode:vertical-rl;font-size:.68rem;letter-spacing:.25em;color:#aaa;}
.section-pad{padding:110px 0;}
.bg-light-texture{background:linear-gradient(135deg,#f4f0e5,#fff);}
.image-frame{position:relative;min-height:470px;background:#ddd;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.18);}
.image-frame img{width:100%;height:100%;min-height:470px;object-fit:cover;transition:transform .6s;}
.image-frame:hover img{transform:scale(1.06);}
.image-placeholder{min-height:470px;display:grid;place-items:center;font-size:6rem;color:#927827;background:linear-gradient(145deg,#ded6bd,#b8aa81);}
.frame-line{position:absolute;inset:18px;border:1px solid rgba(255,255,255,.65);}
.section-title{font-family:Cinzel,serif;font-size:clamp(2rem,4vw,4rem);line-height:1.1;}
.lead-copy{font-size:1.05rem;line-height:1.9;color:#666;}
.services-section{background:#111;color:#fff;}
.section-heading{text-align:center;max-width:820px;margin:0 auto 55px;}
.section-heading h2{font-size:clamp(2rem,4vw,4rem);}
.section-heading p{color:#aaa;}
.service-card{height:100%;padding:34px;background:linear-gradient(145deg,#171717,#0d0d0d);border:1px solid #2b2b2b;position:relative;overflow:hidden;transition:.35s;}
.service-card:before{content:"";position:absolute;inset:auto -60px -60px auto;width:150px;height:150px;background:radial-gradient(circle,var(--primary),transparent 70%);opacity:.12;}
.service-card:hover{transform:translateY(-10px);border-color:var(--primary);}
.service-card img{width:100%;height:210px;object-fit:cover;margin-bottom:24px;}
.service-icon{width:58px;height:58px;display:grid;place-items:center;border:1px solid var(--primary);color:var(--accent);font-size:1.5rem;margin-bottom:22px;}
.service-card h3{font-family:Cinzel,serif;font-size:1.35rem;}
.service-card p{color:#aaa;line-height:1.7;}
.service-card a{color:var(--accent);text-decoration:none;font-weight:700;}
.process-section{background:#f7f3e8;}
.steps-list{border-left:1px solid #c7b77d;}
.step-item{display:flex;gap:25px;padding:0 0 35px 30px;position:relative;}
.step-item:before{content:"";position:absolute;left:-6px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--primary);}
.step-item>span{font-family:Cinzel,serif;color:#b28e1e;font-size:1.6rem;}
.step-item h3{font-family:Cinzel,serif;}
.step-item p{color:#666;}
.cta-section{padding:120px 0;text-align:center;color:#fff;background:#171717 center/cover no-repeat;}
.cta-section h2{font-size:clamp(2.3rem,5vw,5rem);max-width:900px;margin:auto;}
.cta-section p{max-width:720px;margin:25px auto;color:#ccc;}
.contact-section{background:#171717;color:#fff;}
.contact-data{display:grid;gap:16px;margin-top:35px;}
.contact-data a,.contact-data div{display:flex;gap:14px;align-items:center;color:#ddd;text-decoration:none;}
.contact-data i{color:var(--accent);}
.contact-form{background:#fff;padding:35px;color:#222;}
.contact-form label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:0;border-bottom:1px solid #bbb;padding:12px 0;background:transparent;outline:none;}
.site-footer{background:#090909;color:#aaa;padding:70px 0 25px;}
.site-footer h3,.site-footer h5{font-family:Cinzel,serif;color:#fff;}
.footer-brand{display:flex;gap:14px;align-items:center;}
.footer-brand img{width:55px;height:55px;object-fit:contain;}
.social-list{display:flex;flex-wrap:wrap;gap:10px;}
.social-list a{display:flex;align-items:center;gap:8px;color:#ddd;text-decoration:none;border:1px solid #2d2d2d;padding:10px 13px;}
.social-list img{width:24px;height:24px;object-fit:contain;}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #222;margin-top:45px;padding-top:22px;font-size:.8rem;}
.whatsapp-float{position:fixed;right:24px;bottom:24px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;font-size:1.7rem;z-index:1000;box-shadow:0 12px 30px rgba(0,0,0,.3);}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .8s;}
.reveal.visible{opacity:1;transform:none;}
.auth-page{min-height:100vh;padding:130px 20px 80px;display:grid;place-items:center;background:linear-gradient(135deg,#111,#2a2518);}
.auth-card{width:min(520px,100%);background:#fff;padding:40px;box-shadow:0 30px 80px rgba(0,0,0,.35);}
.auth-card h1{font-family:Cinzel,serif;}
.admin-shell{min-height:100vh;background:#f3f1eb;}
.admin-sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;background:#111;color:#fff;padding:25px 18px;z-index:1100;}
.admin-brand{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none;font-family:Cinzel,serif;font-size:1.2rem;padding:12px;}
.admin-sidebar nav{margin-top:25px;display:grid;gap:7px;}
.admin-sidebar nav a{display:flex;gap:12px;align-items:center;color:#bbb;text-decoration:none;padding:12px 14px;border-radius:8px;}
.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background:#242116;color:var(--accent);}
.admin-main{margin-left:260px;padding:35px;}
.admin-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;}
.admin-top span{color:#8a761e;text-transform:uppercase;font-size:.75rem;letter-spacing:.16em;}
.admin-top h1{font-family:Cinzel,serif;}
.stat-card,.admin-card{background:#fff;border:1px solid #e5e0d4;box-shadow:0 12px 35px rgba(30,25,10,.06);}
.stat-card{padding:28px;}
.stat-card span{display:block;color:#777;}
.stat-card strong{font-family:Cinzel,serif;font-size:2.5rem;}
.admin-card{padding:28px;}
.admin-card h3{font-family:Cinzel,serif;}
.admin-card h3 small{font-family:Montserrat,sans-serif;color:#999;font-size:.7rem;}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;}
.quick-grid a{padding:22px;border:1px solid #ddd;text-decoration:none;color:#222;display:grid;gap:10px;}
.quick-grid i{font-size:1.7rem;color:#9c7c13;}
.social-admin-logo{width:34px;height:34px;object-fit:contain;}
.admin-main .site-footer{display:none;}
@media (max-width:991px){.admin-sidebar{position:relative;width:100%;bottom:auto;}
.admin-shell{display:block;}
.admin-sidebar nav{grid-template-columns:repeat(2,1fr);}
.admin-main{margin-left:0;padding:20px;}
.quick-grid{grid-template-columns:repeat(2,1fr);}
.hero-section{padding-top:150px;}
.footer-bottom{flex-direction:column;gap:8px;}}
@media (max-width:576px){.section-pad{padding:75px 0;}
.hero-section h1{font-size:2.65rem;}
.contact-form,.auth-card,.admin-card{padding:22px;}
.quick-grid{grid-template-columns:1fr;}
.admin-sidebar nav{grid-template-columns:1fr 1fr;}
.admin-top{align-items:flex-start;gap:15px;flex-direction:column;}
.image-frame,.image-frame img,.image-placeholder{min-height:340px;}}
.hero-section:before,.hero-section:after{content:"";position:absolute;border-radius:50%;filter:blur(85px);pointer-events:none;}
.hero-section:before{width:430px;height:430px;left:-120px;top:15%;background:rgba(201,162,39,.16);}
.hero-section:after{width:520px;height:520px;right:-170px;bottom:-180px;background:rgba(164,123,18,.13);}
.hero-content{max-width:1180px!important;width:100%;z-index:2;}
.hero-section h1{max-width:1120px!important;font-size:clamp(3.7rem,8.2vw,8.2rem)!important;line-height:.9!important;letter-spacing:-.035em;text-shadow:0 5px 26px rgba(0,0,0,.82),0 0 38px rgba(201,162,39,.16);}
.hero-section h2{max-width:900px;font-size:clamp(1.35rem,2.5vw,2.25rem)!important;}
.hero-section p{max-width:900px!important;font-size:clamp(1rem,1.35vw,1.22rem)!important;}
.hero-content .btn{box-shadow:0 12px 38px rgba(0,0,0,.32);}
.service-card-link{display:block;height:100%;text-decoration:none;color:inherit;}
.service-card-link:hover{color:inherit;}
.service-card{box-shadow:inset 0 0 55px rgba(201,162,39,.025),0 18px 48px rgba(0,0,0,.18);}
.service-card:hover{box-shadow:0 28px 75px rgba(0,0,0,.62),0 0 32px rgba(201,162,39,.16);}
.service-more{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent);font-weight:700;margin-top:12px;}
.service-card:hover .service-more i{transform:translateX(6px);}
.service-more i{transition:.3s;}
/* Páginas internas de servicios */
.detail-hero{min-height:82vh;display:flex;align-items:center;position:relative;overflow:hidden;background:#101010 center/cover no-repeat;color:#fff;padding:150px 0 90px;}
.detail-glow{position:absolute;width:620px;height:620px;left:-200px;top:10%;border-radius:50%;background:rgba(201,162,39,.18);filter:blur(110px);}
.detail-hero-copy{max-width:1000px;}
.detail-hero h1{font-family:Cinzel,serif;font-size:clamp(3.4rem,8vw,8rem);line-height:.92;letter-spacing:-.035em;text-shadow:0 0 38px rgba(201,162,39,.17);}
.detail-hero p{max-width:820px;font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.8;color:#ddd;}
.detail-intro{background:linear-gradient(135deg,#f5f1e6,#fff);}
.detail-richtext{font-size:1.08rem;line-height:1.95;color:#5c5c5c;}
.detail-image{min-height:520px;position:relative;overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,.2);}
.detail-image:after{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.7);}
.detail-image img{width:100%;height:100%;min-height:520px;object-fit:cover;transition:.7s;}
.detail-image:hover img{transform:scale(1.06);}
.detail-stat{min-height:420px;padding:55px;display:flex;flex-direction:column;justify-content:end;background:linear-gradient(145deg,#171717,#080808);color:#fff;box-shadow:0 32px 80px rgba(0,0,0,.3);position:relative;overflow:hidden;}
.detail-stat:before{content:"";position:absolute;width:250px;height:250px;right:-100px;top:-70px;border-radius:50%;background:rgba(201,162,39,.22);filter:blur(55px);}
.detail-stat i{font-size:3rem;color:var(--accent);margin-bottom:25px;}
.detail-stat strong{font-family:Cinzel,serif;font-size:2.2rem;}
.detail-stat span{color:#aaa;line-height:1.7;}
.detail-blocks{background:#111;color:#fff;}
.detail-card{height:100%;padding:34px;border:1px solid #2b2b2b;background:linear-gradient(145deg,#171717,#0b0b0b);transition:.35s;box-shadow:inset 0 0 45px rgba(201,162,39,.025);}
.detail-card:hover{transform:translateY(-9px);border-color:var(--primary);box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 28px rgba(201,162,39,.13);}
.detail-card img{width:100%;height:220px;object-fit:cover;margin-bottom:24px;}
.detail-card h3{font-family:Cinzel,serif;}
.detail-card p{color:#aaa;line-height:1.75;}
.detail-cta{padding:110px 0;background:radial-gradient(circle at 20% 20%,rgba(201,162,39,.14),transparent 35%),#080808;color:#fff;text-align:center;}
.detail-cta h2{font-family:Cinzel,serif;font-size:clamp(2.3rem,5vw,5rem);max-width:950px;margin:0 auto 18px;}
.detail-cta p{color:#aaa;font-size:1.1rem;}
.detail-empty{min-height:75vh;padding:180px 0 100px;background:#111;color:#fff;}
.detail-empty h1{font-family:Cinzel,serif;font-size:clamp(2.8rem,7vw,6rem);}
@media (max-width:767px){.hero-section h1{font-size:clamp(3rem,15vw,5.2rem)!important;}
.detail-hero{min-height:72vh;padding-top:135px;}
.detail-hero h1{font-size:clamp(3rem,14vw,5.3rem);}
.detail-image,.detail-image img{min-height:360px;}}
.service-card-link,.service-card-link:visited,.service-card-link:hover,.service-card-link:focus{text-decoration:none!important;color:#fff!important;}
.service-card-link .service-card h3,.service-card-link .service-card h3 *{color:#fff!important;text-decoration:none!important;}
.service-card-link .service-card p{color:#b9b9b9!important;text-decoration:none!important;}
.service-card-link .service-more{color:var(--accent)!important;text-decoration:none!important;}
.service-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px;}
/* Contacto reducido exclusivo de la portada */
.home-contact-strip{padding:82px 0;background:radial-gradient(circle at 80% 25%,rgba(201,162,39,.14),transparent 32%),#151515;color:#fff;border-top:1px solid rgba(201,162,39,.16);}
.home-contact-strip h2{font-family:Cinzel,serif;font-size:clamp(2rem,4vw,4.2rem);max-width:850px;margin:.5rem 0 1rem;}
.home-contact-strip p{color:#bbb;max-width:720px;margin:0;}
.home-contact-inline{display:flex;flex-wrap:wrap;gap:22px;margin-top:22px;color:#ddd;}
.home-contact-inline i{color:var(--accent);margin-right:7px;}
/* Página completa de contacto */
.contact-page{background:#f6f2e7;}
.contact-hero{min-height:58vh;display:flex;align-items:end;padding:170px 0 85px;background:linear-gradient(115deg,#090909,#1a1710);color:#fff;position:relative;overflow:hidden;}
.contact-hero-glow{position:absolute;width:650px;height:650px;border-radius:50%;right:-180px;top:-250px;background:rgba(201,162,39,.22);filter:blur(100px);}
.contact-hero h1{font-family:Cinzel,serif;font-size:clamp(3rem,7vw,7rem);line-height:.95;max-width:1050px;text-shadow:0 0 34px rgba(201,162,39,.14);}
.contact-hero p{font-size:clamp(1rem,1.7vw,1.3rem);color:#ccc;max-width:760px;margin-top:22px;}
.contact-page-body{background:linear-gradient(135deg,#f4efe2,#fff);}
.contact-form-elevated{box-shadow:0 28px 80px rgba(42,34,12,.16);border-top:4px solid var(--primary);}
.contact-data-light a,.contact-data-light div{color:#333;}
.contact-data-light i{color:#9e7c13;}
.contact-page .btn-success{background:#1f9d55;border-color:#1f9d55;}
.contact-page .btn-success:hover{background:#178347;border-color:#178347;transform:translateY(-2px);}
/* Formulario de contacto completo en la portada */
.home-contact-full{background:radial-gradient(circle at 8% 15%,rgba(201,162,39,.10),transparent 30%),#171717;color:#fff;}
.home-contact-full h2{font-family:Cinzel,serif;font-size:clamp(2rem,3.5vw,3.5rem);line-height:1.12;margin-bottom:.8rem;}
.home-contact-full> .container > .row > div:first-child > p{color:#c6c6c6;line-height:1.75;}
.home-contact-form{padding:42px;background:#fff;box-shadow:0 25px 70px rgba(0,0,0,.26);border-top:4px solid var(--primary);}
.home-contact-form label{display:block;margin-bottom:4px;color:#171717;}
.home-contact-form input,.home-contact-form select{min-height:48px;}
.home-contact-form textarea{display:block;min-height:190px!important;height:190px;resize:vertical;border:1px solid #d4c9aa!important;background:#fbfaf6!important;padding:16px!important;line-height:1.65;border-radius:2px;}
.home-contact-form textarea:focus{border-color:var(--primary)!important;box-shadow:0 0 0 3px rgba(201,162,39,.12);}
.home-contact-form input:focus,.home-contact-form select:focus{border-bottom-color:var(--primary);}
.home-contact-full .btn-success{background:#1f9d55;border-color:#1f9d55;}
.home-contact-full .btn-success:hover{background:#178347;border-color:#178347;}
@media (max-width:767px){.home-contact-form{padding:25px;}
.home-contact-form textarea{min-height:165px!important;height:165px;}}
.site-nav .dropdown-menu{background:#111;border:1px solid rgba(201,162,39,.3);border-radius:0;padding:.65rem;box-shadow:0 18px 45px rgba(0,0,0,.38);}
.site-nav .dropdown-item{color:#ddd;font-size:.82rem;padding:.65rem .85rem;}
.site-nav .dropdown-item:hover{background:rgba(201,162,39,.14);color:var(--accent);}
.home-products{padding:95px 0;background:#080808;color:#fff;overflow:hidden;border-top:1px solid #252525;}
.home-products-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:38px;}
.home-products h2{font-family:Cinzel,serif;font-size:clamp(2rem,4vw,4rem);}
.product-marquee{width:100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);}
.product-track{display:flex;gap:22px;width:max-content;animation:fortProducts 48s linear infinite;}
.product-track:hover{animation-play-state:paused;}
@keyframes fortProducts{to{transform:translateX(-50%);}}
.marquee-product{width:330px;flex:none;background:linear-gradient(145deg,#171717,#0d0d0d);border:1px solid #2a2a2a;color:#fff;text-decoration:none;transition:.35s;}
.marquee-product:hover{transform:translateY(-8px);border-color:var(--primary);box-shadow:0 18px 42px rgba(201,162,39,.14);color:#fff;}
.marquee-product img,.marquee-product>.product-placeholder{width:100%;height:210px;object-fit:cover;}
.marquee-product>div:last-child{padding:24px;}
.marquee-product span,.product-card-body>span{color:var(--accent);font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;}
.marquee-product h3{font-family:Cinzel,serif;font-size:1.2rem;margin:10px 0;}
.marquee-product small{color:#bbb;}
.catalog-page{padding-top:78px;}
.catalog-hero{padding:130px 0 90px;background:radial-gradient(circle at 80% 20%,rgba(201,162,39,.18),transparent 35%),#101010;color:#fff;}
.catalog-hero h1,.product-detail h1{font-family:Cinzel,serif;font-size:clamp(2.8rem,6vw,6rem);max-width:950px;}
.catalog-hero p{color:#ccc;max-width:750px;font-size:1.1rem;}
.category-filter{display:flex;flex-wrap:wrap;gap:10px;}
.category-filter a{border:1px solid #cfc8b8;padding:10px 16px;color:#333;text-decoration:none;}
.category-filter a.active,.category-filter a:hover{background:#111;color:var(--accent);border-color:#111;}
.product-card{height:100%;background:#fff;color:#222;text-decoration:none;border:1px solid #e3ded1;transition:.35s;overflow:hidden;}
.product-card:hover{transform:translateY(-8px);box-shadow:0 24px 60px rgba(35,29,10,.14);color:#222;}
.product-card img,.product-card>.product-placeholder{width:100%;height:285px;object-fit:cover;}
.product-card-body{padding:28px;}
.product-card h2{font-family:Cinzel,serif;font-size:1.4rem;margin:10px 0;}
.product-card p{color:#666;min-height:52px;}
.product-card strong{color:#8a6b10;}
.product-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#262113,#0d0d0d);color:var(--accent);font-size:4rem;}
.product-placeholder.detail{min-height:470px;}
.product-detail{padding-top:78px;}
.product-detail-hero{background:#111;color:#fff;}
.product-detail-hero p{color:#ccc;font-size:1.15rem;}
.product-detail-hero img{width:100%;height:500px;object-fit:cover;box-shadow:25px 25px 0 rgba(201,162,39,.18);}
.product-info-box{background:#111;color:#ddd;padding:35px;border-top:4px solid var(--primary);}
.product-info-box h3{font-family:Cinzel,serif;color:#fff;margin-top:20px;}
.product-info-box h3:first-child{margin-top:0;}
.product-info-box a{display:block;color:var(--accent);text-decoration:none;border-top:1px solid #333;padding:12px 0;}
.benefit-list{padding:0;list-style:none;display:grid;gap:12px;}
.benefit-list li{display:flex;gap:10px;}
.benefit-list i{color:#9b7911;}
@media (max-width:991px){.home-products-head{align-items:flex-start;flex-direction:column;}
.marquee-product{width:285px;}
.product-detail-hero img{height:380px;}
.site-nav .dropdown-menu{border:0;box-shadow:none;}}
/* =========================================================
   FORT RANCH — AJUSTE VISUAL LIMPIO PARA SERVICIOS
   Pegar al FINAL de public_html/assets/css/style.css
   ========================================================= */
.service-detail-page{background: #f4f0e7;}
.service-detail-page > section{position: relative;}
.service-detail-page .container{width: min(1180px, calc(100% - 40px));
    max-width: 1180px;
    margin-inline: auto;}
.service-detail-hero{min-height: 520px;
    padding: 135px 0 72px;
    background:
        radial-gradient(circle at 82% 34%, rgba(201, 162, 39, .15), transparent 25rem),
        linear-gradient(180deg, #0d0d0d 0%, #090909 100%);}
.service-detail-hero .row{align-items: center;}
.service-detail-copy{max-width: 760px;}
.service-detail-copy h1{max-width: 900px;
    margin: 14px 0 20px;
    font-size: clamp(3rem, 6vw, 5.8rem);
    line-height: .96;
    letter-spacing: -.025em;}
.service-detail-copy p{max-width: 700px;
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.75;}
.service-hero-media{width: 100%;
    min-height: 0;
    
    border-radius: 3px;
    background: #111;}
.service-hero-media img{width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;}
.service-hero-media figcaption{right: 14px;
    bottom: 14px;
    left: 14px;
    border: 1px solid rgba(255,255,255,.08);}
.service-detail-intro{background:
        radial-gradient(circle at 92% 10%, rgba(201,162,39,.08), transparent 26rem),
        #f4f0e7;}
.service-rich-text br + br{display: block;
    content: "";
    margin-top: 10px;}
.service-content-media{min-height: 0;
    
    border-radius: 3px;
    background: #ddd5c7;}
.service-content-media img{min-height: 0;}
.service-detail-intro .col-lg-5{display: flex;
    align-items: center;}
.service-detail-intro .col-lg-5 .service-content-media{max-height: 520px;}
.service-detail-blocks{padding: 84px 0;}
.service-info-card{border-radius: 3px;}
.service-info-card > img{height: 210px;}
.service-public-gallery{padding: 88px 0 96px;
    background:
        radial-gradient(circle at 15% 10%, rgba(201,162,39,.12), transparent 24rem),
        #111;}
.service-public-gallery .section-heading{max-width: 760px;
    margin: 0 auto 42px;
    text-align: center;}
.service-public-gallery .section-heading h2{margin-bottom: 12px;
    font-size: clamp(2.2rem, 4vw, 3.6rem);
    line-height: 1.05;}
.service-public-gallery .row{justify-content: center;}
.service-public-media-card{display: flex;
    flex-direction: column;
    height: 100%;
    border-radius: 3px;}
.service-public-media-card > a,
.service-public-media-card > .ratio,
.service-public-media-card > video{display: block;
    width: 100%;}
.service-public-media-card img,
.service-public-media-card video,
.service-public-media-card .ratio{width: 100%;
    aspect-ratio: 16 / 10;
    min-height: 260px;
    max-height: 380px;
    object-fit: cover;
    background: #050505;}
.service-public-media-card .ratio iframe{width: 100%;
    height: 100%;}
.service-public-media-body{flex: 1;
    padding: 18px 20px 20px;}
.service-public-gallery .row > [class*="col-"]:only-child{width: min(760px, 100%);
    flex: 0 0 auto;}
/* Productos relacionados */
.service-products-section{padding: 88px 0;}
.service-products-heading{margin-bottom: 28px;}
.site-footer,
footer{margin-top: 0;}
@media (max-width: 991.98px){.service-detail-page .container{width: min(100% - 28px, 1180px);}
.service-detail-hero{min-height: auto;
        padding: 115px 0 60px;}
.service-detail-hero .row,
    .service-detail-intro .row{row-gap: 34px;}
.service-hero-media,
    .service-content-media{aspect-ratio: 16 / 10;}
.service-detail-intro{padding: 64px 0;}
.service-public-gallery,
    .service-products-section{padding: 68px 0;}}
@media (max-width: 575.98px){.service-detail-copy h1{font-size: clamp(2.65rem, 14vw, 4rem);}
.service-detail-copy p{font-size: 1rem;}
.service-rich-text{font-size: .98rem;
        line-height: 1.75;}
.service-public-media-card img,
    .service-public-media-card video,
    .service-public-media-card .ratio{min-height: 220px;
        max-height: none;}}
/* =========================================================
   FORT RANCH — NOSOTROS REORGANIZADO
   ========================================================= */
.about-premium-section{position: relative;
    padding: 105px 0;
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 8%, rgba(201,162,39,.13), transparent 28rem),
        linear-gradient(180deg, #f5f1e7 0%, #fff 48%, #eee8dc 100%);}
.about-premium-section::before{content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(20,20,20,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(20,20,20,.025) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.35), transparent 70%);}
.about-premium-section .container{position: relative;
    z-index: 1;}
.about-premium-hero{position: relative;
    min-height: 510px;
    overflow: hidden;
    background: #171717;
    box-shadow: 0 30px 80px rgba(32,25,8,.18);}
.about-premium-hero > img{width: 100%;
    height: 510px;
    object-fit: cover;}
.about-premium-placeholder{display: grid;
    place-items: center;
    width: 100%;
    height: 510px;
    color: #b99727;
    font-size: 5rem;
    background:
        radial-gradient(circle at center, rgba(201,162,39,.22), transparent 42%),
        #171717;}
.about-premium-hero::after{content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(5,5,5,.88) 0%, rgba(5,5,5,.48) 50%, rgba(5,5,5,.08) 100%),
        linear-gradient(0deg, rgba(5,5,5,.42), transparent 55%);}
.about-premium-overlay{position: absolute;
    z-index: 2;
    left: clamp(28px, 6vw, 80px);
    bottom: clamp(32px, 7vw, 78px);
    max-width: 720px;
    color: #fff;}
.about-premium-overlay h2{max-width: 760px;
    margin: 8px 0 12px;
    color: #fff;
    font-family: Cinzel, Georgia, serif;
    font-size: clamp(2.6rem, 5.5vw, 5.8rem);
    line-height: .98;
    text-shadow: 0 8px 36px rgba(0,0,0,.7);}
.about-premium-overlay p{max-width: 620px;
    margin: 0;
    color: #e0e0e0;
    font-size: 1.08rem;
    line-height: 1.7;}
.about-premium-intro{display: grid;
    grid-template-columns: minmax(230px, .72fr) minmax(0, 1.5fr);
    gap: clamp(35px, 7vw, 90px);
    padding: 72px 0 62px;
    border-bottom: 1px solid rgba(30,27,18,.13);}
.about-intro-heading h3{margin: 7px 0 0;
    color: #171717;
    font-family: Cinzel, Georgia, serif;
    font-size: clamp(2rem, 3.5vw, 3.6rem);
    line-height: 1.05;}
.about-intro-copy{max-width: 820px;
    color: #4e4a41;
    font-size: 1.04rem;
    line-height: 1.9;}
.about-intro-copy p{margin: 0 0 15px;}
.about-info-grid{display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    padding-top: 55px;}
.about-info-card{position: relative;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 20px;
    min-height: 100%;
    padding: clamp(25px, 3vw, 38px);
    overflow: hidden;
    border: 1px solid rgba(32,29,20,.12);
    background: rgba(255,255,255,.88);
    box-shadow: 0 16px 38px rgba(35,28,10,.07);
    transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;}
.about-info-card::after{content: "";
    position: absolute;
    right: -70px;
    bottom: -80px;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: rgba(201,162,39,.1);
    filter: blur(26px);}
.about-info-card:hover{transform: translateY(-6px);
    border-color: rgba(201,162,39,.62);
    box-shadow:
        0 24px 55px rgba(35,28,10,.12),
        0 0 26px rgba(201,162,39,.1);}
.about-info-icon{position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border: 1px solid #b89521;
    color: #9c7811;
    font-size: 1.45rem;
    background: #faf6e9;}
.about-info-card > div:last-child{position: relative;
    z-index: 1;}
.about-info-card h3{margin: 3px 0 15px;
    color: #171717;
    font-family: Cinzel, Georgia, serif;
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    line-height: 1.18;}
.about-info-card p{margin: 0 0 12px;
    color: #625d52;
    line-height: 1.75;}
.about-info-card p:last-child{margin-bottom: 0;}
.about-feature-list{display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;}
.about-feature-list li{display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #514d44;
    line-height: 1.55;}
.about-feature-list i{flex: 0 0 auto;
    margin-top: 3px;
    color: #a88313;
    font-size: .92rem;}
.about-premium-action{display: flex;
    justify-content: center;
    padding-top: 42px;}
@media (max-width: 991.98px){.about-premium-section{padding: 75px 0;}
.about-premium-hero,
    .about-premium-hero > img,
    .about-premium-placeholder{min-height: 430px;
        height: 430px;}
.about-premium-intro{grid-template-columns: 1fr;
        gap: 24px;
        padding: 52px 0 45px;}
.about-info-grid{grid-template-columns: 1fr;
        padding-top: 42px;}}
@media (max-width: 575.98px){.about-premium-section{padding: 55px 0;}
.about-premium-hero,
    .about-premium-hero > img,
    .about-premium-placeholder{min-height: 390px;
        height: 390px;}
.about-premium-overlay{right: 24px;
        left: 24px;
        bottom: 28px;}
.about-premium-overlay h2{font-size: clamp(2.35rem, 12vw, 3.5rem);}
.about-info-card{grid-template-columns: 1fr;}}
/* =========================================================
   FORT RANCH — LECTURA MEJORADA DEL CONTENIDO DE SERVICIOS
   ========================================================= */
.service-detail-intro{padding:clamp(72px,8vw,110px) 0;}
.service-detail-intro .row{align-items:flex-start!important;}
.service-detail-intro .col-lg-7,.service-detail-intro .col-lg-9{max-width:780px;}
.service-rich-text{position:relative;max-width:760px;color:#37342d;font-size:1.04rem;line-height:1.85;}
.service-text-paragraph{margin:0 0 1.35rem;color:#4c4941;font-size:clamp(1rem,1.15vw,1.08rem);line-height:1.88;}
.service-text-paragraph:first-child{color:#25231e;font-size:clamp(1.08rem,1.4vw,1.2rem);line-height:1.82;}
.service-text-heading{display:flex;align-items:center;gap:13px;margin:2.35rem 0 1.15rem;color:#171717;font-family:Cinzel,Georgia,serif;font-size:clamp(1.18rem,2vw,1.55rem);font-weight:700;line-height:1.25;letter-spacing:.015em;}
.service-text-heading:first-child{margin-top:0;}
.service-text-heading>span{flex:0 0 auto;width:34px;height:2px;background:linear-gradient(90deg,#c9a227,#8f6d0e);box-shadow:0 0 12px rgba(201,162,39,.28);}
.service-text-list{display:grid;grid-template-columns:1fr;gap:11px;margin:0 0 1.8rem;padding:0;list-style:none;}
.service-text-list li{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-left:2px solid rgba(201,162,39,.68);background:rgba(255,255,255,.58);color:#48443b;line-height:1.62;box-shadow:0 7px 18px rgba(38,31,13,.035);}
.service-text-check{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;margin-top:1px;border-radius:50%;background:rgba(201,162,39,.14);color:#98760e;font-size:.82rem;}
.service-content-media{position:sticky;top:105px;width:100%;overflow:hidden;box-shadow:0 24px 55px rgba(37,30,12,.14),18px 18px 0 rgba(201,162,39,.12);}
.service-content-media img{width:100%;height:100%;object-fit:cover;}
.service-detail-intro .btn-gold{margin-top:1rem!important;}
@media (min-width:1200px){.service-detail-intro .container{max-width:1120px;}
.service-text-list{grid-template-columns:repeat(2,minmax(0,1fr));}
.service-text-list li{height:100%;}}
@media (max-width:991.98px){.service-detail-intro .col-lg-7,.service-detail-intro .col-lg-9,.service-rich-text{max-width:100%;}
.service-content-media{position:relative;top:auto;max-height:none;margin-top:10px;box-shadow:0 20px 45px rgba(37,30,12,.13),10px 10px 0 rgba(201,162,39,.11);}}
@media (max-width:575.98px){.service-detail-intro{padding:58px 0;}
.service-text-heading{margin-top:1.9rem;font-size:1.18rem;}
.service-text-list li{padding:11px 12px;}}
/* =========================================================
   FORT RANCH — CORRECCIÓN DE CONTRASTE EN HERO DE SERVICIOS
   Debe permanecer al FINAL del archivo.
   ========================================================= */
.service-detail-hero .service-detail-copy{color: #ffffff !important;
    opacity: 1 !important;}
.service-detail-hero .service-detail-copy > span{display: inline-block;
    
    opacity: 1 !important;
    
    letter-spacing: .20em;}
.service-detail-hero .service-detail-copy,
.service-detail-hero .service-detail-copy *,
.service-detail-hero .service-hero-media{visibility: visible !important;}
.service-detail-hero .reveal,
.service-detail-hero .reveal:not(.visible){opacity: 1 !important;
    transform: none !important;}
@media (max-width: 575.98px){.service-detail-hero .service-detail-copy h1{color: #ffffff !important;
        -webkit-text-fill-color: #ffffff;}
.service-detail-hero .service-detail-copy p{color: #e7e7e7 !important;}}
/* =========================================================
   FORT RANCH — CORRECCIÓN DEFINITIVA DE CAPAS Y CONTRASTE
   Pegar AL FINAL de style.css
   ========================================================= */
.service-detail-hero{position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    color: #fff !important;}
.service-detail-hero::before,
.service-detail-hero::after{z-index: 0 !important;
    pointer-events: none !important;}
.service-detail-hero > .container,
.service-detail-hero .container,
.service-detail-hero .row,
.service-detail-hero .service-detail-copy,
.service-detail-hero .service-hero-media{position: relative !important;
    z-index: 3 !important;}
.service-detail-hero .service-detail-copy,
.service-detail-hero .service-detail-copy *,
.service-detail-hero .service-hero-media,
.service-detail-hero .service-hero-media *{opacity: 1 !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    visibility: visible !important;}
.service-detail-hero .service-detail-copy > span{color: #e7c33f !important;
    -webkit-text-fill-color: #e7c33f !important;
    font-weight: 800 !important;
    text-shadow: 0 2px 16px rgba(0,0,0,.7) !important;}
.service-detail-hero .service-detail-copy h1{color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
    text-shadow:
        0 7px 35px rgba(0,0,0,.82),
        0 0 24px rgba(201,162,39,.16) !important;}
.service-detail-hero .service-detail-copy p{color: #f0f0f0 !important;
    -webkit-text-fill-color: #f0f0f0 !important;
    opacity: 1 !important;
    text-shadow: 0 3px 18px rgba(0,0,0,.72) !important;}
.service-detail-page .reveal,
.service-detail-page .reveal:not(.visible),
.service-detail-page .reveal.visible{opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;}
.service-public-gallery{position: relative !important;
    isolation: isolate !important;}
.service-public-gallery::before,
.service-public-gallery::after{z-index: 0 !important;
    pointer-events: none !important;}
.service-public-gallery > .container,
.service-public-gallery .container,
.service-public-gallery .section-heading,
.service-public-gallery .row{position: relative !important;
    z-index: 2 !important;}
.service-public-gallery .section-heading > span{color: #e4bd2f !important;
    -webkit-text-fill-color: #e4bd2f !important;
    opacity: 1 !important;}
.service-public-gallery .section-heading h2{color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
    text-shadow: 0 5px 28px rgba(0,0,0,.72) !important;}
.service-public-gallery .section-heading p{color: #d7d7d7 !important;
    -webkit-text-fill-color: #d7d7d7 !important;
    opacity: 1 !important;}
.service-detail-intro,
.service-detail-intro *{opacity: 1;}
.service-detail-intro .service-rich-text,
.service-detail-intro .service-text-paragraph,
.service-detail-intro .service-text-heading,
.service-detail-intro .service-text-list li{color: #26231e !important;}
.service-detail-page{position: relative !important;
    z-index: 1 !important;}
/* =========================================================
   FORT RANCH — IMÁGENES COMPLETAS Y LAYOUT SIN SUPERPOSICIÓN
   Mantener este bloque AL FINAL del archivo.
   ========================================================= */
/* ---------- INDEX: carrusel de productos ---------- */
.marquee-product{display: flex !important;
    flex-direction: column;
    overflow: hidden;}
.marquee-product > img,
.marquee-product > .product-placeholder{display: block;
    width: 100% !important;
    height: 250px !important;
    padding: 10px;
    object-fit: contain !important;
    object-position: center;
    background:
        radial-gradient(circle at center, rgba(201,162,39,.10), transparent 52%),
        #151515;}
.marquee-product > div:last-child{position: relative;
    z-index: 2;
    flex: 1;
    padding: 22px 20px 24px;
    background: linear-gradient(180deg, #141414, #0d0d0d);}
.marquee-product h3{overflow-wrap: anywhere;}
.product-card{display: flex !important;
    flex-direction: column;}
.product-card > img,
.product-card > .product-placeholder{display: block;
    width: 100% !important;
    height: 330px !important;
    padding: 12px;
    object-fit: contain !important;
    object-position: center;
    background:
        radial-gradient(circle at center, rgba(201,162,39,.09), transparent 52%),
        #f0eadc;}
.product-card-body{flex: 1;
    background: #fff;}
.product-card h2{overflow-wrap: anywhere;}
/* ---------- FICHA INDIVIDUAL DEL PRODUCTO ---------- */
.product-detail-hero{position: relative;
    overflow: hidden;
    padding: clamp(115px, 10vw, 155px) 0 82px !important;}
.product-detail-hero .row{align-items: center !important;}
.product-detail-copy{position: relative;
    z-index: 3;
    min-width: 0;
    padding-right: clamp(0px, 2vw, 24px);}
.product-detail-hero h1{max-width: 100% !important;
    margin: 12px 0 22px;
    color: #fff;
    font-size: clamp(2.8rem, 5.1vw, 5.5rem) !important;
    line-height: .96;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;}
.product-detail-hero p{max-width: 610px;}
.product-detail-visual{position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 470px;
    padding: clamp(14px, 2vw, 24px);
    overflow: hidden;
    border: 1px solid rgba(201,162,39,.28);
    background:
        radial-gradient(circle at 50% 45%, rgba(201,162,39,.14), transparent 55%),
        #181713;
    box-shadow:
        20px 20px 0 rgba(201,162,39,.13),
        0 24px 60px rgba(0,0,0,.28);}
.product-detail-hero .product-detail-visual img{display: block;
    width: 100% !important;
    height: 440px !important;
    max-width: 100%;
    object-fit: contain !important;
    object-position: center;
    box-shadow: none !important;}
.product-detail-visual .product-placeholder{width: 100%;
    min-height: 440px;}
/* ---------- SERVICIOS: portada e imagen del contenido ---------- */
.service-hero-media,
.service-content-media{display: grid !important;
    place-items: center;
    height: auto !important;
    min-height: 0 !important;
    padding: 12px;
    background:
        radial-gradient(circle at center, rgba(201,162,39,.09), transparent 55%),
        #171612;}
.service-hero-media{aspect-ratio: 4 / 3;}
.service-content-media{aspect-ratio: 4 / 3;
    max-height: none !important;}
.service-hero-media img,
.service-content-media img{display: block;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: contain !important;
    object-position: center;}
.service-hero-media figcaption,
.service-content-media figcaption{right: 12px;
    bottom: 12px;
    left: 12px;
    max-width: calc(100% - 24px);}
/* ---------- Productos vinculados dentro de servicios ---------- */
.service-product-image{background:
        radial-gradient(circle at center, rgba(201,162,39,.10), transparent 52%),
        #eee7d9 !important;}
.service-product-image img{padding: 8px;
    object-fit: contain !important;
    object-position: center;}
.service-product-card:hover .service-product-image img{transform: scale(1.025) !important;}
.service-public-media-card img{object-fit: contain !important;
    object-position: center;
    padding: 8px;
    background: #0d0d0d;}
.service-public-media-card video{object-fit: contain !important;}
@media (max-width: 991.98px){.marquee-product > img,
    .marquee-product > .product-placeholder{height: 225px !important;}
.product-card > img,
    .product-card > .product-placeholder{height: 300px !important;}
.product-detail-hero{padding-top: 120px !important;}
.product-detail-copy{padding-right: 0;
        text-align: left;}
.product-detail-visual{min-height: 390px;
        margin-top: 8px;}
.product-detail-hero .product-detail-visual img{height: 360px !important;}
.service-hero-media,
    .service-content-media{aspect-ratio: 16 / 10;}}
@media (max-width: 575.98px){.marquee-product{width: min(285px, calc(100vw - 38px)) !important;}
.marquee-product > img,
    .marquee-product > .product-placeholder{height: 210px !important;}
.product-card > img,
    .product-card > .product-placeholder{height: 260px !important;}
.product-detail-hero h1{font-size: clamp(2.45rem, 13vw, 3.7rem) !important;}
.product-detail-visual{min-height: 330px;
        padding: 10px;
        box-shadow:
            10px 10px 0 rgba(201,162,39,.11),
            0 18px 42px rgba(0,0,0,.24);}
.product-detail-hero .product-detail-visual img{height: 310px !important;}
.service-hero-media,
    .service-content-media{aspect-ratio: auto;
        min-height: 280px !important;}
.service-hero-media img,
    .service-content-media img{height: auto !important;
        max-height: 420px;}}

/* =========================================================
   FORT RANCH — IMÁGENES COMPLETAS EN TODO EL SITIO
   ========================================================= */

.marquee-product img,
.product-card img,
.product-detail-visual img,
.service-hero-media img,
.service-content-media img,
.service-product-image img,
.service-public-media-card img,
.service-info-card > img,
.detail-card img {
    object-fit: contain !important;
    object-position: center !important;
}

.marquee-product {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.marquee-product > img,
.marquee-product > .product-placeholder {
    display: block;
    width: 100%;
    height: 250px;
    padding: 12px;
    background:
        radial-gradient(circle at center, rgba(201, 162, 39, .10), transparent 54%),
        #151515;
}

.marquee-product > div:last-child {
    flex: 1;
    position: relative;
    z-index: 2;
    background: linear-gradient(180deg, #141414, #0d0d0d);
}

.product-card {
    display: flex;
    flex-direction: column;
}

.product-card > img,
.product-card > .product-placeholder {
    display: block;
    width: 100%;
    height: 330px;
    padding: 14px;
    background:
        radial-gradient(circle at center, rgba(201, 162, 39, .09), transparent 54%),
        #f0eadc;
}

.product-card-body {
    flex: 1;
}

.product-detail-hero {
    overflow: hidden;
    padding: clamp(115px, 9vw, 150px) 0 82px;
}

.product-detail-hero .row {
    align-items: center;
}

.product-detail-copy {
    position: relative;
    z-index: 3;
    min-width: 0;
}

.product-detail-hero h1 {
    max-width: 100%;
    font-size: clamp(2.7rem, 5vw, 5.3rem);
    overflow-wrap: anywhere;
}

.product-detail-visual {
    position: relative;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 470px;
    padding: 20px;
    overflow: hidden;
    border: 1px solid rgba(201, 162, 39, .28);
    background:
        radial-gradient(circle at center, rgba(201, 162, 39, .12), transparent 58%),
        #181713;
    box-shadow:
        20px 20px 0 rgba(201, 162, 39, .13),
        0 24px 60px rgba(0, 0, 0, .28);
}

.product-detail-visual img {
    display: block;
    width: 100%;
    height: auto !important;
    max-height: 540px;
    box-shadow: none !important;
}

.service-hero-media,
.service-content-media {
    display: grid;
    place-items: center;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 12px;
    overflow: hidden;
}

.service-hero-media {
    aspect-ratio: 4 / 3;
    background:
        radial-gradient(circle at center, rgba(201, 162, 39, .09), transparent 58%),
        #15140f;
}

.service-content-media {
    aspect-ratio: 4 / 3;
    max-height: none;
    background:
        radial-gradient(circle at center, rgba(201, 162, 39, .08), transparent 58%),
        #eee7d8;
}

.service-hero-media img,
.service-content-media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.service-product-image {
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at center, rgba(201, 162, 39, .09), transparent 55%),
        #eee7d9;
}

.service-product-image img {
    width: 100%;
    height: 100%;
    padding: 9px;
}

.service-product-card:hover .service-product-image img {
    transform: scale(1.02);
}

.service-public-media-card img,
.service-public-media-card video {
    display: block;
    width: 100%;
    height: auto;
    min-height: 260px;
    max-height: 440px;
    padding: 8px;
    background: #0d0d0d;
}

.service-public-media-card video {
    object-fit: contain;
    object-position: center;
}

.service-info-card > img,
.detail-card img {
    width: 100%;
    height: 240px;
    padding: 8px;
    background: #111;
}

@media (max-width: 991.98px) {
    .marquee-product > img,
    .marquee-product > .product-placeholder {
        height: 225px;
    }

    .product-card > img,
    .product-card > .product-placeholder {
        height: 290px;
    }

    .product-detail-visual {
        min-height: 390px;
    }

    .product-detail-visual img {
        max-height: 430px;
    }

    .service-hero-media,
    .service-content-media {
        aspect-ratio: 16 / 10;
    }
}

@media (max-width: 575.98px) {
    .marquee-product {
        width: min(285px, calc(100vw - 38px));
    }

    .marquee-product > img,
    .marquee-product > .product-placeholder {
        height: 210px;
    }

    .product-card > img,
    .product-card > .product-placeholder {
        height: 260px;
    }

    .product-detail-hero h1 {
        font-size: clamp(2.35rem, 12vw, 3.65rem);
    }

    .product-detail-visual {
        min-height: 320px;
        padding: 10px;
        box-shadow:
            10px 10px 0 rgba(201, 162, 39, .11),
            0 18px 42px rgba(0, 0, 0, .24);
    }

    .product-detail-visual img {
        max-height: 360px;
    }

    .service-hero-media,
    .service-content-media {
        aspect-ratio: auto;
        min-height: 280px;
    }

    .service-hero-media img,
    .service-content-media img {
        width: 100%;
        height: auto;
        max-height: 430px;
    }

    .service-public-media-card img,
    .service-public-media-card video {
        min-height: 220px;
        max-height: 360px;
    }
}


/* =========================================================
   FORT RANCH — TARJETAS DE SERVICIOS CON FONDO E ICONOS
   ========================================================= */
.service-card {
    isolation: isolate;
    min-height: 330px;
    padding: 0;
}

.service-card.has-background {
    background-image: var(--service-card-bg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.service-card-overlay {
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(
            145deg,
            rgba(7,7,7,.94) 0%,
            rgba(8,8,8,.82) 55%,
            rgba(8,8,8,.68) 100%
        );
}

.service-card:not(.has-background) .service-card-overlay {
    background:
        radial-gradient(circle at 100% 100%, rgba(201,162,39,.10), transparent 42%);
}

.service-card-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    min-height: 330px;
    padding: 34px;
}

.service-card-inline-image {
    width: calc(100% + 68px) !important;
    height: 170px !important;
    margin: -34px -34px 24px;
    object-fit: contain !important;
    background: rgba(7,7,7,.76);
}

.service-icon {
    overflow: hidden;
    flex: 0 0 auto;
}

.service-icon .fa-solid,
.service-icon .fa-regular,
.service-icon .fa-brands {
    color: var(--accent);
    font-size: 1.45rem;
}

.service-icon-emoji {
    display: block;
    font-family: "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
    font-size: 2rem;
    line-height: 1;
}

.service-icon-image {
    display: block;
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    object-fit: contain !important;
}

.service-card-content h3 {
    color: #fff;
}

.service-card-content p {
    color: #c3c3c3 !important;
}

.service-card-content .service-more {
    margin-top: auto;
    padding-top: 18px;
}

.block-admin-preview {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px;
    border: 1px solid #ddd6c8;
    background: #faf8f2;
}

.block-admin-preview img {
    width: 54px;
    height: 54px;
    object-fit: contain;
    background: #151515;
}

.block-admin-preview.background img {
    width: 110px;
    height: 62px;
    object-fit: cover;
}

.block-admin-preview small {
    color: #706b60;
}

@media (max-width:575.98px) {
    .service-card,
    .service-card-content {
        min-height: 300px;
    }

    .service-card-content {
        padding: 27px;
    }

    .service-card-inline-image {
        width: calc(100% + 54px) !important;
        margin: -27px -27px 22px;
    }
}


/* =========================================================
   FORT RANCH — GALERÍA LIMPIA Y MODAL SIEMPRE CENTRADO
   Mantener al final del archivo.
   ========================================================= */

.service-public-gallery {
    overflow: hidden !important;
}

.service-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.service-gallery-item {
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0 !important;
    outline: 0;
    background: transparent !important;
    color: inherit;
    cursor: zoom-in;
    text-align: left;
    box-shadow: none !important;
    appearance: none;
}

.service-gallery-thumb {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    height: 300px;
    overflow: hidden;
    background: #080808;
}

.service-gallery-thumb img,
.service-gallery-thumb video {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: contain !important;
    object-position: center !important;
    background: #080808 !important;
    transition: transform .35s ease;
}

.service-gallery-item:hover .service-gallery-thumb img,
.service-gallery-item:hover .service-gallery-thumb video {
    transform: scale(1.025);
}

.service-gallery-play {
    position: absolute;
    z-index: 2;
    inset: 50% auto auto 50%;
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    border: 1px solid rgba(201,162,39,.72);
    border-radius: 50%;
    background: rgba(6,6,6,.78);
    color: #e1bb34;
    font-size: 2rem;
    transform: translate(-50%,-50%);
    backdrop-filter: blur(8px);
}

.service-gallery-zoom {
    position: absolute;
    z-index: 2;
    right: 12px;
    bottom: 12px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(6,6,6,.76);
    color: #fff;
    opacity: 0;
    transition: opacity .25s ease;
}

.service-gallery-item:hover .service-gallery-zoom,
.service-gallery-item:focus-visible .service-gallery-zoom {
    opacity: 1;
}

.service-gallery-video-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #dcb72f;
    font-size: 4rem;
    background:
        radial-gradient(circle at center, rgba(201,162,39,.18), transparent 46%),
        #080808;
}

.service-gallery-meta {
    display: grid;
    gap: 5px;
    padding: 14px 2px 0;
    background: transparent;
}

.service-gallery-meta strong {
    color: #fff;
    font-family: Cinzel, Georgia, serif;
    font-size: 1rem;
}

.service-gallery-meta small {
    color: #aaa;
    line-height: 1.55;
}

/* Quita cualquier estilo anterior de tarjeta */
.service-public-gallery .service-public-media-card,
.service-public-gallery .service-public-media-card:hover {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Modal fuera del flujo y centrado en viewport */
html.fort-modal-open,
body.fort-modal-open {
    overflow: hidden !important;
}

.fort-media-modal {
    position: fixed !important;
    z-index: 2147483000 !important;
    inset: 0 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100vw !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: 24px !important;
    overflow: hidden !important;
    transform: none !important;
}

.fort-media-modal.is-visible {
    display: flex !important;
}

.fort-media-modal-backdrop {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 !important;
    background: rgba(0,0,0,.92) !important;
    backdrop-filter: blur(8px);
}

.fort-media-modal-dialog {
    position: relative !important;
    z-index: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    width: min(1180px, 94vw) !important;
    max-width: 1180px !important;
    max-height: 92dvh !important;
    margin: auto !important;
    overflow: hidden !important;
    border: 1px solid rgba(201,162,39,.42) !important;
    background: #050505 !important;
    box-shadow: 0 35px 110px rgba(0,0,0,.78) !important;
    transform: none !important;
}

.fort-media-modal-close {
    position: absolute !important;
    z-index: 4 !important;
    top: 14px !important;
    right: 14px !important;
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.3) !important;
    background: rgba(5,5,5,.86) !important;
    color: #fff !important;
    cursor: pointer;
}

.fort-media-modal-view {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    min-height: 280px !important;
    max-height: 78dvh !important;
    overflow: hidden !important;
    background: #050505 !important;
}

.fort-media-modal-view img,
.fort-media-modal-view video,
.fort-media-modal-view iframe {
    display: block !important;
    width: 100% !important;
    height: min(78dvh, 800px) !important;
    max-width: 100% !important;
    max-height: 78dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: contain !important;
    object-position: center !important;
    background: #050505 !important;
}

.fort-media-modal-text {
    flex: 0 0 auto;
    padding: 18px 24px 22px;
    border-top: 1px solid rgba(255,255,255,.1);
    background: #0b0b0b;
}

.fort-media-modal-text h3 {
    margin: 0 0 7px;
    color: #fff;
    font-family: Cinzel, Georgia, serif;
}

.fort-media-modal-text p {
    margin: 0;
    color: #bdbdbd;
}

/* Oculta cualquier modal anterior que pudiera quedar duplicado */
.service-media-modal:not(.fort-media-modal) {
    display: none !important;
}

@media (max-width: 991.98px) {
    .service-gallery-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }

    .service-gallery-thumb {
        height: 270px;
    }
}

@media (max-width: 575.98px) {
    .service-gallery-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .service-gallery-thumb {
        height: 280px;
    }

    .fort-media-modal {
        padding: 8px !important;
    }

    .fort-media-modal-dialog {
        width: 100% !important;
        max-height: 96dvh !important;
    }

    .fort-media-modal-view,
    .fort-media-modal-view img,
    .fort-media-modal-view video,
    .fort-media-modal-view iframe {
        height: 72dvh !important;
        max-height: 72dvh !important;
    }

    .fort-media-modal-close {
        top: 9px !important;
        right: 9px !important;
    }
}


/* =========================================================
   FORT RANCH — TIPOGRAFÍA RESPONSIVE Y FOOTER MÁS LEGIBLE
   ========================================================= */

h1,h2,h3,h4,h5,h6,p,a,span,strong,small,
.product-detail-copy,.product-detail-copy *,
.service-detail-copy,.service-detail-copy *,
.catalog-hero,.catalog-hero *,
.site-footer,.site-footer * {
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
}

.product-detail-copy,
.service-detail-copy,
.product-detail-hero [class*="col-"],
.service-detail-hero [class*="col-"] {
    min-width:0;
    max-width:100%;
}

.product-detail-hero h1,
.product-detail-copy h1 {
    width:100%;
    max-width:100%!important;
    margin:12px 0 22px;
    font-size:clamp(2.35rem,4.7vw,5.15rem)!important;
    line-height:.98!important;
    letter-spacing:-.025em;
    white-space:normal!important;
    text-wrap:balance;
}

.product-detail-copy p {
    max-width:620px;
    font-size:clamp(.98rem,1.25vw,1.14rem);
    line-height:1.7;
}

.service-detail-copy h1 {
    width:100%;
    max-width:100%!important;
    font-size:clamp(2.45rem,5.3vw,5.7rem)!important;
    line-height:.98!important;
    white-space:normal!important;
    text-wrap:balance;
}

.service-detail-copy p {
    max-width:720px;
    font-size:clamp(.98rem,1.25vw,1.12rem);
}

.catalog-hero h1,
.hero-section h1,
.section-heading h2,
.cta-section h2,
.about-premium-overlay h2,
.product-card h2,
.marquee-product h3,
.service-card h3,
.service-info-card h2,
.detail-card h3 {
    max-width:100%;
    white-space:normal;
    text-wrap:balance;
    overflow-wrap:anywhere;
}

.site-footer {
    padding:78px 0 30px;
}

.site-footer .row {
    row-gap:34px;
}

.site-footer h3,
.site-footer h5 {
    margin-bottom:18px;
    line-height:1.3;
}

.site-footer p,
.site-footer a,
.site-footer div,
.site-footer span {
    line-height:1.75;
}

.footer-brand {
    align-items:flex-start;
    gap:15px;
    margin-bottom:14px;
}

.site-footer .contact-data {
    gap:14px;
    margin-top:0;
}

.site-footer .contact-data a,
.site-footer .contact-data div {
    align-items:flex-start;
    gap:10px;
    margin:0;
    color:#d2d2d2;
}

.site-footer .contact-data i {
    flex:0 0 18px;
    margin-top:4px;
}

.site-footer a[href^="tel:"],
.site-footer .footer-phone {
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:10px;
    color:#f2f2f2!important;
    font-size:clamp(1rem,1.25vw,1.12rem);
    font-weight:600;
    letter-spacing:.03em;
    line-height:1.7;
    text-decoration:none;
}

.site-footer a[href^="tel:"]:hover {
    color:var(--accent)!important;
}

.site-footer a[href^="mailto:"] {
    display:inline-flex;
    align-items:flex-start;
    gap:10px;
    margin-bottom:9px;
    line-height:1.7;
}

.site-footer .footer-address,
.site-footer .contact-data div {
    line-height:1.8;
}

.social-list {
    gap:12px;
}

.social-list a {
    min-height:44px;
    padding:10px 14px;
}

.footer-bottom {
    gap:18px;
    margin-top:50px;
    padding-top:24px;
    line-height:1.65;
}

@media (min-width:992px) and (max-width:1250px) {
    .product-detail-hero h1,
    .product-detail-copy h1 {
        font-size:clamp(2.25rem,4.3vw,4.25rem)!important;
    }
}

@media (max-width:991.98px) {
    .product-detail-hero h1,
    .product-detail-copy h1 {
        font-size:clamp(2.5rem,8vw,4.6rem)!important;
    }

    .service-detail-copy h1 {
        font-size:clamp(2.6rem,8.5vw,4.8rem)!important;
    }

    .product-detail-copy,
    .service-detail-copy {
        padding-right:0!important;
    }

    .site-footer {
        padding-top:65px;
    }
}

@media (max-width:575.98px) {
    .product-detail-hero h1,
    .product-detail-copy h1 {
        font-size:clamp(2.15rem,12vw,3.45rem)!important;
        line-height:1!important;
        letter-spacing:-.018em;
    }

    .service-detail-copy h1 {
        font-size:clamp(2.2rem,12vw,3.7rem)!important;
        line-height:1!important;
    }

    .product-detail-copy p,
    .service-detail-copy p {
        font-size:.98rem;
        line-height:1.65;
    }

    .site-footer {
        padding:55px 0 24px;
    }

    .site-footer h3,
    .site-footer h5 {
        margin-bottom:14px;
    }

    .site-footer p,
    .site-footer a,
    .site-footer div,
    .site-footer span {
        line-height:1.72;
    }

    .site-footer a[href^="tel:"] {
        font-size:1.05rem;
        letter-spacing:.04em;
        margin-bottom:11px;
    }

    .footer-bottom {
        flex-direction:column;
        gap:8px;
        margin-top:36px;
        text-align:left;
    }
}
/* Fort Ranch — información empresarial en footer */
.footer-contact-data{display:grid;gap:14px;margin-top:0}.footer-contact-data>a,.footer-contact-data>div{display:flex;align-items:flex-start;gap:11px;margin:0;color:#d5d5d5;text-decoration:none;line-height:1.75}.footer-contact-data>a:hover{color:var(--accent)}.footer-contact-data i{flex:0 0 18px;margin-top:4px;color:var(--accent)}.footer-phone{font-size:clamp(1rem,1.2vw,1.1rem);font-weight:600;letter-spacing:.025em}.footer-phone-secondary{margin-top:-5px}.footer-address>span{display:grid;gap:3px}.footer-address strong{display:block;margin-bottom:2px;color:#fff;font-weight:700}.footer-address span span{display:block;line-height:1.7}.footer-hours>span{line-height:1.7}@media(max-width:575.98px){.footer-contact-data{gap:16px}.footer-phone{font-size:1.05rem;letter-spacing:.035em}.footer-address span span,.footer-hours>span{line-height:1.75}}