/* Public catalogue: existing NODIKA assets, compact cards and one contact area. */
.landing-body { overflow-wrap: anywhere; --public-gutter:clamp(24px,4vw,72px); }
.landing-body .landing-header { padding:14px var(--public-gutter); }
.landing-body .landing-nav { gap: 20px; }
.landing-body .landing-nav .landing-login { width:auto; padding:10px 0 10px 22px; border:0; border-left:1px solid var(--border); border-radius:0; font-weight:600; }
.landing-body .landing-nav a[aria-current="page"] { color:var(--brand); text-decoration:underline; text-underline-offset:6px; }
.landing-body .landing-section { width:100%; max-width:none; margin:0; box-sizing:border-box; padding:34px var(--public-gutter); }
.landing-body .public-home-hero { width:100%; max-width:none; margin:0; box-sizing:border-box; display:grid; grid-template-columns:1fr 1fr; gap:42px; align-items:center; min-height:0; padding:42px var(--public-gutter) 36px; }
.landing-body .public-home-hero h1 { font-size:clamp(36px,4.2vw,54px); line-height:1.08; max-width:580px; }
.landing-body .landing-lead { font-size:18px; line-height:1.65; margin:18px 0; max-width:650px; }
.landing-body .hero-visual { margin:0; border-radius:12px; overflow:hidden; box-shadow:0 12px 35px #30221812; }
.landing-body .hero-visual img { display:block; width:100%; height:330px; object-fit:cover; }
.hero-services-link { margin-top:6px; }
.landing-body .home-services { padding-top:22px; }
.service-carousel { margin-top:20px; min-width:0; }
.service-carousel + .service-carousel { margin-top:36px; }
.carousel-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; }
.carousel-heading h2 { margin:0; font-size:27px; line-height:1.2; }
.carousel-controls { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex:0 0 auto; }
.carousel-position { min-width:62px; text-align:center; font-size:12px; color:var(--muted); }
.landing-body .service-rail { position:relative; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(250px,1fr); grid-template-columns:none; gap:18px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; padding:0 0 12px; }
.landing-body .category-card { padding:0; display:flex; flex-direction:column; overflow:hidden; border-radius:10px; scroll-snap-align:start; min-width:0; box-shadow:none; }
.category-card > img { display:block; width:100%; height:152px; object-fit:cover; }
.category-card:target { outline:2px solid var(--brand); outline-offset:-2px; }
.category-copy { padding:18px; flex:1; }
.landing-body .category-copy h3 { font-size:20px; line-height:1.25; margin:0 0 12px; min-height:50px; }
.category-examples { margin:0 0 14px; font-size:14px; line-height:1.6; color:#61564d; }
.category-services { padding:0; margin:0; list-style:none; display:grid; gap:5px; }
.category-services a { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:44px; border-top:1px solid var(--border); padding:9px 0; color:var(--text); font-size:14px; line-height:1.4; text-decoration:none; }
.category-services a:hover { color:var(--brand); }
.landing-body .category-services a.icon-action { padding:0; justify-content:center; margin-top:5px; border:1px solid var(--border); }
.category-services .action-glyph { width:17px; height:17px; flex:0 0 17px; }
.area-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:36px; align-items:center; }
.area-intro-copy { min-width:0; }
.area-intro h1 { font-size:clamp(32px,3.8vw,47px); line-height:1.12; margin:14px 0 0; }
.area-hero-image { display:block; width:100%; height:270px; object-fit:cover; border-radius:12px; }
.landing-body .catalogue-back { margin-bottom:20px; }
.catalogue-breadcrumb { display:flex; gap:10px; margin-bottom:22px; font-size:14px; }
.landing-body .area-services { padding-top:12px; }
.area-services .carousel-heading { justify-content:flex-end; }
.category-nav { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.category-nav a { display:inline-flex; align-items:center; min-height:40px; padding:6px 13px; border:1px solid var(--border); border-radius:22px; background:white; color:var(--text); font-size:13px; text-decoration:none; }
.category-nav a:hover { border-color:var(--brand); color:var(--brand); }
.future-intro h1 { font-size:clamp(34px,3.8vw,48px); line-height:1.12; margin:12px 0; }
.landing-body .future-services { padding-top:0; }
.future-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.landing-body .future-card { padding:0; overflow:hidden; border-radius:12px; box-shadow:none; }
.future-card img { display:block; width:100%; height:240px; object-fit:cover; }
.future-copy { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:20px; }
.landing-body .future-copy h2 { font-size:24px; margin:0; }
.future-copy span { font-size:12px; color:#6b5a4d; background:#f6efe7; padding:6px 10px; border-radius:16px; white-space:nowrap; }
.team-hero { padding-top:44px!important; }
.team-hero h1 { font-size:clamp(38px,4.2vw,58px); max-width:650px; }
.team-hero-image { display:block; width:100%; height:330px; object-fit:cover; border-radius:12px; }
.landing-body .team-direction { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; background:#f0e9e1; padding-top:30px; padding-bottom:30px; }
.team-direction article { padding-left:24px; border-left:2px solid #b71c1c55; }
.landing-body .team-direction h2 { margin:8px 0; font-size:25px; }
.team-direction p:not(.landing-kicker) { margin:0; max-width:440px; font-size:15px; line-height:1.7; color:#51473e; }
.team-section-heading { margin-bottom:24px; }
.landing-body .team-section-heading h2 { margin:8px 0; font-size:32px; }
.team-section-heading > p:last-child { margin:0; color:#61564d; font-size:16px; }
.team-roles { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.landing-body .team-role { padding:0; border-radius:12px; overflow:hidden; box-shadow:none; }
.team-role > img { display:block; width:100%; height:230px; object-fit:cover; }
.team-role-copy { display:flex; justify-content:space-between; align-items:center; gap:28px; padding:24px; }
.team-role-copy h3 { margin:0 0 10px; font-size:26px; }
.team-role-copy p { margin:0; font-size:16px; line-height:1.6; max-width:550px; color:#61564d; }
.landing-body .team-booking { background:var(--brand); color:#fff; border-color:var(--brand); }
.landing-body .team-booking:hover { background:var(--brand-hover); }
.landing-body .team-faq { display:grid; grid-template-columns:1fr 2fr; gap:36px; padding-top:12px; padding-bottom:44px; }
.landing-body .team-faq h2 { margin:8px 0; font-size:30px; }
.team-questions details { border-bottom:1px solid #d8cec4; }
.team-questions summary { padding:18px 28px 18px 0; cursor:pointer; font-size:17px; font-weight:600; min-height:44px; }
.team-questions details p { margin:0 0 20px; color:#61564d; font-size:15px; line-height:1.7; max-width:760px; }
.service-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.landing-body .service-detail-grid .landing-card { padding:22px; box-shadow:none; }
.service-detail-grid h2 { margin:0 0 12px; font-size:21px; }
.service-detail-grid p,.service-detail-grid li { font-size:15px; line-height:1.7; }
.service-detail-grid ul { margin:0; padding-left:18px; }
.service-detail-grid p + p { margin-top:10px; }
.service-detail-grid .catalogue-link { margin-top:12px; }
.field-note { font-size:13px!important; line-height:1.6; color:#59616b; }
.landing-body .launch-band { padding-top:28px; padding-bottom:38px; }
.landing-body .launch-inner { width:100%; max-width:none; box-sizing:border-box; padding:0 var(--public-gutter); }
.landing-body .launch-heading { margin-bottom:16px; }
.landing-body .launch-band .landing-kicker { color:#f0d6cf; }
.launch-band .carousel-position { color:#d6cec5; }
.launch-inner > .carousel-controls .icon-action { color:#fff; border-color:#62584d; }
.landing-body .launch-heading h2 { font-size:30px; }
.launch-inner > .carousel-controls { margin-bottom:14px; }
.landing-body .launch-card { scroll-snap-align:start; min-width:0; }
.landing-body .launch-image { height:155px; }
.landing-body .launch-image img { width:100%; height:100%; object-fit:cover; }
.landing-body .launch-card-copy { padding:16px; }
.landing-body .launch-card-copy h3 { font-size:21px; }
.landing-body .launch-card-copy p { font-size:14px; }
/* Compact shared contact strip; these are the only two engagement controls. */
.landing-body .contact-choices { display:grid; grid-template-columns:235px 1fr; align-items:center; gap:26px; padding:30px max(24px,calc((100vw - 1120px)/2)); background:linear-gradient(120deg,#891919,#b71c1c 65%,#c84331); color:#fff; }
.contact-heading { margin:0; }
.contact-heading .landing-kicker { color:#ffddd3; font-size:11px; }
.contact-heading h2 { font-size:28px; margin:8px 0 0; color:white; line-height:1.2; }
.contact-options { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.landing-body .contact-option { display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:18px; min-width:0; padding:6px 0 6px 24px; border:0; border-left:1px solid #ffffff55; background:transparent; border-radius:0; }
.contact-option h3 { margin:0 0 5px; color:white; font-size:17px; line-height:1.3; }
.contact-option p { margin:0; color:#ffece5; font-size:13px; line-height:1.5; }
.landing-body .contact-option .landing-btn { margin:0; border-color:#ffffff88; background:#fff; color:#a51b1b; }
.contact-no-script { grid-column:1/-1; font-size:14px; }
.contact-no-script a { color:white; }
/* Existing native inquiry dialog and form. */
.landing-body:has(.contact-dialog[open]) { overflow:hidden; }
.contact-dialog { position:fixed; inset:0; box-sizing:border-box; width:min(660px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); margin:auto; padding:0; border:0; border-radius:16px; color:#28201d; background:#fff; box-shadow:0 28px 90px #260c0840; overflow-y:auto; overscroll-behavior:contain; }
.contact-dialog::backdrop { background:#24161499; backdrop-filter:blur(4px); }
.contact-dialog-top { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 24px; background:#fff7f1; border-bottom:1px solid #f1ded3; }
.contact-dialog-top > span { color:#b71c1c; font-weight:850; letter-spacing:1px; }
.contact-dialog-top > span span { color:#6b7280; font-weight:400; letter-spacing:0; }
.contact-close { min-height:44px; border:1px solid #d8c9bf; border-radius:8px; background:white; color:#4b3f38; cursor:pointer; }
.contact-dialog-content { padding:26px 32px 30px; }
.contact-dialog-content h2 { margin:8px 0; font-size:29px; line-height:1.2; }
#contactDialogIntro { font-size:16px; color:#665b54; margin:0 0 22px; line-height:1.6; }
.contact-context { padding:9px 12px; background:#fff3ec; border-radius:6px; font-size:13px; margin-bottom:16px; }
.landing-form { display:grid; gap:15px; }
.landing-form [data-contact-fields] { display:grid; gap:15px; }
.landing-form [hidden] { display:none!important; }
.landing-form .field { min-width:0; display:grid; gap:7px; }
.landing-form label { font-size:14px; font-weight:600; }
.landing-form input:not([type="checkbox"]),.landing-form textarea,.landing-form select { width:100%; min-width:0; background:white; color:#202124; border:1px solid #c9cdd2; border-radius:7px; padding:12px; font:inherit; }
.landing-form .form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.landing-form .form-msg:not(:empty) { padding:14px; background:#f8f5ef; border-radius:7px; }
.landing-form .form-msg a { font-weight:650; }
.contact-privacy { margin:0; font-size:12px; line-height:1.6; color:#75675e; }
.contact-privacy a { color:#a51b1b; text-decoration:underline; }
.contact-service-options summary { margin-bottom:12px; }
.contact-service-options summary::-webkit-details-marker { display:none; }
.contact-service-options summary { list-style:none; }
.landing-body .contact-submit { justify-self:end; }
.landing-body .landing-footer { width:100%; max-width:none; margin:0; box-sizing:border-box; border-radius:0; padding:28px max(24px,calc((100vw - 1120px)/2)); align-items:start; background:#252321; color:#fff; }
.landing-body .landing-footer small { color:#d6cec5; }
.landing-body .landing-footer .social-link { display:inline-flex; justify-content:center; align-items:center; width:44px; height:44px; border:1px solid #62584d; border-radius:8px; background:transparent; color:#fff; }
.landing-body .landing-footer .social-link svg { width:20px; height:20px; fill:currentColor; }
.landing-body .footer-actions { display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; }
.footer-actions a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; color:white; text-decoration:none; }
.footer-actions a:hover { text-decoration:underline; }
.landing-body .footer-social { display:flex; gap:8px; margin-top:15px; }
/* Action icons stay accessible; the footer utility navigation is textual. */
.landing-body .icon-action { position:relative; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:44px; min-width:44px; height:44px; min-height:44px; padding:0; gap:0; border:1px solid var(--border); border-radius:8px; vertical-align:middle; line-height:1; text-decoration:none; cursor:pointer; }
.landing-body .action-glyph { width:20px; height:20px; flex:0 0 20px; fill:none; stroke:currentColor; }
.landing-body .landing-nav .icon-action { padding:0; }
.landing-body .carousel-controls button:disabled { opacity:.32; cursor:default; }
.landing-footer .social-link svg.action-glyph { fill:none; }
.landing-body .contact-option .icon-action { width:44px; height:44px; min-width:44px; border-color:#fff9; }
.landing-body .contact-form-status a.icon-action { display:inline-flex; margin-left:8px; }
.landing-body .launch-comments-toggle.icon-action { width:64px; gap:6px; }
.icon-action[aria-busy="true"] .action-glyph { visibility:hidden; }
.icon-action[aria-busy="true"]::after { content:""; position:absolute; width:18px; height:18px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:public-action-spin .8s linear infinite; }
@keyframes public-action-spin { to { transform:rotate(360deg); } }
.landing-body :focus-visible { outline:3px solid #9b2020; outline-offset:4px; }
.skip-link { position:fixed!important; top:-80px; left:16px; z-index:100; background:white; }
.skip-link:focus { top:12px; }
#servicios,#contacto,.category-card { scroll-margin-top:96px; }
@media(min-width:761px) and (max-width:1080px) {
 .landing-body .landing-header { flex-wrap:wrap; gap:12px; }
 .landing-body .landing-nav { width:100%; justify-content:flex-start; }
 .landing-body .landing-nav .landing-login { margin-left:auto; }
}
@media(max-width:760px) {
 .landing-body .landing-header { flex-wrap:wrap; gap:12px; padding:14px 20px; }
 .landing-body .landing-nav { display:flex; flex-wrap:wrap; width:100%; gap:8px 18px; }
 .landing-body .landing-nav .mobile-essential:first-child { display:inline-flex; }
 .landing-body .landing-nav .landing-login { margin-left:0; width:100%; padding:8px 0 0; border-left:0; border-top:1px solid var(--border); }
 .landing-body .landing-nav { gap:8px 14px; font-size:14px; }
 .team-hero-image { height:230px; }
 .landing-body .team-direction { grid-template-columns:1fr; gap:24px; }
 .team-direction article { padding-left:18px; }
 .team-roles { grid-template-columns:1fr; gap:20px; }
 .team-role > img { height:190px; }
 .team-role-copy { padding:20px; gap:16px; }
 .team-role-copy h3 { font-size:24px; }
 .team-role-copy p { font-size:15px; }
 .landing-body .team-faq { grid-template-columns:1fr; gap:12px; }
 .landing-body .service-rail { grid-auto-columns:min(82vw,320px); }
 .future-grid { grid-template-columns:1fr; gap:20px; }
 .future-card img { height:220px; }
 .future-copy { padding:18px; }
 .landing-body .launch-inner { padding:0 20px; }
 .landing-body .landing-section { padding:26px 20px; }
 .landing-body .public-home-hero { grid-template-columns:1fr; gap:22px; padding:30px 20px 22px; }
 .landing-body .public-home-hero h1 { font-size:38px; }
 .landing-body .hero-visual img { height:225px; }
 .landing-body .landing-lead { font-size:16px; margin:14px 0; }
 .carousel-heading { gap:10px; align-items:flex-start; }
 .carousel-heading h2 { font-size:23px; }
 .carousel-position { display:none; }
 .carousel-controls { gap:6px; }
 .area-intro { grid-template-columns:1fr; gap:22px; }
 .area-intro h1 { font-size:34px; }
 .area-hero-image { height:210px; }
 .category-nav { flex-wrap:nowrap; overflow:auto; padding-bottom:8px; }
 .category-nav a { white-space:nowrap; }
 .service-detail-grid { grid-template-columns:1fr; }
 .landing-body .contact-choices { grid-template-columns:1fr; gap:20px; padding:28px 20px; }
 .contact-options { grid-template-columns:1fr; gap:14px; }
 .landing-body .contact-option { padding:0 0 0 16px; }
 .contact-heading h2 { font-size:26px; }
 .contact-dialog-content { padding:22px 20px; }
 .contact-dialog-top { padding:8px 18px; }
 .landing-form .form-row { grid-template-columns:1fr; }
 .landing-body .landing-footer { display:flex; flex-direction:column; gap:18px; padding:26px 20px; }
 .landing-body .footer-actions { gap:4px 18px; }
}
@media(prefers-reduced-motion:reduce) { .landing-body *,.landing-body *::before,.landing-body *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
