/* Full stylesheet — loaded async after first paint. Extends critical.css tokens. */

/* ---------- Sections & layout ---------- */
.section{padding-block:56px}
@media(min-width:768px){.section{padding-block:88px}}
.section--tight{padding-block:40px}
@media(min-width:768px){.section--tight{padding-block:56px}}
.section--alt{background:var(--paper)}
.section--ink{background:var(--ink);color:var(--cream)}
.section--ink .section__title,.section--ink h2,.section--ink h3{color:#fff}
.section--ink .section__lead{color:rgba(251,248,242,.78)}
.section__head{max-width:680px;margin-bottom:40px}
.section__head--center{margin-inline:auto;text-align:center}
.eyebrow{display:inline-block;font-weight:700;font-size:.82rem;letter-spacing:.02em;color:var(--brass-dark);background:rgba(169,128,60,.1);padding:6px 14px;border-radius:100px;margin-bottom:16px}
.section--ink .eyebrow{color:var(--brass-light);background:rgba(199,161,92,.14)}
.section__title{font-size:clamp(1.6rem,1.4rem + 1vw,2.35rem);margin-bottom:16px}
.section__lead{color:var(--muted);font-size:1.05rem;line-height:1.85}
.content-prose{max-width:800px}
.content-prose h2{font-size:clamp(1.3rem,1.15rem+.6vw,1.7rem);margin-top:2.4em;margin-bottom:.7em}
.content-prose h2:first-child{margin-top:0}
.content-prose h3{font-size:1.15rem;margin-top:1.8em;margin-bottom:.6em}
.content-prose p{margin-bottom:1.15em;color:var(--ink-2)}
.content-prose ul,.content-prose ol{margin:0 0 1.4em;padding-inline-start:1.3em}
.content-prose ul{list-style:disc}
.content-prose ol{list-style:decimal}
.content-prose li{margin-bottom:.5em;color:var(--ink-2)}
.content-prose li::marker{color:var(--brass)}
.content-prose a{color:var(--brass-dark);text-decoration-thickness:1.5px}

/* ---------- Grids ---------- */
.grid{display:grid;gap:22px}
.grid--2{grid-template-columns:1fr}
.grid--3{grid-template-columns:1fr}
.grid--4{grid-template-columns:1fr}
@media(min-width:640px){.grid--2{grid-template-columns:repeat(2,1fr)}.grid--4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}}
.two-col{display:grid;gap:36px;align-items:start}
@media(min-width:900px){.two-col{grid-template-columns:1.1fr .9fr}}
.two-col--rev{direction:ltr}
.two-col--rev>*{direction:rtl}

/* ---------- Cards ---------- */
.card{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm)}
.service-card{display:flex;flex-direction:column;gap:14px;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:30px 26px;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;height:100%}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.service-card__icon{width:52px;height:52px;border-radius:14px;background:var(--cream-2);display:flex;align-items:center;justify-content:center;color:var(--brass-dark)}
.service-card__icon svg{width:26px;height:26px}
.service-card h3{font-size:1.15rem}
.service-card p{color:var(--muted);font-size:.95rem;flex-grow:1}
.service-card__link{font-weight:700;color:var(--brass-dark);text-decoration:none;font-size:.92rem;display:inline-flex;align-items:center;gap:6px}
.service-card__link:hover{text-decoration:underline}

