:root {
    --brown:#754f36;
    --brown-dark:#5f3f2b;
    --green:#356f63;
    --sage:#eaf2ef;
    --mint:#70ad9f;
    --orange:#f6a355;
    --ink:#212121;
    --muted:#545454;
    --light:#787878;
    --cream:#f8f4ef;
    --sand:#f0e7dd;
    --rose:#f7e9e7;
    --line:#e7ddd3;
    --radius:6px;
    --ui-radius:12px;
    --max:1240px
}
*,*::before,*::after {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:120px
}
body {
    margin:0;
    color:var(--ink);
    background:#fff;
    font-family:Manrope,Arial,sans-serif;
    font-size:16px;
    line-height:1.65
}
h1,h2,h3,p,figure {
    margin:0
}
h1,h2,h3 {
    line-height:1.2;
    letter-spacing:-.025em
}
h1 {
    font-size:clamp(32px,3.6vw,48px);
    font-weight:800
}
h2 {
    font-size:clamp(26px,3vw,36px);
    font-weight:700
}
h3 {
    font-size:21px;
    font-weight:700
}
p+p {
    margin-top:16px
}
a {
    color:inherit;
    text-decoration:none
}
button,input,textarea {
    font:inherit
}
button,a,input,textarea,summary {
    -webkit-tap-highlight-color:transparent
}
button {
    cursor:pointer
}
img {
    display:block;
    max-width:100%;
    height:auto
}
svg {
    flex-shrink:0
}
button {
    color:inherit
}
button:disabled {
    opacity:.6;
    cursor:wait
}
[hidden] {
    display:none!important
}
:focus-visible {
    outline:3px solid var(--mint);
    outline-offset:4px
}
a:hover {
    color:var(--brown)
}
input[type=checkbox] {
    accent-color:var(--green);
    width:18px;
    height:18px;
    flex-shrink:0
}
.container {
    width:min(100%,var(--max));
    margin-inline:auto;
    padding-inline:32px
}
.narrow {
    max-width:900px
}
.section {
    padding-block:88px
}
.cream {
    background:var(--cream)
}
.sage {
    background:var(--sage)
}
.commercial-advice { background:var(--sage); }
.advice-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.commercial-advice h2 { margin-top:12px; }
.advice-copy>.lead { margin-top:0; }
.advice-copy .button-row { margin-top:28px; }
.advice-copy .button { border-radius:12px; min-height:52px; }
.advice-copy .button-outline { background:transparent; }
.advice-copy .button-outline:hover { background:white; }
.advice-note { margin-top:16px; font-size:14px; color:var(--light); line-height:1.6; }
.advice-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; border-top:1px solid #356f6333; margin-top:32px; padding-top:24px; }
.advice-steps p { margin:0; font-weight:600; }
.advice-steps span { color:var(--green); margin-right:8px; }
@media(max-width:1100px) { .advice-grid { grid-template-columns:1fr; gap:28px; } }
@media(max-width:600px) { .advice-steps { grid-template-columns:1fr; } .advice-copy .button { width:100%; } }
.muted {
    color:var(--muted)
}
.small {
    font-size:13px
}
.lead {
    font-size:18px;
    line-height:1.8;
    color:var(--muted)
}
.eyebrow {
    color:var(--green);
    font-size:12px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase
}
.eyebrow+h1,.eyebrow+h2 {
    margin-top:16px
}
.rc-icon {
    width:20px;
    height:20px
}
.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap
}
.skip-link {
    position:fixed;
    top:8px;
    left:8px;
    z-index:1000;
    padding:12px 20px;
    background:var(--brown);
    color:white;
    transform:translateY(-150%);
    border-radius:var(--ui-radius)
}
.skip-link:focus {
    transform:translateY(0);
    color:#fff
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:52px;
    padding:12px 24px;
    background:var(--brown);
    color:#fff;
    border:1px solid var(--brown);
    border-radius:var(--ui-radius);
    font-size:15px;
    font-weight:700;
    line-height:1.35;
    text-align:center;
    transition:background .2s,color .2s
}
.button:hover {
    color:#fff;
    background:var(--brown-dark)
}
.button-small {
    min-height:44px;
    padding:10px 20px;
    font-size:14px
}
.button-outline {
    border-color:var(--green);
    background:transparent;
    color:var(--green)
}
.button-outline:hover {
    background:var(--sage);
    color:var(--green)
}
.button-green {
    background:var(--green);
    border-color:var(--green)
}
.button-green:hover {
    background:#2a5b51
}
.button-light-outline {
    border-color:#ffffff80;
    background:transparent;
    color:#fff
}
.button-light-outline:hover {
    background:#ffffff1a
}
.button-full {
    width:100%
}
.button-row {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:12px;
    margin-top:28px
}
.text-link {
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--brown);
    font-weight:700;
    font-size:15px
}
.text-link:hover {
    color:var(--green)
}
.text-link .rc-icon {
    transition:transform .2s
}
.text-link:hover .rc-icon {
    transform:translateX(3px)
}
.icon-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border:0;
    border-radius:var(--ui-radius);
    background:transparent;
    color:var(--muted)
}
.icon-button .rc-icon {
    width:22px;
    height:22px
}
.icon-button:hover {
    background:var(--sage);
    color:var(--green)
}
.text-button {
    border:0;
    background:none;
    text-decoration:underline;
    padding:8px;
    color:var(--brown)
}
/* Navegación y búsqueda predictiva */
.site-header {
    position:sticky;
    top:0;
    z-index:40;
    background:#fffffff5;
    border-bottom:1px solid var(--line);
    backdrop-filter:blur(12px)
}
.header-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    height:80px
}
.brand {
    display:inline-flex;
    align-items:center;
    gap:12px;
    flex-shrink:0;
    color:var(--brown)
}
.brand-logo {
    display:block;
    width:260px;
    max-width:100%;
    height:auto;
}
.catalog-filters { display:flex; flex-wrap:wrap; gap:14px; align-items:end; margin:0 0 16px; padding:18px; background:var(--cream); border:1px solid var(--line); border-radius:10px; }
.catalog-filters label { display:grid; gap:6px; flex:1 1 150px; min-width:0; font-size:12px; font-weight:600; color:var(--muted); }
.catalog-filters input,.catalog-filters select { width:100%; min-width:0; height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:6px; background:white; color:var(--ink); font:inherit; font-size:14px; font-weight:400; }
.catalog-filters input:focus,.catalog-filters select:focus { outline:2px solid var(--green); outline-offset:2px; }
.catalog-filters .button { min-height:44px; padding:10px 20px; font-size:14px; }
.catalog-section:has(.catalog-filters) { padding-top:24px; }
.catalog-filters + .catalog-toolbar { min-height:0; padding:0 0 14px; margin-bottom:24px; }
.quote-selection .selection-row { flex-wrap:wrap; }
.quote-selection .selection-row>span { flex:1 1 140px; }
.quote-selection .selection-row label { display:grid; gap:4px; font-size:12px; }
.quote-selection .selection-row input { width:90px; padding:8px; font-size:16px; }
.commercial-details { margin-top:24px; }
.commercial-details dl { display:grid; grid-template-columns:1fr 2fr; gap:12px; font-size:14px; }
.commercial-details dd { margin:0; }
body.has-selection { padding-bottom:110px; }
@media(max-width:700px) {
    .quote-form .form-grid { grid-template-columns:1fr; }
    .catalog-filters { flex-direction:column; align-items:stretch; }
    .catalog-filters label { flex:auto; }
    .selection-dock[data-selection-dock] { flex-direction:row; align-items:center; bottom:8px; left:8px; width:calc(100% - 76px); padding:8px; }
    .selection-dock[data-selection-dock] .text-button { display:none; }
    .selection-dock[data-selection-dock] p { margin:0; }
    .selection-dock[data-selection-dock] .button { padding:10px; white-space:nowrap; }
    body.has-selection { padding-bottom:85px; }
}
@media(max-width:380px) {
    .site-header .brand-logo { width:140px; }
    .commercial-details dl { grid-template-columns:1fr; gap:6px; }
    .commercial-details dd { margin-bottom:10px; }
}
@media (max-width:600px) {
    .site-header .brand-logo { width:210px; }
}
@media (max-width:380px) {
    .site-header .brand-logo { width:140px; }
}
.brand-symbol {
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--brown);
    color:#fff;
    width:40px;
    height:40px;
    border-radius:5px
}
.brand-symbol .rc-icon {
    width:25px;
    height:25px
}
.brand strong {
    display:block;
    font-size:21px;
    font-weight:800;
    line-height:1.3;
    letter-spacing:-.02em
}
.brand small {
    display:block;
    color:var(--light);
    font-size:11px;
    line-height:1.6
}
.main-nav {
    display:flex;
    gap:24px;
    align-items:center;
    font-size:14px;
    font-weight:600;
    color:var(--muted)
}
.main-nav a {
    position:relative;
    padding-block:7px
}
.main-nav a[aria-current] {
    color:var(--brown)
}
.main-nav a[aria-current]::after {
    content:"";
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    height:2px;
    background:var(--brown)
}
.header-actions {
    display:flex;
    align-items:center;
    gap:8px
}
.whatsapp-outline {
    border:1px solid var(--green);
    color:var(--green)
}
.menu-toggle {
    display:none
}
.header-search {
    padding-top:12px;
    padding-bottom:20px
}
.header-search .search-form {
    max-width:740px;
    margin-inline:auto
}
.search-form {
    display:flex;
    align-items:flex-start;
    gap:10px;
    width:100%
}
.autocomplete {
    position:relative;
    flex:1;
    min-width:0
}
.autocomplete input {
    width:100%;
    height:52px;
    border:1px solid var(--line);
    border-radius:var(--ui-radius);
    padding:12px 40px 12px 45px;
    background:#fff;
    color:var(--ink);
    font-size:15px
}
.autocomplete .search-icon {
    position:absolute;
    left:16px;
    top:16px;
    color:var(--light);
    pointer-events:none
}
.suggestions {
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    right:0;
    z-index:45;
    border:1px solid var(--line);
    border-radius:var(--ui-radius);
    background:#fff;
    box-shadow:0 14px 40px #49301c1a;
    overflow:hidden;
    max-height:min(65vh,490px);
    overflow-y:auto;
    min-width:min(320px,85vw)
}
.suggestion {
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px 14px;
    color:var(--ink);
    cursor:pointer;
    border-bottom:1px solid #f5f1ec
}
.suggestion:hover,.suggestion[aria-selected=true] {
    background:var(--sage);
    color:var(--ink)
}
.suggestion img {
    width:45px;
    height:54px;
    object-fit:contain;
    border-radius:4px;
    background:var(--cream)
}
.suggestion span {
    line-height:1.45;
    font-size:14px
}
.suggestion small {
    display:block;
    color:var(--green);
    font-size:11px;
    margin-bottom:3px
}
.suggestion-all {
    padding:15px;
    background:var(--cream);
    font-size:13px;
    font-weight:700
}
.suggestion-empty {
    padding:18px;
    font-size:14px;
    color:var(--muted)
}
.breadcrumbs {
    border-bottom:1px solid var(--line)
}
.breadcrumbs ol {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:12px;
    list-style:none;
    padding-top:16px;
    padding-bottom:16px;
    font-size:12px;
    color:var(--light);
    margin-block:0
}
.breadcrumbs li {
    display:flex;
    align-items:center;
    gap:12px;
    max-width:100%
}
.breadcrumbs .rc-icon {
    width:12px;
    height:12px
}
.breadcrumbs span[aria-current] {
    color:var(--brown)
}
/* Home y bloques editoriales */
.home-hero {
    background:var(--cream);
    overflow:hidden
}
.hero-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:48px;
    padding-block:70px
}
.hero-copy h1 {
    font-size:clamp(36px,4.2vw,52px);
    line-height:1.08;
    max-width:600px
}
.hero-copy .lead {
    margin-top:26px;
    max-width:530px
}
.hero-note {
    font-size:12px;
    color:var(--light);
    margin-top:22px;
    letter-spacing:.025em
}
.hero-collage {
    position:relative;
    height:530px
}
.collage-image {
    position:absolute;
    display:block;
    overflow:hidden;
    border-radius:var(--radius);
    background:var(--sand)
}
.collage-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s
}
.collage-image>a,.collage-image picture { display:block; width:100%; height:100%; }
.collage-image:hover img {
    transform:scale(1.025)
}
.collage-image-1 {
    left:0;
    bottom:0;
    width:53%;
    aspect-ratio:4/5
}
.collage-image-2 {
    right:0;
    top:0;
    width:38%;
    aspect-ratio:4/5
}
.collage-image-3 {
    right:4%;
    bottom:0;
    width:32%;
    aspect-ratio:4/5;
    border:8px solid var(--cream)
}
.split-heading {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:end;
    margin-bottom:44px
}
.split-heading h2,.split-heading h1 {
    max-width:570px
}
.split-heading .lead {
    max-width:530px
}
.section-link {
    margin-top:32px
}
.occasion-mosaic {
    display:grid;
    grid-template-columns:repeat(12,1fr);
    grid-template-rows:245px 245px;
    gap:20px
}
.occasion-tile {
    position:relative;
    grid-column:span 3;
    overflow:hidden;
    border-radius:var(--radius);
    background:var(--sand)
}
.occasion-featured {
    grid-column:span 6;
    grid-row:span 2
}
.occasion-tile>img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s
}
.occasion-tile:hover>img {
    transform:scale(1.03)
}
.occasion-tile::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,#000b,transparent 85%)
}
.occasion-tile>div {
    position:absolute;
    z-index:1;
    left:0;
    right:0;
    bottom:0;
    padding:22px;
    color:white
}
.occasion-tile h3 {
    font-size:19px
}
.occasion-featured h3 {
    font-size:30px
}
.occasion-tile .eyebrow {
    color:#ffffffb0;
    font-size:10px
}
.occasion-tile span {
    display:flex;
    gap:8px;
    align-items:center;
    font-size:12px;
    margin-top:14px;
    font-weight:600
}
.occasion-tile p:not(.eyebrow) {
    margin-top:10px;
    font-size:14px;
    color:#ffffffcf
}
.taxonomy-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:34px 24px
}
.taxonomy-card>div {
    aspect-ratio:4/3;
    overflow:hidden;
    border-radius:var(--radius);
    background:var(--sand)
}
.taxonomy-card img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s
}
.taxonomy-card:hover img {
    transform:scale(1.025)
}
.taxonomy-card h3,.taxonomy-card h2 {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    font-size:21px;
    margin-top:18px
}
.taxonomy-card .rc-icon {
    color:var(--green)
}
.taxonomy-card>p {
    color:var(--muted);
    margin-top:10px;
    font-size:14px
}
.experience {
    background:var(--brown);
    color:#fff
}
.experience .eyebrow {
    color:var(--mint)
}
.experience .lead {
    color:#ffffffc4
}
.experience .text-link {
    color:#fff;
    margin-top:20px
}
.experience-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:26px;
    margin-top:40px
}
.experience-grid figure:nth-child(even) {
    padding-top:40px
}
.experience-grid img {
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    border-radius:var(--radius);
    background:var(--sand)
}
.experience-grid figcaption {
    font-weight:600;
    font-size:15px;
    margin-top:18px
}
.experience-grid figcaption span {
    color:var(--mint);
    margin-right:6px
}
.experience-description {
    margin:8px 0 0;
    font-size:14px;
    font-weight:400;
    line-height:1.6;
    color:rgba(255,255,255,.75);
}
.experience-grid.light figcaption span {
    color:var(--green)
}
.service-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
    border-top:1px solid #ffffff30;
    margin-top:48px;
    padding-top:30px
}
.service-grid h3 {
    font-size:18px
}
.service-grid p {
    font-size:15px;
    margin-top:12px;
    color:#ffffffb3
}
.campaign-grid {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:26px
}
.campaign-card img {
    width:100%;
    aspect-ratio:2.38;
    object-fit:cover;
    border-radius:var(--radius)
}
.campaign-card h3 {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    font-size:19px;
    margin-top:20px
}
.steps-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:35px
}
.steps-grid>div {
    border-top:1px solid var(--line);
    padding-top:24px
}
.steps-grid span {
    color:var(--green);
    font-size:14px;
    font-weight:700
}
.steps-grid h3 {
    margin-top:14px
}
.steps-grid p {
    margin-top:12px;
    color:var(--muted);
    font-size:15px
}
.final-cta {
    padding-block:75px;
    background:var(--brown);
    color:#fff;
    text-align:center
}
.final-cta .eyebrow {
    color:var(--mint)
}
.final-cta h2 {
    font-size:clamp(28px,3.6vw,42px);
    max-width:700px;
    margin-inline:auto
}
.final-cta p:not(.eyebrow) {
    margin:22px auto 0;
    max-width:670px;
    color:#ffffffc9;
    font-size:17px
}
.final-cta .button-row {
    justify-content:center
}
.cta-benefits {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    margin-top:30px;
    color:#ffffffb8;
    font-size:13px
}
.cta-benefits span {
    display:flex;
    align-items:center;
    gap:7px
}
.cta-benefits svg {
    width:16px;
    color:var(--mint)
}
/* Catálogo, ficha y galería */
.page-intro {
    background:var(--cream);
    padding-block:44px
}
.page-intro .split-heading {
    margin-bottom:0;
    gap:60px
}
.page-intro .eyebrow+h1 {
    margin-top:14px
}
.catalog-section {
    padding-block:0 72px
}
.catalog-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    border-bottom:1px solid var(--line);
    padding-block:24px;
    margin-bottom:38px
}
.catalog-toolbar>p {
    font-size:13px;
    color:var(--muted)
}
.catalog-toolbar>div {
    width:480px;
    max-width:55%
}
.search-summary {
    font-size:14px;
    margin-bottom:30px
}
.search-summary>a {
    margin-left:15px;
    text-decoration:underline;
    color:var(--brown)
}
.product-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:48px 28px
}
.product-card {
    display:flex;
    flex-direction:column;
    min-width:0
}
.product-image {
    aspect-ratio:4/5;
    background:var(--cream);
    overflow:hidden;
    border-radius:var(--radius)
}
.product-image img {
    width:100%;
    height:100%;
    object-fit:contain;
    transition:transform .6s
}
.product-image:hover img {
    transform:scale(1.025)
}
.product-card h2 {
    font-size:21px;
    font-weight:700;
    margin-top:20px;
    line-height:1.35
}
.product-card>p {
    margin-top:8px;
    font-size:14px;
    color:var(--muted);
    line-height:1.7;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden
}
.card-actions {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-top:auto;
    padding-top:18px
}
.selection-label {
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:var(--green);
    font-size:12px;
    cursor:pointer
}
.selection-label input {
    margin:0
}
.pagination {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-top:45px
}
.pagination a {
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:44px;
    height:44px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:var(--ui-radius);
    font-size:14px
}
.pagination a.active {
    background:var(--brown);
    border-color:var(--brown);
    color:#fff
}
.pagination a:hover {
    background:var(--sage);
    color:var(--green)
}
.empty-state {
    padding-block:55px;
    text-align:center;
    max-width:900px;
    margin-inline:auto
}
.empty-state>svg {
    width:36px;
    height:36px;
    margin:0 auto 20px;
    color:var(--mint)
}
.empty-state .lead,.empty-state>p {
    margin:20px auto;
    max-width:600px
}
.empty-state .button-row {
    justify-content:center
}
.faq-layout {
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:80px
}
.home-faq { background:#fff; }
.faq {
    border-bottom:1px solid var(--line);
    padding-block:20px
}
.faq:first-child {
    border-top:1px solid var(--line)
}
.faq summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    list-style:none;
    font-weight:600;
    cursor:pointer
}
.faq summary::-webkit-details-marker {
    display:none
}
.faq[open] summary .rc-icon {
    transform:rotate(45deg)
}
.faq p {
    color:var(--muted);
    font-size:15px;
    margin-top:16px
}
.product-detail {
    padding-block:45px 70px
}
.detail-grid {
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:65px
}
.detail-copy h1 {
    font-size:clamp(30px,3vw,40px)
}
.detail-copy>.lead {
    margin-top:20px
}
.gallery-main {
    position:relative;
    aspect-ratio:4/5;
    background:var(--cream);
    border-radius:var(--radius);
    overflow:hidden
}
.gallery-main>a {
    display:block;
    height:100%
}
.gallery-main img {
    height:100%;
    width:100%;
    object-fit:contain
}
.gallery-expand {
    position:absolute;
    bottom:18px;
    right:18px;
    width:42px;
    height:42px;
    background:#fffffff0;
    border-radius:var(--ui-radius);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--brown)
}
.gallery-thumbs {
    display:flex;
    gap:10px;
    overflow-x:auto;
    margin-top:15px;
    padding:3px
}
.gallery-thumbs button {
    padding:0;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--cream);
    min-width:72px;
    width:72px;
    height:90px;
    overflow:hidden
}
.gallery-thumbs button[aria-pressed=true] {
    border:2px solid var(--brown)
}
.gallery-thumbs img {
    width:100%;
    height:100%;
    object-fit:contain
}
.detail-inquiry {
    margin-top:28px;
    padding:24px;
    background:var(--cream);
    border-radius:var(--radius)
}
.detail-inquiry>p:first-child {
    font-size:18px;
    font-weight:700
}
.detail-inquiry>p.muted {
    font-size:14px;
    margin-top:8px
}
.detail-inquiry>.button {
    margin-top:16px
}
.detail-inquiry>.button+.button {
    margin-top:10px
}
.detail-selection {
    margin-top:20px;
    font-size:13px;
    align-items:flex-start
}
.included-items {
    margin-top:34px
}
.included-items h2 {
    font-size:23px
}
.included-items ul {
    list-style:none;
    padding:0;
    margin-top:20px
}
.included-items li {
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-size:14px;
    margin-top:12px
}
.included-items .rc-icon {
    color:var(--green)
}
.prose {
    font-size:16px;
    line-height:1.9;
    color:var(--muted)
}
.prose h2,.prose h3,.prose h4 {
    color:var(--ink);
    margin-top:32px;
    margin-bottom:18px
}
.prose h2 {
    font-size:26px
}
.prose h3 {
    font-size:22px
}
.prose>h2:first-child {
    margin-top:0
}
.prose p {
    margin-block:14px
}
.prose img {
    border-radius:var(--radius);
    max-height:650px;
    width:auto
}
.prose a {
    color:var(--brown);
    text-decoration:underline;
    overflow-wrap:anywhere
}
.prose table {
    max-width:100%;
    width:100%;
    border-collapse:collapse;
    font-size:14px
}
.prose td,.prose th {
    border:1px solid var(--line);
    padding:8px
}
.prose li {
    margin-top:7px
}
.editorial-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:64px
}
.editorial-grid .lead {
    margin-top:20px
}
.editorial-grid .button {
    margin-top:28px
}
.editorial-image {
    width:100%;
    aspect-ratio:6/5;
    object-fit:cover;
    border-radius:var(--radius);
    background:var(--cream)
}
.client-logos {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:28px;
    margin-top:40px;
    padding-block:20px;
    border-block:1px solid var(--line)
}
.client-logos img {
    width:100%;
    aspect-ratio:4/3;
    object-fit:contain
}
/* Formularios y diálogos */
.contact-grid {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:80px
}
.contact-grid aside>.lead {
    margin-top:20px
}
.contact-links {
    margin-top:36px;
    display:flex;
    flex-direction:column;
    gap:24px
}
.contact-links>a:not(.button),.contact-links>div {
    display:flex;
    align-items:flex-start;
    gap:15px;
    font-size:15px
}
.contact-links .rc-icon {
    color:var(--green);
    margin-top:4px
}
.contact-links small {
    display:block;
    font-size:12px;
    color:var(--light);
    margin-bottom:4px
}
.contact-links .button {
    align-self:flex-start
}
.contact-form-panel {
    border:1px solid var(--line);
    border-radius:var(--ui-radius);
    padding:28px
}
.contact-form-panel>h2 {
    font-size:25px
}
.quote-form {
    margin-top:24px
}
.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px
}
.field {
    min-width:0
}
.field-wide {
    grid-column:1/-1
}
.field label {
    display:block;
    font-size:13px;
    font-weight:600;
    line-height:1.5;
    margin-bottom:8px
}
.field label .muted {
    font-weight:400;
    font-size:12px
}
.field input,.field textarea {
    display:block;
    width:100%;
    height:48px;
    padding:11px 13px;
    border:1px solid var(--line);
    border-radius:var(--ui-radius);
    background:#fff;
    color:var(--ink);
    font-size:14px
}
.field textarea {
    height:auto;
    resize:vertical;
    min-height:110px
}
.field input[aria-invalid=true],.field textarea[aria-invalid=true] {
    border-color:#ac3434
}
.field-error {
    font-size:12px;
    color:#a03131;
    margin-top:5px;
    line-height:1.5
}
.field-error:empty {
    display:none
}
.consent {
    display:flex;
    align-items:flex-start;
    gap:9px;
    margin-block:20px;
    font-size:12px;
    color:var(--muted);
    line-height:1.7
}
.consent input {
    margin:3px 0 0
}
.consent a {
    text-decoration:underline;
    color:var(--brown)
}
.quote-form>.small {
    margin-top:14px
}
.form-status {
    margin-top:16px;
    font-size:14px;
    color:#a03131
}
.form-status:empty {
    display:none
}
.form-status.success {
    padding:16px;
    background:var(--sage);
    color:var(--green);
    border-radius:var(--radius)
}
.honeypot {
    position:absolute;
    left:-10000px;
    width:1px;
    height:1px;
    overflow:hidden
}
.quote-selection {
    background:var(--sage);
    border:1px solid #cbded6;
    border-radius:var(--radius);
    padding:15px;
    font-size:14px;
    margin-bottom:20px
}
.quote-selection .selection-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px
}
.quote-selection .selection-row+.selection-row {
    margin-top:8px
}
.quote-selection .selection-row button {
    background:none;
    border:0;
    padding:5px;
    color:var(--green)
}
.quote-selection>strong {
    display:block;
    margin-bottom:10px;
    font-size:12px;
    color:var(--green)
}
.quote-dialog {
    width:min(100%,560px);
    height:100dvh;
    max-height:100dvh;
    margin:0 0 0 auto;
    padding:0;
    border:0;
    border-left:1px solid var(--line);
    background:#fff;
    color:var(--ink);
    box-shadow:-15px 0 60px #0002
}
.quote-dialog::backdrop,.image-dialog::backdrop {
    background:#0007;
    backdrop-filter:blur(3px)
}
.dialog-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:24px;
    padding:24px 28px;
    border-bottom:1px solid var(--line);
    position:sticky;
    top:0;
    background:#fff;
    z-index:2
}
.dialog-heading h2 {
    font-size:26px;
    margin-top:10px
}
.dialog-body {
    padding:25px 28px 40px
}
.image-dialog {
    max-width:95vw;
    max-height:94dvh;
    border:0;
    border-radius:var(--radius);
    padding:12px;
    background:var(--cream)
}
.image-dialog>button {
    position:absolute;
    right:12px;
    top:12px;
    background:#fff
}
.image-dialog>img {
    max-height:85dvh;
    max-width:85vw;
    object-fit:contain;
    width:auto
}
.selection-dock {
    position:fixed;
    bottom:22px;
    left:50%;
    transform:translateX(-50%);
    z-index:35;
    width:min(670px,calc(100% - 160px));
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    border:1px solid var(--line);
    border-radius:var(--ui-radius);
    padding:14px 20px;
    background:#fff;
    box-shadow:0 8px 40px #49301c26
}
.selection-dock p {
    font-size:13px
}
.selection-dock>div {
    display:flex;
    align-items:center;
    gap:12px
}
.selection-dock .button {
    min-height:44px;
    padding:10px 15px;
    font-size:13px
}
.selection-dock .text-button {
    font-size:12px
}
.floating-whatsapp {
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:35;
    width:56px;
    height:56px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--green);
    color:#fff;
    border-radius:50%;
    box-shadow:0 5px 22px #356f6333
}
.floating-whatsapp:hover {
    background:#28594f;
    color:#fff
}
.floating-whatsapp .rc-icon {
    width:28px;
    height:28px
}
body:has(dialog[open]) {
    overflow:hidden
}
/* Pie de página */
.site-footer {
    background:var(--cream);
    padding-top:56px
}
.footer-grid {
    display:grid;
    grid-template-columns:1.4fr 1fr 1.1fr;
    gap:80px;
    padding-bottom:44px
}
.footer-grid h2 {
    font-size:15px;
    font-weight:700;
    margin-bottom:18px
}
.footer-grid>div>a:not(.brand) {
    display:block;
    font-size:13px;
    color:var(--muted);
    margin-top:10px;
    overflow-wrap:anywhere
}
.footer-grid p {
    color:var(--muted);
    font-size:13px;
    margin-top:18px;
    max-width:280px
}
.footer-bottom {
    display:flex;
    justify-content:space-between;
    gap:24px;
    padding-block:22px;
    border-top:1px solid var(--line);
    font-size:11px;
    color:var(--light)
}
.footer-bottom>div {
    display:flex;
    gap:24px
}
.load-more {
    text-align:center;
    margin-top:30px
}
.load-more>p {
    margin-top:14px
}
.load-more a[aria-disabled=true] {
    opacity:.6;
    cursor:wait
}
@media(max-width:1100px) {
    .main-nav {
        gap:16px;
        font-size:13px
    }
    .header-row {
        gap:14px
    }
    .brand strong {
        font-size:19px
    }
    .header-quote {
        display:none
    }
    .hero-grid {
        gap:30px
    }
    .hero-collage {
        height:450px
    }
    .split-heading {
        gap:40px
    }
    .detail-grid {
        gap:35px
    }
    .contact-grid {
        gap:40px
    }
    .footer-grid {
        gap:40px
    }
}
@media(max-width:900px) {
    .container {
        padding-inline:24px
    }
    .main-nav {
        display:none;
        position:absolute;
        top:80px;
        left:0;
        right:0;
        background:#fff;
        border-bottom:1px solid var(--line);
        padding:16px 24px;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        box-shadow:0 15px 25px #49301c12
    }
    .main-nav[data-open=true] {
        display:flex
    }
    .main-nav a {
        padding:12px 16px;
        border-radius:6px;
        font-size:15px
    }
    .main-nav a[aria-current] {
        background:var(--sage)
    }
    .main-nav a[aria-current]::after {
        display:none
    }
    .menu-toggle {
        display:inline-flex
    }
    .hero-grid {
        padding-block:50px;
        gap:30px
    }
    .hero-copy h1 {
        font-size:38px
    }
    .hero-collage {
        height:400px
    }
    .hero-copy .lead {
        font-size:16px
    }
    .hero-copy .button-row {
        flex-direction:column;
        align-items:flex-start
    }
    .hero-note {
        font-size:11px
    }
    .section {
        padding-block:60px
    }
    .occasion-mosaic {
        grid-template-rows:200px 200px;
        gap:14px
    }
    .occasion-tile>div {
        padding:16px
    }
    .occasion-tile h3 {
        font-size:17px
    }
    .occasion-featured h3 {
        font-size:27px
    }
    .occasion-tile span {
        font-size:11px
    }
    .taxonomy-card h3,.taxonomy-card h2 {
        font-size:18px
    }
    .product-grid {
        gap:32px 20px
    }
    .product-card h2 {
        font-size:18px
    }
    .card-actions {
        flex-wrap:wrap
    }
    .faq-layout {
        gap:40px
    }
    .client-logos {
        grid-template-columns:repeat(3,1fr)
    }
    .contact-grid {
        grid-template-columns:1fr 1.25fr;
        gap:30px
    }
    .contact-form-panel {
        padding:22px
    }
    .editorial-grid {
        gap:35px
    }
    .experience-grid {
        gap:18px
    }
    .experience-grid figcaption {
        font-size:13px
    }
    .detail-grid {
        gap:30px
    }
    .detail-inquiry {
        padding:20px
    }
    .gallery-main {
        aspect-ratio:4/5
    }
    .footer-grid {
        gap:30px
    }
    .footer-bottom {
        padding-bottom:95px
    }
}
@media(max-width:700px) {
    .container {
        padding-inline:20px
    }
    .header-row {
        height:72px
    }
    .brand small {
        font-size:10px
    }
    .brand strong {
        font-size:18px
    }
    .brand-symbol {
        width:36px;
        height:36px
    }
    .brand {
        gap:9px
    }
    .header-actions {
        gap:4px
    }
    .header-actions>.whatsapp-outline {
        display:none
    }
    .main-nav {
        top:72px
    }
    .hero-grid {
        grid-template-columns:1fr;
        padding-top:44px;
        padding-bottom:48px;
        gap:36px
    }
    .hero-copy h1 {
        font-size:38px;
        max-width:550px
    }
    .hero-copy .lead {
        font-size:17px
    }
    .hero-copy .button-row {
        flex-direction:row;
        align-items:stretch
    }
    .hero-copy .button {
        font-size:13px;
        padding:12px 17px
    }
    .hero-collage {
        height:410px;
        max-width:550px;
        width:100%;
        margin-inline:auto
    }
    .collage-image-1 {
        width:52%;
        bottom:0
    }
    .collage-image-2 {
        width:36%
    }
    .collage-image-3 {
        width:32%
    }
    .hero-note {
        font-size:12px
    }
    .section {
        padding-block:52px
    }
    .split-heading {
        grid-template-columns:1fr;
        gap:18px;
        margin-bottom:30px
    }
    .lead {
        font-size:17px
    }
    .occasion-mosaic {
        grid-template-columns:repeat(2,1fr);
        grid-template-rows:340px repeat(2,195px);
        gap:14px
    }
    .occasion-tile {
        grid-column:span 1
    }
    .occasion-featured {
        grid-column:span 2;
        grid-row:span 1
    }
    .occasion-tile>div {
        padding:18px
    }
    .occasion-featured h3 {
        font-size:27px
    }
    .taxonomy-grid {
        grid-template-columns:repeat(2,1fr);
        gap:26px 16px
    }
    .taxonomy-card h3,.taxonomy-card h2 {
        font-size:17px;
        gap:10px;
        margin-top:14px
    }
    .taxonomy-card>div {
        aspect-ratio:4/4
    }
    .experience-grid {
        grid-template-columns:repeat(2,1fr);
        gap:24px 18px
    }
    .experience-grid figure:nth-child(even) {
        padding-top:26px
    }
    .service-grid {
        grid-template-columns:1fr;
        gap:26px;
        margin-top:36px
    }
    .campaign-grid {
        grid-template-columns:1fr;
        gap:30px
    }
    .steps-grid {
        grid-template-columns:1fr;
        gap:26px
    }
    .steps-grid>div {
        padding-top:18px
    }
    .steps-grid h3 {
        margin-top:10px
    }
    .final-cta {
        padding-block:52px
    }
    .final-cta .button-row {
        flex-direction:column
    }
    .final-cta .button {
        width:100%;
        max-width:370px
    }
    .cta-benefits {
        flex-wrap:wrap;
        gap:12px 20px;
        font-size:12px
    }
    .page-intro {
        padding-block:34px
    }
    .page-intro .split-heading {
        gap:22px
    }
    .page-intro h1 {
        font-size:32px
    }
    .catalog-toolbar {
        align-items:stretch;
        flex-direction:column;
        gap:16px;
        margin-bottom:28px
    }
    .catalog-toolbar>div {
        width:100%;
        max-width:none
    }
    .catalog-toolbar>p {
        font-size:12px
    }
    .search-form .button {
        padding-inline:17px;
        font-size:13px
    }
    .autocomplete input {
        font-size:14px
    }
    .product-grid {
        grid-template-columns:repeat(2,1fr);
        gap:32px 18px
    }
    .product-card h2 {
        font-size:17px;
        margin-top:15px
    }
    .product-card>p {
        font-size:13px
    }
    .card-actions {
        gap:14px
    }
    .card-actions .text-link {
        font-size:13px;
        gap:5px
    }
    .card-actions .rc-icon {
        width:17px
    }
    .selection-label {
        font-size:11px
    }
    .faq-layout {
        grid-template-columns:1fr;
        gap:25px
    }
    .faq summary {
        font-size:14px
    }
    .detail-grid {
        grid-template-columns:1fr;
        gap:32px
    }
    .product-detail {
        padding-top:26px;
        padding-bottom:45px
    }
    .gallery-main {
        aspect-ratio:1;
        max-height:550px
    }
    .detail-copy h1 {
        font-size:32px
    }
    .detail-selection {
        font-size:12px
    }
    .editorial-grid {
        grid-template-columns:1fr;
        gap:28px
    }
    .editorial-image {
        max-height:420px;
        aspect-ratio:6/5
    }
    .contact-grid {
        grid-template-columns:1fr;
        gap:40px
    }
    .contact-form-panel {
        padding:24px 20px
    }
    .contact-form-panel>h2 {
        font-size:23px
    }
    .contact-links {
        margin-top:26px
    }
    .form-grid {
        gap:14px
    }
    .field label {
        font-size:12px
    }
    .field input {
        font-size:16px
    }
    .field textarea {
        font-size:16px
    }
    .quote-dialog {
        width:100%;
        max-width:100%
    }
    .dialog-heading {
        padding:22px 20px
    }
    .dialog-body {
        padding:22px 20px 35px
    }
    .dialog-heading h2 {
        font-size:24px
    }
    .selection-dock {
        bottom:14px;
        left:14px;
        transform:none;
        gap:10px;
        width:calc(100% - 90px);
        padding:12px;
        flex-direction:column;
        align-items:stretch
    }
    .selection-dock>div {
        justify-content:space-between;
        gap:6px
    }
    .selection-dock p {
        font-size:12px
    }
    .selection-dock .button {
        font-size:12px;
        padding-inline:10px
    }
    .selection-dock .button svg {
        display:none
    }
    .floating-whatsapp {
        right:16px;
        bottom:18px;
        width:52px;
        height:52px
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:35px;
        padding-bottom:34px
    }
    .footer-grid>div:first-child {
        grid-column:1/-1
    }
    .footer-grid>div:first-child p {
        max-width:420px
    }
    .footer-bottom {
        flex-direction:column;
        gap:14px;
        padding-bottom:145px
    }
    .footer-bottom>div {
        gap:18px
    }
    .client-logos {
        grid-template-columns:repeat(2,1fr)
    }
    .prose {
        font-size:15px;
        overflow-wrap:anywhere
    }
    .prose h2 {
        font-size:23px
    }
}
@media(max-width:380px) {
    .container {
        padding-inline:16px
    }
    .brand strong {
        font-size:17px
    }
    .brand-symbol {
        width:32px;
        height:32px
    }
    .brand-symbol .rc-icon {
        width:21px
    }
    .hero-copy h1 {
        font-size:34px
    }
    .hero-collage {
        height:330px
    }
    .hero-copy .button-row {
        flex-direction:column
    }
    .product-grid {
        gap:30px 12px
    }
    .product-card h2 {
        font-size:16px
    }
    .form-grid {
        grid-template-columns:1fr
    }
    .taxonomy-card h3,.taxonomy-card h2 {
        font-size:15px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*::before,*::after {
        transition:none!important;
        animation:none!important
    }
}
html:not(.js) .selection-label {
    display:none
}
@media(max-width:900px) {
    html:not(.js) .header-row {
        height:auto;
        min-height:80px;
        flex-wrap:wrap;
        padding-block:16px
    }
    html:not(.js) .main-nav {
        display:flex;
        position:static;
        order:3;
        flex-direction:row;
        flex-wrap:wrap;
        padding:0;
        border:0;
        box-shadow:none;
        gap:6px
    }
    html:not(.js) .menu-toggle {
        display:none
    }
}

/* Proceso institucional de Nosotros. */
.about-process { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:40px; }
.about-process article { border-top:1px solid var(--green); padding-top:24px; }
.process-number { display:block; color:var(--green); font-size:15px; font-weight:600; margin-bottom:24px; }
.about-process h3 { font-size:22px; line-height:1.3; margin:0 0 16px; }
.about-process p { margin:0; line-height:1.8; }
@media (max-width:1000px) { .about-process { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .about-process { grid-template-columns:1fr; gap:32px; } .process-number { margin-bottom:14px; } }
/* Clientes: logos protagonistas con un espacio uniforme. */
.client-logos.clients-showcase { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; border:0; }
.client-logo-item { display:flex; align-items:center; justify-content:center; min-height:180px; padding:36px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.clients-showcase img { width:100%; max-width:240px; height:100px; aspect-ratio:auto; object-fit:contain; }
@media (max-width:700px) { .client-logos.clients-showcase { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } .client-logo-item { min-height:140px; padding:20px; } }
@media (max-width:380px) { .client-logos.clients-showcase { grid-template-columns:1fr; } }

/* Blog editorial: mismos colores, tipografía y radios del design system. */
.blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.blog-card { display:flex; flex-direction:column; padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:var(--cream); }
.blog-card:nth-child(2) { background:var(--sage); }
.blog-card:nth-child(3) { background:var(--sand); }
.blog-card-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:36px; }
.blog-number { font-size:38px; color:var(--green); font-weight:500; }
.blog-card h2,.blog-card h3 { font-size:25px; line-height:1.4; margin:0 0 18px; }
.blog-card h2 a,.blog-card h3 a { color:var(--ink); }
.blog-card p { line-height:1.8; margin-bottom:28px; }
.blog-card .eyebrow { margin-bottom:16px; }
.blog-card-top .eyebrow { margin:0; }
.blog-read { display:inline-flex; align-items:center; gap:12px; color:var(--green); font-weight:700; padding-block:12px; }
.blog-card .blog-read { margin-top:auto; }
.blog-card a:hover { text-decoration:underline; text-underline-offset:5px; }
.blog-reading-layout { display:grid; grid-template-columns:280px minmax(0,760px); gap:80px; align-items:start; }
.blog-index nav { display:grid; gap:16px; margin:24px 0; }
.blog-index nav a { padding-bottom:16px; border-bottom:1px solid var(--line); }
.blog-body section { scroll-margin-top:110px; margin-bottom:40px; }
.blog-body h2 { font-size:28px; margin-bottom:18px; }
.blog-body p { font-size:18px; line-height:1.9; }
.blog-article-cta { padding:32px; background:var(--cream); border-radius:var(--radius); }
.blog-related { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:32px; }
@media(max-width:1100px) { .blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .blog-reading-layout { gap:40px; grid-template-columns:220px minmax(0,1fr); } }
@media(max-width:767px) { .blog-grid,.blog-reading-layout { grid-template-columns:1fr; } .blog-card { padding:24px; } .blog-card-top { margin-bottom:24px; } .blog-reading-layout { gap:36px; } .blog-article-cta { padding:24px; } }
.blog-cover { width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:var(--radius); margin-bottom:24px; }
.blog-card-top time { color:var(--muted); font-size:14px; }
.blog-content img { max-width:100%; height:auto; }
.blog-content h2 { scroll-margin-top:110px; }
.blog-content a { overflow-wrap:anywhere; }
