/* Admin design system, scoped away from the public site. */
.admin-app { --a-ink:#172338; --a-muted:#66758a; --a-border:#dfe5ee; --a-blue:#2563eb; margin:0; background:#f3f5f9; color:var(--a-ink); font:14px/1.6 "Montserrat",sans-serif; }
.admin-app *, .admin-app *:before, .admin-app *:after { box-sizing:border-box; }
.admin-app [hidden] { display:none!important; }
.admin-app a { text-decoration:none; }
.admin-app :focus-visible { outline:3px solid #5c8cff; outline-offset:4px; }
.admin-app button,.admin-app input,.admin-app textarea,.admin-app select { font:inherit; }
.admin-app button { cursor:pointer; }
.admin-app button:disabled,.admin-app input:disabled { cursor:default; opacity:.6; }
.admin-sidebar { position:fixed; inset:0 auto 0 0; width:248px; background:#101827; color:#b7c3d6; padding:30px 20px; display:flex; flex-direction:column; z-index:50; overflow-y:auto; }
.admin-brand { display:flex; align-items:center; gap:15px; color:#fff; font-size:20px; font-weight:800; letter-spacing:.03em; }
.admin-brand small { display:block; color:#8999b2; font-size:9px; letter-spacing:.15em; font-weight:500; margin-top:2px; }
.admin-nav-label { font-size:9px; text-transform:uppercase; letter-spacing:.1em; color:#8292ab; margin:46px 10px 15px; }
.admin-nav-link { display:flex; gap:14px; align-items:center; color:#b7c3d6; padding:13px 15px; border-radius:12px; margin-bottom:7px; font-weight:600; font-size:13px; }
.admin-nav-link i { width:18px; text-align:center; }
.admin-nav-link:hover { background:#1b2940; color:#fff; }
.admin-nav-link.is-active { background:#2563eb; color:#fff; box-shadow:0 7px 20px rgb(37 99 235 / 20%); }
.admin-sidebar-bottom { margin-top:auto; padding:40px 10px 0; font-size:11px; }
.admin-sidebar-bottom p { line-height:1.9; margin:0 0 22px; }.admin-sidebar-bottom strong { color:#e4c784; font-weight:500; }
.admin-sidebar-bottom a { display:block; color:#bdcbe1; padding:10px 0; }
.admin-workspace { margin-left:248px; min-width:0; }
.admin-topbar { min-height:88px; display:flex; align-items:center; gap:20px; padding:18px 40px; border-bottom:1px solid var(--a-border); background:#fff; }
.admin-topbar p { font-size:15px; font-weight:750; margin:2px 0 0; }.admin-eyebrow { margin:0 0 12px; color:#6b7b93; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.admin-topbar .admin-eyebrow { font-size:8px; }
.admin-topbar nav { display:flex; align-items:center; gap:25px; margin-left:auto; font-size:12px; color:var(--a-muted); }
.admin-content { max-width:1600px; padding:40px; margin:auto; min-height:calc(100vh - 160px); }
.admin-footer { padding:20px 40px; font-size:10px; color:var(--a-muted); }
.admin-button,.admin-app input[type=submit] { display:inline-flex; align-items:center; justify-content:center; padding:12px 20px; background:var(--a-blue); color:#fff; border:1px solid transparent; border-radius:10px; font-size:12px; font-weight:700; cursor:pointer; min-height:44px; }
.admin-button:hover,.admin-app input[type=submit]:hover { background:#1d4ed8; }.admin-button--secondary { background:#fff; border-color:var(--a-border); color:var(--a-ink); }.admin-button--secondary:hover { background:#eef3fa; }
.admin-app h1 { font-size:clamp(23px,2.2vw,32px); line-height:1.3; font-weight:800; letter-spacing:-.035em; margin:0 0 12px; text-align:left; }
.admin-app h2 { font-size:19px; line-height:1.4; font-weight:750; margin:0 0 12px; }
.admin-app h3 { line-height:1.5; }.admin-page-heading { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:30px; }.admin-page-heading p:not(.admin-eyebrow) { color:var(--a-muted); margin:0; font-size:13px; }
.admin-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-bottom:28px; }
.admin-stat { padding:24px; border:1px solid var(--a-border); border-radius:16px; background:#fff; color:var(--a-ink); }.admin-stat > span { display:flex; justify-content:space-between; gap:10px; font-size:12px; color:var(--a-muted); }.admin-stat i { color:#6085d0; }.admin-stat strong { display:block; font-size:34px; margin:15px 0 5px; line-height:1.1; }.admin-stat small { color:var(--a-blue); font-size:10px; }
.admin-dashboard-grid { display:grid; grid-template-columns:minmax(0,2.3fr) minmax(240px,1fr); gap:24px; }.admin-panel { min-width:0; background:#fff; border:1px solid var(--a-border); border-radius:16px; padding:24px; }.admin-panel-heading { display:flex; justify-content:space-between; align-items:start; gap:15px; margin-bottom:20px; }.admin-panel-heading p { color:var(--a-muted); font-size:11px; margin:0; }.admin-panel-heading a { color:var(--a-blue); font-size:11px; white-space:nowrap; }
.admin-checklist { background:#edf2fb; align-self:start; }.admin-checklist h2 { font-size:22px; }.admin-checklist ul { list-style:none; padding:0; margin:25px 0; }.admin-checklist li { margin:16px 0; padding-left:20px; position:relative; font-size:12px; color:#536580; }.admin-checklist li:before { content:"✓"; position:absolute; left:0; color:var(--a-blue); }.admin-checklist hr { border:0; border-top:1px solid var(--a-border); }.admin-checklist > p:not(.admin-eyebrow),.admin-checklist > a { font-size:11px; margin-top:18px; display:block; }
.admin-app table { width:100%; border-collapse:collapse; background:#fff; font-size:12px; }.admin-app th { text-align:left; background:#f7f9fc; color:var(--a-muted); font-size:10px; font-weight:700; padding:13px 12px; }.admin-app td { padding:14px 12px; border-bottom:1px solid #edf0f5; }.admin-app tbody tr:hover { background:#fafcff; }.admin-table-scroll { overflow-x:auto; }.admin-product-cell { display:flex; align-items:center; gap:12px; min-width:190px; }.admin-product-cell img { width:42px; height:55px; object-fit:cover; border-radius:8px; }.admin-product-cell strong { display:block; max-width:230px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }.admin-product-cell small { display:block; color:var(--a-muted); font-size:9px; }.admin-text-link { color:var(--a-blue); font-weight:650; font-size:12px; }
.admin-badge { display:inline-flex; align-items:center; padding:4px 9px; border-radius:20px; background:#e6f6ee; color:#21724c; font-size:9px; font-weight:650; white-space:nowrap; }.admin-badge--muted { background:#edf0f5; color:#657389; }.admin-badge--gold { background:#fff4db; color:#8d6818; }
.admin-flash { border:1px solid #b8e1cb; background:#eaf8f0; color:#246440; padding:15px 20px; border-radius:12px; margin-bottom:24px; font-size:12px; }.admin-flash--error { border-color:#f0c4c4; background:#fff1f1; color:#992e35; }
.admin-app form:not(.button_to) { max-width:1150px; }.admin-app form .bg-white { border:1px solid var(--a-border); border-radius:16px; box-shadow:none; }.admin-app form label { font-size:12px; font-weight:600; }.admin-app form h3 { font-size:15px; border-bottom:1px solid #edf0f5; padding-bottom:14px; }.admin-app input:not([type=checkbox]):not([type=radio]):not([type=submit]),.admin-app select,.admin-app textarea { min-width:0; border:1px solid #d3dce9; border-radius:9px; padding:11px 13px; background:#fff; color:var(--a-ink); min-height:44px; font-size:12px; }.admin-app textarea { min-height:110px; resize:vertical; }.admin-app input[type=checkbox] { width:18px; height:18px; accent-color:var(--a-blue); }.admin-app select[multiple] { min-height:135px; }.admin-app input[type=file] { border-style:dashed!important; background:#f7f9fd!important; width:100%; }.admin-app input[type=file]::file-selector-button { border:0; border-radius:6px; background:#e6edfb; color:#2453ad; padding:8px 10px; margin-right:12px; cursor:pointer; }.admin-app form img,.admin-app form video { border-radius:12px; }.admin-app form .space-y-10 > * + * { margin-top:24px; }.admin-app form .text-sm.text-gray-600,.admin-app form .text-sm.text-gray-500 { font-size:11px; line-height:1.8; }.admin-app .button_to { display:inline-block; }
.admin-form-nav { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0; }.admin-form-nav a { padding:9px 14px; background:white; border:1px solid var(--a-border); border-radius:9px; color:#586b87; font-size:11px; }.admin-form-section { scroll-margin-top:20px; }.admin-form-actions { position:sticky; bottom:16px; padding:18px 20px; background:rgb(255 255 255 / 96%); border:1px solid var(--a-border); border-radius:14px; box-shadow:0 8px 25px rgb(23 35 56 / 8%); gap:16px; flex-wrap:wrap; z-index:10; }
.admin-catalog-toolbar { display:flex; align-items:end; gap:14px; flex-wrap:wrap; padding:20px; background:#fff; border:1px solid var(--a-border); border-radius:14px; margin-bottom:22px; }.admin-catalog-toolbar label { display:flex; flex-direction:column; gap:6px; font-size:10px; color:var(--a-muted); }.admin-catalog-toolbar label:first-child { flex:1; min-width:180px; }.admin-catalog-toolbar input,.admin-catalog-toolbar select { width:100%; }.admin-catalog-status { font-size:11px; color:var(--a-muted); margin-bottom:18px; }.admin-group { margin-bottom:28px; border:1px solid var(--a-border); border-radius:15px; background:#fff; overflow:hidden; }.admin-group > summary { display:flex; align-items:center; justify-content:space-between; padding:18px 22px; cursor:pointer; font-weight:700; font-size:14px; background:#fafbfe; list-style:none; }.admin-group > summary:after { content:"⌄"; }.admin-group > summary small { font-weight:500; color:var(--a-muted); margin-left:12px; font-size:10px; }.admin-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; padding:20px; }.admin-product-card { position:relative; min-width:0; border:1px solid var(--a-border); border-radius:12px; overflow:hidden; background:#fff; }.admin-product-cover { position:relative; aspect-ratio:3/4; overflow:hidden; background:#edf1f7; }.admin-product-cover img { width:100%; height:100%; object-fit:cover; display:block; }.admin-product-cover > label { position:absolute; left:10px; top:10px; display:grid; place-items:center; width:30px; height:30px; background:#fff; border-radius:8px; }.admin-product-cover > .admin-badge { position:absolute; right:10px; top:12px; }.admin-product-card-body { padding:14px; }.admin-product-card h3 { font-size:12px; font-weight:700; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.admin-product-card p { margin:5px 0 10px; font-size:10px; color:var(--a-muted); }.admin-card-actions { display:flex; align-items:center; gap:14px; padding-top:12px; border-top:1px solid #edf0f5; font-size:10px; }.admin-card-actions .admin-drag-handle { margin-left:auto; cursor:grab; color:#8997ad; padding:4px; }.admin-card-actions a:last-of-type { color:#ad3542; }.admin-bulk { position:sticky; bottom:15px; display:flex; flex-wrap:wrap; gap:12px; padding:18px; border:1px solid #c7d7f2; border-radius:14px; background:#fff; box-shadow:0 8px 28px rgb(23 35 56 / 15%); z-index:20; }.admin-bulk label { font-size:10px; display:flex; flex-direction:column; gap:5px; flex:1; min-width:120px; }.admin-bulk .admin-button { align-self:end; }.admin-empty { padding:45px 20px; text-align:center; color:var(--a-muted); }.admin-empty h3 { font-size:20px; font-weight:750; color:var(--a-ink); }.admin-empty p { margin:15px 0 24px; font-size:12px; }
.admin-menu-button { display:none; }.admin-backdrop { display:none; }.admin-toast { position:fixed; bottom:25px; left:50%; transform:translateX(-50%); background:#1b7250; color:#fff; border-radius:30px; padding:12px 22px; z-index:100; font-size:12px; }.admin-skip { position:fixed; top:10px; left:260px; transform:translateY(-200%); z-index:100; background:#fff; padding:10px; }.admin-skip:focus { transform:none; }
@media(max-width:1250px) { .admin-content { padding:28px; }.admin-dashboard-grid { grid-template-columns:1fr; }.admin-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.admin-topbar { padding-inline:28px; } }
@media(max-width:900px) { .admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-sidebar { width:210px; }.admin-workspace { margin-left:210px; } }
@media(max-width:700px) { .admin-app[data-enhanced] .admin-sidebar { transform:translateX(-100%); transition:transform .2s; width:260px; }.admin-app[data-enhanced] .admin-sidebar.is-open { transform:none; }.admin-sidebar { position:relative; width:100%; padding:20px; }.admin-sidebar nav { display:flex; flex-wrap:wrap; gap:5px; }.admin-nav-link { padding:10px; margin:0; }.admin-nav-label,.admin-sidebar-bottom { display:none; }.admin-workspace { margin-left:0; }.admin-app[data-enhanced] .admin-menu-button { display:block; border:1px solid var(--a-border); border-radius:8px; width:42px; height:42px; }.admin-app[data-enhanced] .admin-sidebar { position:fixed; }.admin-app[data-enhanced] .admin-sidebar nav { display:block; }.admin-app[data-enhanced] .admin-nav-label,.admin-app[data-enhanced] .admin-sidebar-bottom { display:block; }.admin-backdrop:not([hidden]) { display:block; position:fixed; inset:0; background:rgb(5 13 25 / 50%); z-index:40; }.admin-topbar { padding:15px 18px; gap:12px; }.admin-topbar nav { gap:12px; }.admin-topbar nav > a:first-child { display:none; }.admin-topbar .admin-button { font-size:10px; padding:10px 12px; }.admin-content { padding:25px 18px; }.admin-page-heading { align-items:start; flex-direction:column; }.admin-stat { padding:18px; }.admin-product-grid { gap:12px; padding:12px; }.admin-panel { padding:18px; }.admin-product-card-body { padding:10px; }.admin-card-actions { gap:8px; }.admin-app form .flex { flex-wrap:wrap; }.admin-form-actions { bottom:8px; padding:14px; }.admin-app form .w-1\/2,.admin-app form .w-1\/4 { width:100%; }.admin-footer { padding:20px 18px; }.admin-skip { left:10px; } }
@media(prefers-reduced-motion:reduce) { .admin-app * { transition:none!important; scroll-behavior:auto!important; } }
.admin-stock-row { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto; gap:15px; align-items:end; margin-bottom:18px; }
.admin-stock-row input:not([type=hidden]) { width:100%; }.admin-stock-row label { display:block; margin-bottom:7px; }.admin-stock-remove { color:#ab3544; padding:12px 0; font-size:11px; }
.admin-logo-card > img { border-radius:10px; }.admin-slider-row { flex-wrap:wrap; }.admin-app .field_with_errors input { border-color:#c44c54!important; }.admin-app .field_with_errors { display:contents; }
@media(max-width:700px) { .admin-stock-row { grid-template-columns:minmax(0,2fr) minmax(0,1fr); }.admin-stock-remove { grid-column:1/-1; text-align:left; padding-top:0; } }
.contact-setting-row { display:grid; grid-template-columns:minmax(100px,1fr) minmax(150px,2fr) 85px auto auto; gap:14px; align-items:end; padding:20px 0; border-top:1px solid var(--a-border); margin-bottom:15px; }
.contact-setting-row > div > label { display:block; margin-bottom:6px; }
@media(max-width:1000px) { .contact-setting-row { grid-template-columns:minmax(0,1fr) minmax(0,2fr); }.contact-setting-row > div:nth-of-type(3) { max-width:100px; } }
@media(max-width:560px) { .contact-setting-row { grid-template-columns:1fr; } }
.floating-contact { --floating-bottom:calc(24px + env(safe-area-inset-bottom,0px)); position:fixed; right:24px; bottom:var(--floating-bottom); z-index:50; }
.floating-contact__top,.floating-contact__whatsapp { position:absolute; bottom:0; right:0; display:grid; place-items:center; width:48px; height:48px; border:0; border-radius:50%; color:#fff!important; text-decoration:none; box-shadow:0 5px 16px rgb(0 0 0 / 22%); cursor:pointer; }
.floating-contact__whatsapp { background:#22c55e; font-size:23px; transition:bottom .4s ease,background .2s; }
.floating-contact__whatsapp:hover { background:#16a34a; }
.floating-contact__top { background:#080c13; font-size:19px; opacity:0; visibility:hidden; transform:translateY(24px); pointer-events:none; transition:opacity .4s ease,transform .4s ease,visibility .4s; }
.floating-contact__top:hover { background:#1f2937; }
.floating-contact.is-scrolled .floating-contact__top { opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
.floating-contact.is-scrolled .floating-contact__whatsapp { bottom:56px; }
.floating-contact :focus-visible { outline:3px solid #f0d187; outline-offset:4px; }
@media(prefers-reduced-motion:reduce) { .floating-contact__top,.floating-contact__whatsapp { transition:none; } }
/* Home-only design system. Existing catalog and admin styles are unchanged. */
.home-page { --home-bg:#080c13; --home-panel:#111722; --home-text:#f5f6f8; --home-muted:#a6adba; --home-gold:#f0d187; --home-blue:#2563eb; --home-border:#28303c; background:var(--home-bg); color:var(--home-text); font-family:"Montserrat",sans-serif; overflow:clip; }
.home-page *, .home-page *::before, .home-page *::after { box-sizing:border-box; }
.home-page a { color:inherit; text-decoration:none; }
.home-page button { font:inherit; cursor:pointer; }
.home-page :focus-visible { outline:3px solid var(--home-gold); outline-offset:6px; }
.home-container { width:min(1420px,calc(100% - 112px)); margin-inline:auto; }
.home-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.home-skip-link { position:fixed; top:12px; left:12px; padding:12px 20px; background:var(--home-text); color:var(--home-bg)!important; z-index:100; transform:translateY(-180%); }
.home-skip-link:focus { transform:none; }
.home-header { position:relative; z-index:30; background:var(--home-bg); }
.home-header__inner { min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:32px; border-bottom:1px solid var(--home-border); }
.home-brand { display:inline-flex; align-items:center; gap:22px; font-size:19px; font-weight:750; letter-spacing:.03em; }
.home-brand img { width:40px; height:40px; }
.home-nav { display:flex; align-items:center; gap:clamp(24px,3vw,52px); font-size:15px; color:var(--home-muted); }
.home-nav a:hover, .home-text-link:hover { color:var(--home-gold); }
.home-nav .home-nav__contact { margin-left:clamp(0px,7vw,110px); }
.home-menu-toggle { display:none; border:1px solid var(--home-border); border-radius:10px; background:var(--home-panel); color:var(--home-text); width:44px; height:44px; }
.home-button { min-height:58px; display:inline-flex; align-items:center; justify-content:center; gap:16px; padding:17px 26px; border:1px solid transparent; border-radius:999px; background:var(--home-blue); color:#fff!important; font-size:15px; font-weight:700; line-height:1.4; text-align:center; transition:transform .2s ease,background .2s ease,border-color .2s ease; }
.home-button:hover { background:#1d4ed8; transform:translateY(-2px); }
.home-button--outline { background:rgb(17 23 34 / 65%); border-color:#4a5260; }
.home-button--outline:hover { background:#1a2434; border-color:var(--home-gold); }
.home-eyebrow { margin:0 0 24px; color:var(--home-gold); font-size:11px; font-weight:750; letter-spacing:.08em; line-height:1.7; text-transform:uppercase; }
.home-hero { position:relative; isolation:isolate; min-height:790px; }
.home-hero__backdrop { position:absolute; inset:0; overflow:hidden; z-index:-2; pointer-events:none; }
.home-hero__backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--home-bg) 4%,rgb(8 12 19 / 97%) 30%,rgb(8 12 19 / 55%) 55%,rgb(8 12 19 / 4%) 80%),linear-gradient(0deg,var(--home-bg),transparent 28%); }
.home-hero__slide { position:absolute; inset:0; opacity:0; transition:opacity 1s ease; }
.home-hero__slide.is-active { opacity:1; }
.home-hero__slide img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 25%; }
.home-hero__inner { min-height:790px; position:relative; display:grid; grid-template-columns:1.05fr 1fr; grid-template-rows:1fr auto; column-gap:40px; padding-top:92px; }
.home-hero__copy { position:relative; z-index:2; align-self:start; padding-bottom:42px; }
.home-hero h1 { margin:0; font-size:clamp(38px,4.1vw,64px); font-weight:800; line-height:1.25; letter-spacing:-.045em; }
.home-hero h1 span { color:var(--home-gold); }
.home-hero__lead { margin:40px 0 0; font-size:clamp(17px,1.5vw,23px); line-height:1.8; }
.home-hero__note { margin:25px 0 34px; color:var(--home-muted); font-size:15px; line-height:1.8; }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.home-hero__paths { display:flex; flex-wrap:wrap; gap:28px; margin-top:52px; padding-top:26px; border-top:1px solid var(--home-border); font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.home-hero__paths a:first-child, .home-hero__paths a:hover { color:var(--home-gold); }
.home-hero__hint { color:var(--home-muted); font-size:12px; margin:20px 0 0; line-height:1.8; }
.home-hero__art { align-self:end; display:flex; justify-content:center; align-items:center; gap:clamp(14px,1.7vw,27px); padding:0 0 70px; }
.home-hero__print { display:block; flex:1 1 0; max-width:155px; filter:drop-shadow(0 18px 25px rgb(0 0 0 / 50%)); transition:transform .35s ease; }
.home-hero__print--center { max-width:205px; flex-grow:1.32; }
.home-hero__print img { display:block; width:100%; height:auto; aspect-ratio:7 / 10; object-fit:cover; border:0; background:transparent; }
.home-hero__print:hover { transform:translateY(-8px); }
.home-hero__bottom { grid-column:1 / -1; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:32px 0 35px; }
.home-carousel-controls { display:flex; align-items:center; gap:12px; }
.home-slide-number { font-size:12px; color:var(--home-gold); font-weight:700; white-space:nowrap; }
.home-slide-number__total { color:var(--home-muted); font-weight:400; margin-left:10px; }
.home-carousel-progress { width:115px; height:2px; background:#3d434d; margin:0 20px; }
.home-carousel-progress > span { display:block; width:0; height:100%; background:var(--home-gold); }
.home-icon-button { display:inline-grid; place-items:center; flex-shrink:0; width:44px; height:44px; border:1px solid #525968; border-radius:50%; background:transparent; color:var(--home-text); line-height:1; transition:background .2s ease,border-color .2s ease; }
.home-icon-button:hover { background:var(--home-panel); border-color:var(--home-gold); }
.home-discover { display:flex; align-items:center; gap:36px; font-size:12px; margin-left:auto; }
.home-discover span { color:var(--home-gold); font-size:24px; }
.home-values { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:24px; border-block:1px solid var(--home-border); color:var(--home-muted); font-size:10px; font-weight:750; letter-spacing:.03em; text-transform:uppercase; }
.home-featured { padding-top:100px; scroll-margin-top:35px; }
.home-section-heading { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-bottom:28px; }
.home-section-heading h2, .home-design h2 { margin:0; font-size:clamp(30px,3vw,43px); font-weight:750; line-height:1.3; letter-spacing:-.035em; }
.home-section-heading > div > p:last-child { margin-top:18px; color:var(--home-muted); font-size:16px; line-height:1.8; }
.home-gallery-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:26px; }
.home-filters { display:flex; flex-wrap:wrap; gap:12px; }
.home-filter { background:transparent; color:var(--home-muted); border:1px solid transparent; border-radius:999px; padding:11px 20px; font-size:12px!important; transition:color .2s ease,background .2s ease; }
.home-filter[aria-pressed="true"] { background:var(--home-gold); color:var(--home-bg); font-weight:700; }
.home-filter:hover { border-color:var(--home-gold); }
.home-gallery-controls { display:flex; gap:12px; }
.home-product-rail { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 72px) / 4); gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#414a5a var(--home-bg); padding:6px 2px 22px; }
.home-card { min-width:0; scroll-snap-align:start; }
.home-card[hidden], .home-empty[hidden] { display:none; }
.home-card__link { display:block; }
.home-card__image { position:relative; display:flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:0; background:transparent; overflow:hidden; aspect-ratio:334 / 454; }
.home-card__image img { display:block; width:100%; height:100%; object-fit:cover; filter:drop-shadow(0 8px 12px rgb(0 0 0 / 25%)); transition:transform .45s ease; }
.home-card__view { position:absolute; inset:auto 20px 18px; padding:12px 15px; background:rgb(8 12 19 / 88%); border:1px solid rgb(240 209 135 / 35%); border-radius:8px; display:flex; justify-content:space-between; font-size:12px; opacity:0; transform:translateY(8px); transition:opacity .25s ease,transform .25s ease; }
.home-card__link:hover .home-card__view, .home-card__link:focus-visible .home-card__view { opacity:1; transform:none; }
.home-card__link:hover img { transform:scale(1.035); }
.home-card h3 { margin:22px 0 8px; font-size:17px; font-weight:750; line-height:1.5; }
.home-card p { color:var(--home-muted); font-size:12px; margin:0 0 22px; }
.home-card__details { color:var(--home-gold); font-size:12px; display:flex; gap:12px; align-items:center; }
.home-empty { padding:40px 0; color:var(--home-muted); line-height:1.8; }
.home-empty a { color:var(--home-gold); }
.home-design { margin-top:65px; padding-top:65px; border-top:1px solid var(--home-border); scroll-margin-top:35px; }
.home-design__panel { display:grid; grid-template-columns:.38fr .62fr; align-items:center; gap:60px; padding:56px; background:#101925; border:1px solid #29374b; border-radius:22px; }
.home-design__mark { display:flex; flex-direction:column; align-items:center; gap:26px; }
.home-design__mark img { width:min(100%,250px); height:auto; filter:brightness(0) saturate(100%) invert(86%) sepia(33%) saturate(558%) hue-rotate(347deg) brightness(101%) contrast(88%); }
.home-design__mark span { color:var(--home-muted); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.home-design__copy > p:not(.home-eyebrow) { margin:22px 0 30px; color:var(--home-muted); font-size:15px; line-height:1.8; }
.home-text-link { font-size:13px; line-height:1.8; padding:12px 0; }
.home-footer { padding-top:80px; padding-bottom:28px; }
.home-footer__contact { display:flex; justify-content:space-between; align-items:center; gap:32px; padding-bottom:46px; }
.home-footer__contact > div { display:flex; align-items:center; gap:25px; }
.home-footer__contact p { font-size:clamp(16px,1.7vw,24px); line-height:1.5; font-weight:700; margin:0; }
.home-footer__bottom { display:flex; justify-content:space-between; gap:25px; padding-top:28px; border-top:1px solid var(--home-border); color:var(--home-muted); font-size:10px; line-height:1.8; }
.home-footer__bottom p { margin:0; }
.home-footer__bottom nav { display:flex; flex-wrap:wrap; gap:28px; }
.home-page[data-reveal-ready] [data-home-reveal] { opacity:0; transform:translateY(20px); transition:opacity .65s ease,transform .65s ease; }
.home-page[data-reveal-ready] [data-home-reveal].is-revealed { opacity:1; transform:none; }
@media (min-width:1600px) { .home-hero__inner { min-height:860px; padding-top:110px; } }
@media (max-width:1100px) {
 .home-container { width:calc(100% - 64px); } .home-nav { gap:24px; font-size:13px; } .home-nav__contact { margin-left:0; }
 .home-hero__inner { min-height:730px; padding-top:70px; } .home-hero__art { gap:14px; } .home-hero__print { max-width:125px; } .home-hero__print--center { max-width:165px; }
 .home-product-rail { grid-auto-columns:calc((100% - 48px)/3); } .home-design__panel { padding:40px; gap:40px; }
}
@media (max-width:800px) {
 .home-container { width:calc(100% - 40px); } .home-header { height:auto; min-height:76px; } .home-header__inner { min-height:76px; } .home-nav { gap:18px; } .home-nav > a:nth-child(3) { display:none; }
 .home-hero__inner { grid-template-columns:1fr; min-height:auto; padding-top:64px; } .home-hero__copy { max-width:600px; } .home-hero__copy h1 { font-size:clamp(40px,7vw,60px); }
 .home-hero__backdrop:after { background:linear-gradient(90deg,rgba(8,12,19,.95),rgba(8,12,19,.45)),linear-gradient(0deg,#080c13,transparent 80%); }
 .home-hero__art { justify-content:center; padding:48px 0 40px; } .home-hero__print { max-width:145px; } .home-hero__print--center { max-width:185px; }
 .home-hero__bottom { padding:24px 0; } .home-featured { padding-top:72px; } .home-section-heading { align-items:flex-start; gap:24px; } .home-section-heading > .home-button { font-size:11px; }
 .home-product-rail { grid-auto-columns:calc((100% - 24px)/2); } .home-design__panel { grid-template-columns:1fr 2fr; padding:32px; gap:24px; } .home-design__copy h2 { font-size:32px; }
}
@media (max-width:560px) {
 .home-header__inner { flex-wrap:wrap; } .home-brand { font-size:18px; } .home-brand img { width:32px; height:32px; }
 .home-nav { width:100%; flex-wrap:wrap; padding:16px 0; } .home-nav > a:nth-child(3) { display:block; } .home-page[data-enhanced] .home-nav { display:none; } .home-page[data-enhanced] .home-nav.is-open { display:flex; }
 .home-page[data-enhanced] .home-menu-toggle { display:flex; align-items:center; justify-content:center; } .home-nav__contact { width:100%; }
 .home-hero__inner { padding-top:46px; } .home-eyebrow { font-size:9px; letter-spacing:1.5px; } .home-hero__copy h1 { font-size:40px; letter-spacing:-1.5px; } .home-hero__lead { font-size:17px; }
 .home-actions { gap:12px; flex-wrap:wrap; } .home-hero__copy .home-button { width:100%; justify-content:center; } .home-hero__paths { gap:18px; font-size:11px; } .home-hero__hint { font-size:10px; }
 .home-hero__art { gap:10px; padding-top:36px; } .home-hero__print { max-width:28%; } .home-hero__print--center { max-width:35%; }
 .home-hero__bottom { gap:20px; flex-wrap:wrap; } .home-carousel-progress { width:60px; } .home-discover { font-size:10px; } .home-values { gap:12px; font-size:9px; }
 .home-featured { padding-top:56px; } .home-section-heading { flex-direction:column; } .home-section-heading h2 { font-size:31px; } .home-gallery-toolbar { gap:12px; } .home-filters { gap:4px; } .home-filter { font-size:10px; padding:10px 12px; }
 .home-gallery-controls { gap:6px; } .home-product-rail { grid-auto-columns:78%; gap:16px; } .home-card__image { padding:0; }
 .home-design__panel { grid-template-columns:1fr; padding:28px; } .home-design__mark img { width:100px; height:100px; } .home-design__mark { align-items:flex-start; } .home-design__copy h2 { font-size:31px; } .home-design__copy .home-button { width:100%; }
 .home-footer__contact,.home-footer__bottom { flex-direction:column; align-items:flex-start; } .home-footer__contact { gap:24px; } .home-footer__contact p { font-size:18px; } .home-footer__bottom nav { gap:20px; }
}
@media (prefers-reduced-motion:reduce) {
 html:has(.home-page) { scroll-behavior:auto; } .home-page *, .home-page *:before, .home-page *:after { transition:none!important; animation:none!important; scroll-behavior:auto!important; }
 .home-page[data-reveal-ready] [data-home-reveal] { opacity:1; transform:none; }
}
@media (min-width:561px) and (max-width:800px) {
 .home-header__inner { flex-wrap:wrap; }
 .home-nav { width:100%; flex-wrap:wrap; padding:16px 0; }
 .home-page[data-enhanced] .home-nav { display:none; }
 .home-page[data-enhanced] .home-nav.is-open { display:flex; }
 .home-page[data-enhanced] .home-menu-toggle { display:flex; align-items:center; justify-content:center; }
}

/* Animated artwork above the hero backgrounds. */
.home-hero__art { position:relative; min-width:0; height:490px; padding:0; align-self:center; }
.home-hero__art .home-hero__print { position:absolute; left:50%; top:50%; width:31%; max-width:205px; opacity:0; visibility:hidden; transform:translate(-50%,-50%) scale(.78); filter:none; transition:transform .75s cubic-bezier(.22,.61,.36,1),opacity .75s ease,visibility .75s; }
.home-hero__art .home-hero__print.is-left { opacity:1; visibility:visible; transform:translate(-150%,-50%) scale(.83); z-index:1; }
.home-hero__art .home-hero__print.is-center { opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1.08); z-index:3; }
.home-hero__art .home-hero__print.is-right { opacity:1; visibility:visible; transform:translate(50%,-50%) scale(.83); z-index:1; }
.home-hero__art .home-hero__print img { border:0; object-fit:cover; }
.home-card__image img { filter:none; }
@media (max-width:800px) { .home-hero__art { height:390px; } }
@media (max-width:560px) { .home-hero__art { height:290px; } .home-hero__art .home-hero__print { width:32%; max-width:none; } }
/* Shared artwork treatment: edge-to-edge photos with softly rounded corners. */
.home-hero__print, .home-hero__print img, .home-card__image, .home-card__image img { border-radius:14px; }
.home-hero__print { overflow:hidden; }
.cuadros-breadcrumb { display:flex; gap:16px; padding-top:35px; color:var(--home-muted); font-size:12px; }
.cuadros-intro { padding:65px 0 55px; }
.cuadros-intro h1 { margin:0; font-size:clamp(34px,4.1vw,60px); line-height:1.3; font-weight:800; letter-spacing:-.035em; }
.cuadros-intro h1 span { color:var(--home-gold); }
.cuadros-intro > p:last-child { margin:25px 0 0; font-size:clamp(16px,1.4vw,20px); color:var(--home-muted); line-height:1.8; }
.cuadros-collections { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.cuadros-collection { position:relative; min-height:485px; isolation:isolate; border-radius:18px; overflow:hidden; }
.cuadros-collection__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .7s ease; }
.cuadros-collection:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,12,19,.75),rgba(8,12,19,.12)),linear-gradient(0deg,rgba(8,12,19,.8),transparent 75%); z-index:-1; }
.cuadros-collection:hover .cuadros-collection__image { transform:scale(1.025); }
.cuadros-collection__content { min-height:485px; padding:36px; display:flex; flex-direction:column; justify-content:space-between; }
.cuadros-collection h2 { margin:0; font-size:clamp(29px,3vw,44px); font-weight:800; letter-spacing:-.03em; }
.cuadros-collection__content > div > p { font-size:16px; line-height:1.8; margin:16px 0 30px; }
.cuadros-steps { padding-top:65px; }
.cuadros-steps h2 { margin:0; font-size:clamp(25px,2.4vw,34px); font-weight:750; }
.cuadros-steps ol { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; list-style:none; margin:35px 0 0; padding:0; }
.cuadros-steps li { border-top:1px solid var(--home-border); padding-top:25px; }
.cuadros-steps li > span { font-size:13px; color:var(--home-gold); font-weight:700; }
.cuadros-steps h3 { font-size:22px; margin:22px 0 15px; font-weight:750; }
.cuadros-steps li p { color:var(--home-muted); font-size:13px; line-height:1.8; }
.cuadros-featured { padding-top:110px; }
.cuadros-featured .home-section-heading { margin-bottom:35px; }
.cuadros-rail-controls { display:flex; align-items:center; gap:20px; margin-top:12px; color:var(--home-gold); font-size:13px; }
.cuadros-rail-line { height:1px; background:var(--home-border); flex:1; margin-inline:30px; }
.cuadros-personal { display:grid; grid-template-columns:1.6fr 1fr; margin-top:70px; border-radius:18px; overflow:hidden; background:#111a27; }
.cuadros-personal__copy { padding:50px 40px; align-self:center; }
.cuadros-personal h2 { font-size:clamp(27px,2.8vw,42px); font-weight:800; line-height:1.4; margin:0; letter-spacing:-.025em; }
.cuadros-personal__copy > p:not(.home-eyebrow) { color:var(--home-muted); font-size:16px; line-height:1.9; margin:28px 0 35px; }
.cuadros-personal > img { display:block; width:100%; height:100%; min-height:440px; object-fit:cover; }
@media (max-width:1100px) { .cuadros-collection,.cuadros-collection__content { min-height:420px; } .cuadros-collection__content { padding:28px; } .cuadros-steps ol { gap:28px; } .cuadros-personal { grid-template-columns:1.3fr 1fr; } }
@media (max-width:800px) { .cuadros-intro { padding:45px 0 35px; } .cuadros-collections { gap:16px; } .cuadros-collection,.cuadros-collection__content { min-height:380px; } .cuadros-collection__content { padding:24px; } .cuadros-collection .home-button { padding:15px 18px; font-size:12px; } .cuadros-featured { padding-top:70px; } .cuadros-personal { grid-template-columns:1fr; } .cuadros-personal > img { height:420px; min-height:0; } }
@media (max-width:560px) { .cuadros-collections { grid-template-columns:1fr; } .cuadros-steps ol { grid-template-columns:1fr; gap:20px; } .cuadros-steps { padding-top:45px; } .cuadros-steps h3 { margin:12px 0; } .cuadros-featured { padding-top:55px; } .cuadros-personal { margin-top:45px; } .cuadros-personal__copy { padding:30px 24px; } .cuadros-personal > img { height:360px; } .cuadros-rail-controls { gap:12px; } .cuadros-rail-line { margin-inline:0; } }
/* Product previews keep a stable cover size while their media crossfades. */
.product-preview { position:relative; isolation:isolate; overflow:hidden; border-radius:14px; padding:0; touch-action:pan-y; }
.product-preview .product-preview__media { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; border:0; border-radius:inherit; opacity:0; transition:opacity .65s ease; pointer-events:none; }
.product-preview .product-preview__media.is-active { opacity:1; }
.product-preview__dots { position:absolute; z-index:2; bottom:12px; left:50%; transform:translateX(-50%); display:flex; gap:5px; max-width:85%; overflow:hidden; padding:7px 9px; border-radius:20px; background:rgb(0 0 0 / 45%); pointer-events:none; }
.product-preview__dots > span { width:5px; height:5px; flex-shrink:0; border-radius:50%; background:rgb(255 255 255 / 50%); }
.product-preview__dots > .is-active { background:#fff; }
.product-preview__hint { position:absolute; right:10px; top:10px; z-index:2; color:white; background:rgb(0 0 0 / 55%); padding:5px 8px; border-radius:20px; font-size:10px; pointer-events:none; }
@media (prefers-reduced-motion:reduce) { .product-preview .product-preview__media { transition:none; } }
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */

   html {
    scroll-behavior: smooth;
  }
::selection {
  background-color: #FFDD57; /* Color de fondo al seleccionar texto */
  color: #000; /* Color del texto seleccionado */
}

/* Firefox necesita prefijo */
::-moz-selection {
  background-color: #FFDD57;
  color: #000;
}


/* Microfono buscador */
@keyframes pulse-mic {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}
.animate-pulse {
  animation: pulse-mic 1s infinite;
}
.truncate-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.marquee-track {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
}

.marquee-content {
  display: inline-flex;
  white-space: nowrap;
  transform: translateX(0);
}
@keyframes scroll-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.sticky-search {
  position: sticky;
  top: 0;
  z-index: 30;
  background-color: white;
  padding: 1rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
#search-box.sticky {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 640px;
  z-index: 50;
  padding: 0.5rem;
  background-color: white;
  border-bottom: 1px solid #ddd;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  border-radius: 0 0 1rem 1rem;
}

#mini-banner {
  backdrop-filter: blur(12px);
  background-color: rgba(17, 24, 39, 0.6); /* fondo oscuro translúcido */
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  transform: translateY(-100%);
  opacity: 0;
  transition: transform 0.4s ease, opacity 0.4s ease;
}

#mini-banner.visible {
  transform: translateY(0);
  opacity: 1;
}

  .nav-link {
    display: flex;
    align-items: center;
    font-size: 0.875rem;
    color: white;
  }
  .nav-link:hover {
    color: #60a5fa;
  }

  /* Galeria para productos */
img#mainProductImage {
  transition: opacity 0.3s ease;
}
.ring-amarillo-custom {
  box-shadow: 0 0 0 2px #F0D187;
}


img {
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: auto; /* Permite clics normales si los necesitas */
}


/* para filtros */
.sticky-filters {
  position: fixed;
  top: 90px;
  left: 0;
  right: 0;
  z-index: 40;
  transform: translateY(-100%);
  transition: transform 0.4s ease, opacity 0.4s ease;
  opacity: 0;
}

.sticky-filters.visible {
  transform: translateY(0);
  opacity: 1;
}