.value-card{text-align:center;padding:30px 22px}
.value-card__icon{width:60px;height:60px;margin-inline:auto;border-radius:50%;background:var(--ink);color:var(--brass-light);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.value-card__icon svg{width:28px;height:28px}
.value-card h3{font-size:1.05rem;margin-bottom:8px}
.value-card p{color:var(--muted);font-size:.92rem}

.process-list{counter-reset:step;display:grid;gap:18px}
@media(min-width:768px){.process-list{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.process-list{grid-template-columns:repeat(4,1fr)}}
.process-step{position:relative;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:26px 22px}
.process-step::before{counter-increment:step;content:counter(step,arabic-indic);content:counter(step);font-size:.8rem;font-weight:800;color:#fff;background:var(--brass);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.process-step h3{font-size:1.02rem;margin-bottom:8px}
.process-step p{color:var(--muted);font-size:.9rem}

/* ---------- Nav dropdown (services sub-menu) ---------- */
.has-sub{position:relative}
.sub-nav{display:none}
@media(min-width:1024px){
  .has-sub:hover .sub-nav,.has-sub:focus-within .sub-nav{display:block;position:absolute;top:100%;inset-inline-end:0;background:var(--paper);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow-md);padding:8px;min-width:230px;z-index:50}
  .sub-nav li a{white-space:nowrap;font-size:.88rem;display:block}
}
@media(max-width:1023px){
  .sub-nav{display:block;padding-inline-start:14px;border-inline-start:2px solid var(--line-2);margin-inline-start:14px}
}

/* ---------- Breadcrumbs ---------- */
.breadcrumbs{padding-block:16px;font-size:.86rem;color:var(--muted)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.breadcrumbs a{color:var(--muted);text-decoration:none}
.breadcrumbs a:hover{color:var(--brass-dark);text-decoration:underline}
.breadcrumbs li:not(:last-child)::after{content:"/";margin-inline-start:6px;color:var(--line)}
.breadcrumbs [aria-current="page"]{color:var(--ink);font-weight:700}

/* ---------- FAQ (details/summary, no JS required) ---------- */
.faq{max-width:820px}
.faq-item{border-bottom:1px solid var(--line-2)}
.faq-item summary{list-style:none;cursor:pointer;padding:20px 4px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:700;font-size:1.02rem}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--cream-2);display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--brass-dark);transition:transform .2s ease}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{padding:0 4px 22px;color:var(--muted);line-height:1.85}

/* ---------- Gallery ---------- */
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.filter-chip{border:1px solid var(--line);background:var(--paper);padding:9px 18px;border-radius:100px;font-weight:600;font-size:.88rem;cursor:pointer}
.filter-chip[aria-pressed="true"]{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:640px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery__item{position:relative;border:0;padding:0;background:none;cursor:pointer;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/5;display:block;width:100%}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.gallery__item:hover img{transform:scale(1.05)}
.gallery__badge{position:absolute;inset-inline-start:10px;top:10px;background:rgba(15,13,10,.65);color:#fff;font-size:.72rem;font-weight:700;padding:5px 10px;border-radius:100px}
.gallery__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.gallery__play span{width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}
.gallery__cap{position:absolute;inset-inline:0;bottom:0;padding:28px 12px 10px;background:linear-gradient(0deg,rgba(10,9,7,.82),transparent);color:#fff;font-size:.82rem;font-weight:600;text-align:start;opacity:0;transition:opacity .2s ease}
.gallery__item:hover .gallery__cap,.gallery__item:focus-visible .gallery__cap{opacity:1}
.gallery--noscript{display:grid}
.no-js .gallery__item{cursor:default}

.lightbox{position:fixed;inset:0;z-index:1000;display:none;background:rgba(10,9,7,.94)}
.lightbox.is-open{display:flex;flex-direction:column}
.lightbox__bar{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;color:#fff}
.lightbox__count{font-size:.85rem;color:rgba(255,255,255,.75)}
.lightbox__close{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);border:0;color:#fff;font-size:1.4rem;cursor:pointer}
.lightbox__stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:0 60px 20px;min-height:0}
.lightbox__stage img,.lightbox__stage video{max-width:100%;max-height:70vh;border-radius:10px;object-fit:contain}
.lightbox__cap{color:#fff;text-align:center;padding:4px 20px 24px;font-size:.95rem;max-width:700px;margin-inline:auto}
.lightbox__nav{position:absolute;top:50%;translate:0 -50%;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.12);border:0;color:#fff;font-size:1.4rem;cursor:pointer}
.lightbox__nav:hover{background:rgba(255,255,255,.22)}
.lightbox__nav--prev{inset-inline-start:8px}
.lightbox__nav--next{inset-inline-end:8px}
@media(max-width:640px){.lightbox__stage{padding:0 10px 10px}.lightbox__nav{width:40px;height:40px;position:fixed;top:auto;bottom:14px}.lightbox__nav--prev{inset-inline-start:14px}.lightbox__nav--next{inset-inline-end:14px}}

/* ---------- Video block ---------- */
.video-block{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--ink);aspect-ratio:9/16;max-width:340px}
.video-block video{width:100%;height:100%;object-fit:cover}
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:rgba(251,248,242,.82);padding-block:56px 28px;margin-top:40px}
.site-footer a{color:rgba(251,248,242,.82);text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.footer-grid{display:grid;gap:36px;margin-bottom:40px}
@media(min-width:768px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.footer-brand span{font-weight:800;color:#fff}
.footer-col h4{color:#fff;font-size:.95rem;margin-bottom:16px}
.footer-col ul{display:flex;flex-direction:column;gap:10px;font-size:.92rem}
.footer-bottom{border-top:1px solid rgba(251,248,242,.14);padding-top:24px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:.82rem;color:rgba(251,248,242,.6)}
.footer-bottom ul{display:flex;gap:16px;flex-wrap:wrap}

/* ---------- Floating WhatsApp (tablet/desktop only) ---------- */
.fab-whatsapp{position:fixed;inset-inline-start:22px;bottom:22px;z-index:150;display:none;align-items:center;gap:10px;background:var(--whatsapp);color:#fff;padding:14px 20px;border-radius:100px;text-decoration:none;font-weight:700;box-shadow:var(--shadow-lg)}
@media(min-width:768px){.fab-whatsapp{display:inline-flex}}
.fab-whatsapp:hover{background:var(--whatsapp-dark)}

/* ---------- Mobile bottom action bar ---------- */
.mobile-actionbar{position:fixed;inset-inline:0;bottom:0;z-index:150;display:flex;background:var(--paper);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px}
@media(min-width:768px){.mobile-actionbar{display:none}}
.mobile-actionbar__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 10px;border-radius:12px;font-weight:700;font-size:.92rem;text-decoration:none}
.mobile-actionbar__btn--call{background:var(--ink);color:#fff}
.mobile-actionbar__btn--whatsapp{background:var(--whatsapp);color:#fff}
body.has-mobile-bar{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
@media(min-width:768px){body.has-mobile-bar{padding-bottom:0}}

/* ---------- Forms ---------- */
.form-grid{display:grid;gap:20px}
@media(min-width:640px){.form-grid--2{grid-template-columns:1fr 1fr}}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-weight:700;font-size:.92rem}
.field .hint{font-size:.8rem;color:var(--muted);font-weight:400}
.field input,.field select,.field textarea{font:inherit;padding:13px 16px;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brass);outline:none;box-shadow:0 0 0 3px rgba(169,128,60,.18)}
.field textarea{resize:vertical;min-height:120px}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#b8433b}
.field__error{color:#b8433b;font-size:.82rem;display:none}
.field.has-error .field__error{display:block}
.form-note{background:var(--cream-2);border:1px solid var(--line-2);border-radius:var(--radius-md);padding:16px 18px;font-size:.9rem;color:var(--ink-2);line-height:1.8}
.form-status{margin-top:16px;padding:14px 18px;border-radius:12px;font-size:.92rem;display:none}
.form-status.is-visible{display:block}
.form-status--error{background:#fbeceb;color:#8a2c26;border:1px solid #eeb9b5}

/* ---------- Misc components ---------- */
.badge-row{display:flex;flex-wrap:wrap;gap:10px}
.badge{display:inline-flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line-2);padding:9px 16px;border-radius:100px;font-size:.86rem;font-weight:600}
.stat-row{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(min-width:640px){.stat-row{grid-template-columns:repeat(4,1fr)}}
.stat{text-align:center}
.stat b{display:block;font-size:1.7rem;color:var(--brass-light)}
.stat span{font-size:.82rem;color:rgba(251,248,242,.7)}

.area-card{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:26px}
.area-card h3{font-size:1.08rem;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.area-card p{color:var(--muted);font-size:.92rem}

.related-list{display:flex;flex-wrap:wrap;gap:10px}
.related-list a{border:1px solid var(--line);border-radius:100px;padding:9px 18px;font-size:.88rem;font-weight:600;text-decoration:none;color:var(--ink-2)}
.related-list a:hover{background:var(--paper);border-color:var(--brass)}

.cta-banner{background:linear-gradient(135deg,var(--ink),#2c2417);color:#fff;border-radius:var(--radius-lg);padding:44px 32px;text-align:center}
.cta-banner h2{color:#fff;margin-bottom:12px}
.cta-banner p{color:rgba(251,248,242,.78);margin-bottom:26px;max-width:560px;margin-inline:auto}
.cta-banner__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

.error-page{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-block:80px}
.error-page__code{font-size:clamp(4rem,3rem + 5vw,7rem);font-weight:800;color:var(--brass-light);line-height:1}

.table-clean{width:100%;border-collapse:collapse;margin-block:1.5em}
.table-clean th,.table-clean td{padding:12px 14px;border-bottom:1px solid var(--line-2);text-align:start;font-size:.94rem}
.table-clean th{color:var(--muted);font-weight:700}

/* content-visibility for heavy below-the-fold sections to reduce rendering cost */
.cv-auto{content-visibility:auto;contain-intrinsic-size:1px 900px}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.js-hidden{display:none}
