:root{
    --teal-950:#082f37;
    --teal-900:#0b3f49;
    --teal-800:#0e5360;
    --teal-700:#126776;
    --teal-600:#1a7f8f;
    --teal-500:#2c98a5;
    --aqua:#58d0cc;
    --aqua-soft:#dff7f5;
    --blue:#5387c8;
    --violet:#7c80c9;
    --purple:#a66db4;
    --coral:#ef8d72;
    --gold:#f5c762;
    --green:#78bd92;
    --ink:#102f36;
    --muted:#60767b;
    --soft:#eef5f5;
    --line:#dbe8e9;
    --cream:#fbfaf6;
    --white:#fff;
    --danger:#b54040;
    --shadow-sm:0 8px 24px rgba(11,63,73,.08);
    --shadow:0 22px 60px rgba(11,63,73,.14);
    --shadow-strong:0 30px 90px rgba(6,40,48,.24);
    --radius-sm:14px;
    --radius:22px;
    --radius-lg:32px;
    --shell:1220px;
    --header-height:78px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{
    margin:0;
    min-width:320px;
    overflow-x:hidden;
    background:var(--cream);
    color:var(--ink);
    font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    font-size:16px;
    line-height:1.5;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
}
body.drawer-open,body.dialog-open{overflow:hidden}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{color:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(44,152,165,.28);outline-offset:3px}
[hidden]{display:none!important}

.shell{width:min(var(--shell),calc(100% - 48px));margin-inline:auto}
.skip-link{position:fixed;left:16px;top:-100px;z-index:9999;background:var(--white);padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);font-weight:800}
.skip-link:focus{top:16px}

.primary-button,.secondary-button,.ghost-button,.white-button,.search-submit{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:48px;
    border-radius:999px;
    border:0;
    padding:0 20px;
    font-weight:850;
    cursor:pointer;
    transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease;
}
.primary-button{background:linear-gradient(135deg,var(--teal-700),var(--teal-500));color:#fff;box-shadow:0 12px 28px rgba(18,103,118,.24)}
.primary-button:hover,.search-submit:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(18,103,118,.3)}
.primary-button.compact{min-height:42px;padding-inline:17px;font-size:13px}
.primary-button.full{width:100%}
.secondary-button{background:#fff;border:1px solid var(--line);color:var(--teal-800);box-shadow:0 7px 18px rgba(11,63,73,.05)}
.secondary-button:hover{border-color:#afd4d7;background:#f9ffff;transform:translateY(-1px)}
.ghost-button{min-height:42px;background:transparent;border:1px solid transparent;padding-inline:12px;font-size:13px;color:var(--teal-800)}
.ghost-button:hover{background:#edf7f7;border-color:#d8ebec}
.white-button{background:#fff;color:var(--teal-800);box-shadow:0 15px 36px rgba(4,39,46,.18);white-space:nowrap}
.white-button:hover{transform:translateY(-2px)}
.text-button{border:0;padding:0;background:transparent;color:var(--teal-600);font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

.site-header{
    position:sticky;
    top:0;
    z-index:100;
    height:var(--header-height);
    border-bottom:1px solid rgba(11,63,73,.09);
    background:rgba(251,250,246,.86);
    backdrop-filter:saturate(160%) blur(18px);
    -webkit-backdrop-filter:saturate(160%) blur(18px);
}
.header-inner{height:100%;display:flex;align-items:center;gap:34px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.adaptive-panama-logo{position:relative;display:block;width:169px;height:55px;flex:0 0 auto}
.adaptive-panama-logo__layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:left center;opacity:0;pointer-events:none;transition:opacity 1.1s linear}
.adaptive-panama-logo__layer[data-period="morning"]{opacity:1}
.desktop-nav{display:flex;align-items:center;gap:30px;margin-left:auto}
.desktop-nav a{position:relative;padding:10px 0;font-size:14px;font-weight:780;color:#315a62}
.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:2px;border-radius:3px;background:linear-gradient(90deg,var(--aqua),var(--coral));transition:right .25s ease}
.desktop-nav a:hover::after{right:0}
.header-actions{display:flex;align-items:center;gap:8px}
.button-icon{font-size:18px;line-height:1}

.hero{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    min-height:676px;
    padding:72px 0 76px;
    background:
        radial-gradient(circle at 8% 2%,rgba(88,208,204,.23),transparent 29%),
        radial-gradient(circle at 96% 8%,rgba(245,199,98,.25),transparent 31%),
        linear-gradient(180deg,#f6fbfb 0%,#fbfaf6 100%);
}
.hero::after{content:"";position:absolute;z-index:-2;left:-12%;right:-12%;bottom:-280px;height:480px;border-radius:50% 50% 0 0;background:linear-gradient(90deg,rgba(88,208,204,.13),rgba(124,128,201,.08),rgba(245,199,98,.14));transform:rotate(-2deg)}
.hero-bg{position:absolute;z-index:-1;border-radius:999px;filter:blur(1px);opacity:.7;pointer-events:none}
.hero-bg-one{width:290px;height:290px;left:-140px;bottom:80px;background:radial-gradient(circle,rgba(166,109,180,.2),transparent 67%)}
.hero-bg-two{width:370px;height:370px;right:-160px;top:70px;background:radial-gradient(circle,rgba(239,141,114,.19),transparent 68%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(430px,.96fr);gap:70px;align-items:center}
.hero-copy{position:relative;z-index:2;padding-top:8px}
.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:9px;color:var(--teal-700);font-size:11px;font-weight:900;letter-spacing:.105em;text-transform:uppercase}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--aqua);box-shadow:0 0 0 5px rgba(88,208,204,.16);animation:pulse 2.3s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(88,208,204,0)}}
.hero h1{margin:22px 0 24px;max-width:700px;font-size:clamp(54px,6.2vw,82px);line-height:.96;letter-spacing:-.057em;font-weight:900}
.hero h1 span{background:linear-gradient(90deg,var(--teal-600) 2%,var(--violet) 51%,var(--coral));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-lead{max-width:650px;margin:0 0 28px;color:#4e6b71;font-size:18px;line-height:1.55}
.hero-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;max-width:650px;padding:8px;border:1px solid rgba(15,83,96,.1);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:var(--shadow)}
.search-field,.directory-search{position:relative;display:flex;align-items:center;min-width:0}
.search-icon{position:relative;display:block;width:20px;height:20px;flex:0 0 20px;margin-left:13px;margin-right:10px;border:2px solid #2b5962;border-radius:50%}
.search-icon::after{content:"";position:absolute;right:-5px;bottom:-3px;width:7px;height:2px;border-radius:2px;background:#2b5962;transform:rotate(45deg)}
.hero-search input,.directory-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:16px}
.hero-search input::placeholder,.directory-search input::placeholder{color:#829296}
.search-submit{min-width:120px;min-height:52px;background:linear-gradient(135deg,var(--teal-700),var(--teal-500));color:#fff;box-shadow:0 10px 26px rgba(18,103,118,.22)}
.hero-status{display:flex;align-items:center;gap:20px;margin-top:22px;min-height:52px}
.status-location{display:flex;align-items:center;gap:11px;border:0;background:transparent;padding:0;cursor:pointer;text-align:left}
.status-pin{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--aqua-soft);color:var(--teal-700);font-size:22px}
.status-location span:last-child,.status-count{display:flex;flex-direction:column}
.status-location strong,.status-count strong{font-size:14px;line-height:1.25}
.status-location small,.status-count small{color:var(--muted);font-size:12px}
.status-divider{width:1px;height:34px;background:var(--line)}
.privacy-note{display:flex;align-items:center;gap:7px;margin:18px 0 0;color:#75888c;font-size:12px}
.privacy-note span{color:var(--green)}

.hero-visual{position:relative;min-height:520px}
.hero-photo-wrap{position:absolute;inset:0 38px 76px 0;overflow:hidden;border-radius:38px;box-shadow:var(--shadow-strong);background:var(--teal-900)}
.hero-photo{width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.hero-photo-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,32,38,.05) 25%,rgba(4,32,38,.68) 100%)}
.hero-welcome{position:absolute;left:28px;bottom:31px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.28)}
.hero-welcome small{display:block;font-size:14px;font-weight:650}
.hero-welcome strong{display:block;max-width:330px;font-size:34px;line-height:1.05;letter-spacing:-.035em}
.round-action{display:grid;place-items:center;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--teal-900);font-size:26px;box-shadow:0 10px 28px rgba(2,34,41,.2);cursor:pointer}
.favorite-hero{position:absolute;right:22px;top:22px}
.nearest-card{position:absolute;z-index:3;right:0;bottom:25px;display:grid;grid-template-columns:minmax(0,1fr) 134px;align-items:center;width:min(430px,88%);min-height:154px;padding:18px 18px 18px 22px;border:1px solid rgba(255,255,255,.8);border-radius:25px;background:rgba(255,255,255,.93);box-shadow:var(--shadow-strong);backdrop-filter:blur(14px)}
.nearest-copy{display:flex;flex-direction:column;min-width:0;padding-right:10px}
.nearest-kicker{margin-bottom:6px;color:var(--teal-600);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.nearest-copy strong{overflow:hidden;color:var(--ink);font-size:19px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.nearest-copy>span:last-child{overflow:hidden;margin-top:4px;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.floating-tip{position:absolute;z-index:3;left:-28px;top:36px;display:flex;align-items:center;gap:10px;padding:11px 14px 11px 10px;border-radius:16px;background:#fff;box-shadow:var(--shadow);transform:rotate(-2deg)}
.tip-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--aqua-soft),#fff0dc);color:var(--teal-700);font-size:18px;font-weight:900}
.floating-tip div{display:flex;flex-direction:column}
.floating-tip strong{font-size:12px}
.floating-tip small{font-size:9px;color:var(--muted)}

.compass{position:relative;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:rgba(7,52,61,.88);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 10px 26px rgba(5,45,53,.22);color:#fff;overflow:hidden}
.compass::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle at 43% 38%,rgba(255,255,255,.17),transparent 42%)}
.compass-ring{position:absolute;inset:7px;border-radius:50%;background:repeating-conic-gradient(from -1deg,rgba(94,239,232,.92) 0 2deg,transparent 2deg 10deg);-webkit-mask:radial-gradient(circle,transparent 61%,#000 62%);mask:radial-gradient(circle,transparent 61%,#000 62%)}
.compass-cardinals{position:absolute;inset:0;color:rgba(255,255,255,.72);font-size:8px;font-weight:900}
.compass-cardinals span{position:absolute}
.compass-cardinals span:nth-child(1){left:50%;top:9px;transform:translateX(-50%)}
.compass-cardinals span:nth-child(2){right:10px;top:50%;transform:translateY(-50%)}
.compass-cardinals span:nth-child(3){left:50%;bottom:9px;transform:translateX(-50%)}
.compass-cardinals span:nth-child(4){left:10px;top:50%;transform:translateY(-50%)}
.compass-needle{position:absolute;inset:0;transition:transform .28s cubic-bezier(.2,.7,.2,1);will-change:transform}
.compass-needle::before{content:"";position:absolute;left:50%;top:11%;width:3px;height:39%;border-radius:4px;background:linear-gradient(180deg,#ff7b65 0 55%,rgba(255,255,255,.9) 56%);box-shadow:0 0 10px rgba(255,123,101,.5);transform:translateX(-50%)}
.compass-needle span{position:absolute;left:50%;top:8%;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid #ff7b65;transform:translateX(-50%)}
.compass-value{position:relative;z-index:2;display:flex;align-items:baseline;gap:3px;text-shadow:0 2px 8px rgba(0,0,0,.25)}
.compass-value strong{font-size:30px;line-height:1;font-weight:500;letter-spacing:-.06em}
.compass-value small{font-size:10px;font-weight:800}
.compass-large{width:124px;height:124px}
.compass-large.is-idle .compass-ring{opacity:.34}
.compass-large.is-idle .compass-needle{opacity:.35}
.compass-card-size{width:88px;height:88px}
.compass-card-size .compass-value strong{font-size:23px}
.compass-card-size .compass-value small{font-size:8px}
.compass-card-size .compass-ring{inset:5px}
.compass-detail{width:136px;height:136px}

.category-strip{position:relative;z-index:5;margin-top:-1px;padding:23px 0;background:#fff;border-top:1px solid rgba(11,63,73,.06);border-bottom:1px solid var(--line)}
.category-scroll{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding-top:3px;padding-bottom:3px}
.category-scroll::-webkit-scrollbar{display:none}
.category-chip{display:flex;align-items:center;gap:11px;min-width:158px;padding:12px 16px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);cursor:pointer;text-align:left;transition:.2s ease;box-shadow:0 6px 16px rgba(11,63,73,.03)}
.category-chip:hover{border-color:#b8d9db;transform:translateY(-1px)}
.category-chip.active{border-color:var(--teal-600);background:linear-gradient(135deg,var(--teal-700),var(--teal-500));color:#fff;box-shadow:0 12px 28px rgba(18,103,118,.23)}
.category-chip>span:last-child{display:flex;flex-direction:column;line-height:1.2}
.category-chip strong{font-size:14px;white-space:nowrap}
.category-chip small{margin-top:3px;color:var(--muted);font-size:10px}
.category-chip.active small{color:rgba(255,255,255,.76)}
.category-icon{position:relative;display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:11px;background:var(--soft)}
.category-chip.active .category-icon{background:rgba(255,255,255,.17)}
.category-icon::before{font-size:18px}
.icon-all::before{content:"✦"}.icon-hotel::before{content:"▤"}.icon-guia::before{content:"◎"}.icon-agencia::before{content:"↝"}.icon-agroturismo::before{content:"♧"}.icon-destino::before{content:"⌖"}

.directory-section{padding:66px 0 88px;background:#fff}
.directory-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:40px;align-items:start}
.filter-panel{position:sticky;top:calc(var(--header-height) + 22px);padding:24px;border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg,#fbfdfd,#fff);box-shadow:var(--shadow-sm)}
.filter-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:20px}
.filter-panel h2{margin:6px 0 0;font-size:24px;line-height:1.05;letter-spacing:-.035em}
.filter-reset{border:0;background:transparent;color:var(--teal-600);font-size:12px;font-weight:850;cursor:pointer;padding:4px}
.directory-search{height:50px;border:1px solid var(--line);border-radius:15px;background:#fff}
.directory-search .search-icon{width:17px;height:17px;flex-basis:17px;margin-left:14px;margin-right:9px}
.directory-search input{font-size:13px;padding-right:34px}
.clear-search{position:absolute;right:8px;display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#789095;font-size:20px;cursor:pointer}
.filter-group{padding-top:22px;margin-top:22px;border-top:1px solid var(--line)}
.filter-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;color:#3f6269;font-size:12px;font-weight:850}
.filter-label button{border:0;background:transparent;color:var(--teal-600);font-size:11px;font-weight:850;cursor:pointer}
.location-panel{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:11px;border:1px solid #dce9ea;border-radius:15px;background:#fff;text-align:left;cursor:pointer}
.location-panel-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--aqua-soft);color:var(--teal-700);font-size:21px}
.location-panel>span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.location-panel strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.location-panel small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.location-chevron{color:#8aa0a4;font-size:22px}
.filter-group select,.manual-location-row select{width:100%;height:48px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:0 38px 0 13px;outline:0;cursor:pointer}
.switch-row{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:11px;cursor:pointer}
.switch-row input{position:absolute;opacity:0;pointer-events:none}
.switch-control{position:relative;width:42px;height:24px;margin-top:2px;border-radius:99px;background:#cbdadd;transition:.2s}
.switch-control::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.17);transition:.2s}
.switch-row input:checked+.switch-control{background:var(--teal-600)}
.switch-row input:checked+.switch-control::after{transform:translateX(18px)}
.switch-row span:last-child{display:flex;flex-direction:column}
.switch-row strong{font-size:12px}
.switch-row small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35}
.filter-help{margin-top:22px;padding:15px;border-radius:15px;background:#f1f8f8;color:#496a70}
.filter-help strong{display:block;font-size:11px}
.filter-help p{margin:5px 0 0;font-size:10px;line-height:1.45}
.results-area{min-width:0}
.results-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}
.results-toolbar h2{margin:5px 0 2px;font-size:36px;line-height:1.05;letter-spacing:-.043em}
.results-toolbar p{margin:0;color:var(--muted);font-size:13px}
.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.toolbar-actions .secondary-button{min-height:42px;padding-inline:14px;font-size:12px}
.location-banner{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:22px;padding:14px 15px;border:1px solid #d5e9e9;border-radius:18px;background:linear-gradient(90deg,#eaf8f7,#f7fbfb);transition:.2s}
.location-banner.is-active{border-color:#cce9dd;background:linear-gradient(90deg,#eaf8ef,#f7fbf9)}
.banner-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#fff;color:var(--teal-700);font-size:23px;box-shadow:0 5px 16px rgba(11,63,73,.07)}
.banner-copy{display:flex;flex-direction:column}
.banner-copy strong{font-size:13px}
.banner-copy span{margin-top:2px;color:var(--muted);font-size:11px}
.active-filters{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 18px}
.active-filter{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#eef7f7;color:var(--teal-800);font-size:11px;font-weight:800}
.active-filter button{display:grid;place-items:center;width:17px;height:17px;border:0;border-radius:50%;background:rgba(18,103,118,.12);color:inherit;cursor:pointer}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.service-card{position:relative;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 10px 30px rgba(11,63,73,.06);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.service-card:hover{transform:translateY(-5px);border-color:#c6dedf;box-shadow:0 20px 44px rgba(11,63,73,.12)}
.card-open{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}
.card-media{position:relative;aspect-ratio:1.34/1;overflow:hidden;background:linear-gradient(135deg,var(--teal-700),var(--blue))}
.card-image{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.service-card:hover .card-image{transform:scale(1.045)}
.card-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,36,43,.03) 30%,rgba(5,36,43,.58) 100%)}
.card-category,.card-precision{position:absolute;top:12px;display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--teal-800);font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;backdrop-filter:blur(8px)}
.card-category{left:12px}
.card-precision{right:12px;background:rgba(6,48,56,.78);color:#fff}
.card-compass{position:absolute;right:12px;bottom:12px;transform:scale(.92);transform-origin:right bottom}
.card-body{padding:16px 16px 15px}
.card-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--teal-600);font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.card-direction{color:#82969a;white-space:nowrap}
.card-title{display:-webkit-box;min-height:44px;overflow:hidden;margin:7px 0 4px;font-size:17px;line-height:1.27;letter-spacing:-.018em;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.card-address{overflow:hidden;margin:0;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.card-tags{display:flex;gap:5px;flex-wrap:wrap;min-height:22px;margin-top:10px}
.card-tag{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;background:#eef7f7;color:#4e7076;font-size:8px;font-weight:800}
.card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:13px;padding-top:12px;border-top:1px solid #edf2f2;color:var(--teal-700);font-size:11px;font-weight:850}
.card-arrow{font-size:17px;transition:transform .2s}
.service-card:hover .card-arrow{transform:translateX(3px)}
.card-favorite{position:absolute;z-index:4;right:12px;top:49px;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--teal-900);font-size:21px;box-shadow:0 5px 14px rgba(3,35,42,.14);cursor:pointer}
.card-favorite.is-saved,.drawer-favorite.is-saved{color:#e25e68}
.card-favorite.is-saved{font-size:0}
.card-favorite.is-saved::after{content:"♥";font-size:19px}
.card-skeleton{height:390px;border-radius:22px;background:linear-gradient(110deg,#f1f5f5 8%,#fafcfc 18%,#f1f5f5 33%);background-size:200% 100%;animation:shimmer 1.25s linear infinite}
@keyframes shimmer{to{background-position-x:-200%}}
.empty-state{padding:76px 20px;text-align:center;border:1px dashed #cbdfe0;border-radius:24px;background:#fbfdfd}
.empty-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 16px;border-radius:22px;background:var(--aqua-soft);color:var(--teal-700);font-size:31px}
.empty-state h3{margin:0 0 7px;font-size:23px}
.empty-state p{margin:0 auto 20px;color:var(--muted)}
.load-more-wrap{display:flex;justify-content:center;margin-top:30px}
.load-more{min-width:230px}

.how-section{padding:88px 0;background:linear-gradient(180deg,#f5f9fa,#fbfaf6)}
.section-heading.centered{max-width:700px;margin:0 auto 38px;text-align:center}
.section-heading h2{margin:7px 0 10px;font-size:42px;line-height:1.05;letter-spacing:-.045em}
.section-heading p{margin:0;color:var(--muted)}
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step-card{position:relative;min-height:230px;padding:25px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 10px 30px rgba(11,63,73,.05)}
.step-card>span{position:absolute;right:18px;top:16px;color:#c8d9db;font-size:12px;font-weight:900}
.step-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:25px;border-radius:16px;background:linear-gradient(135deg,var(--aqua-soft),#fff0dc);color:var(--teal-700);font-size:24px;font-weight:900}
.step-card h3{margin:0 0 7px;font-size:20px}
.step-card p{margin:0;color:var(--muted);font-size:13px}
.provider-section{padding:78px 0;background:#fff}
.provider-card{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:42px;min-height:230px;padding:48px 58px;border-radius:32px;background:linear-gradient(115deg,var(--teal-800),#308da0 58%,#658ac8);color:#fff;box-shadow:var(--shadow)}
.provider-card::before,.provider-card::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:50%;pointer-events:none}
.provider-card::before{right:-80px;top:-150px;width:390px;height:390px}
.provider-card::after{right:28px;top:-80px;width:260px;height:260px}
.section-kicker.light{color:#bff7f1}
.provider-card h2{position:relative;z-index:1;max-width:720px;margin:8px 0 10px;font-size:42px;line-height:1.04;letter-spacing:-.045em}
.provider-card p{position:relative;z-index:1;max-width:650px;margin:0;color:rgba(255,255,255,.77)}
.provider-card .white-button{position:relative;z-index:1}

.site-footer{padding:56px 0 24px;background:var(--teal-950);color:#fff}
.footer-grid{display:grid;grid-template-columns:1.65fr .7fr .7fr 1fr;gap:50px;padding-bottom:42px}
.footer-brand .footer-main-logo{display:block;width:190px;height:auto}
.footer-brand p{max-width:320px;color:rgba(255,255,255,.62);font-size:12px}
.footer-brand .social-logo{display:block;width:190px;height:auto;margin-top:18px;opacity:1}
.footer-grid>div:not(:first-child){display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.footer-grid strong{margin-bottom:7px;font-size:13px}
.footer-grid a,.footer-grid>div:last-child p{margin:0;color:rgba(255,255,255,.62);font-size:11px}
.footer-grid a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.45);font-size:10px}
.mobile-nav{display:none}

.location-dialog{width:min(520px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:0;border:0;border-radius:30px;background:#fff;color:var(--ink);box-shadow:0 40px 120px rgba(2,34,41,.35);overflow:auto}
.location-dialog::backdrop{background:rgba(5,35,41,.62);backdrop-filter:blur(7px)}
.dialog-shell{position:relative;padding:34px}
.dialog-close{position:absolute;right:18px;top:17px;z-index:2;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#eef5f5;color:var(--teal-900);font-size:24px;cursor:pointer}
.dialog-art{height:130px;margin:-34px -34px 27px;display:grid;place-items:center;background:radial-gradient(circle at 50% 75%,rgba(88,208,204,.28),transparent 48%),linear-gradient(135deg,#eaf8f7,#fff3e6);overflow:hidden}
.dialog-compass{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;border:7px solid rgba(255,255,255,.84);background:linear-gradient(135deg,var(--teal-700),var(--blue));box-shadow:0 18px 40px rgba(18,103,118,.24);color:#fff;font-size:42px;transform:rotate(-8deg)}
.location-dialog h2{margin:8px 0 10px;font-size:32px;line-height:1.05;letter-spacing:-.04em}
.location-dialog>form>p{margin:0 0 22px;color:var(--muted);font-size:14px}
.dialog-secure{margin:9px 0 0!important;text-align:center;font-size:10px!important;color:#819397!important}
.or-separator{display:flex;align-items:center;gap:10px;margin:22px 0 17px;color:#8a9b9e;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.or-separator::before,.or-separator::after{content:"";height:1px;flex:1;background:var(--line)}
.manual-location-label{display:block;margin-bottom:7px;font-size:11px;font-weight:850;color:#45666d}
.manual-location-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.manual-location-row .secondary-button{min-height:48px;border-radius:14px}
.gps-error{margin-top:13px;padding:11px 12px;border-radius:12px;background:#fff0f0;color:var(--danger);font-size:11px}

.drawer-backdrop{position:fixed;z-index:300;inset:0;background:rgba(5,34,40,.55);backdrop-filter:blur(5px);opacity:0;transition:opacity .25s}
.drawer-backdrop.is-visible{opacity:1}
.service-drawer{position:fixed;z-index:310;top:0;right:0;width:min(520px,100%);height:100dvh;background:#fff;box-shadow:-30px 0 80px rgba(2,31,37,.25);overflow:auto;transform:translateX(105%);transition:transform .32s cubic-bezier(.22,.8,.25,1)}
.service-drawer.is-open{transform:translateX(0)}
.drawer-close{position:fixed;z-index:4;right:16px;top:16px;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--teal-900);font-size:27px;box-shadow:0 8px 20px rgba(2,33,40,.16);cursor:pointer}
.drawer-image-wrap{position:relative;height:310px;background:var(--teal-900);overflow:hidden}
.drawer-image-wrap>img{width:100%;height:100%;object-fit:cover}
.drawer-image-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,28,34,.02) 45%,rgba(3,28,34,.72) 100%)}
.drawer-category{position:absolute;left:20px;bottom:20px;padding:7px 11px;border-radius:999px;background:#fff;color:var(--teal-800);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.drawer-favorite{position:absolute;right:20px;bottom:17px;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:var(--teal-900);font-size:24px;box-shadow:0 8px 20px rgba(2,33,40,.16);cursor:pointer}
.drawer-content{padding:27px 28px 40px}
.drawer-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.drawer-location{display:block;margin-bottom:5px;color:var(--teal-600);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.drawer-heading h2{margin:0;font-size:32px;line-height:1.08;letter-spacing:-.04em}
.share-button{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--teal-700);font-size:20px;cursor:pointer}
.drawer-navigation{display:grid;grid-template-columns:136px minmax(0,1fr);gap:20px;align-items:center;margin:27px 0;padding:19px;border-radius:24px;background:linear-gradient(135deg,#e8f7f6,#f9f7f2)}
.drawer-navigation-copy{display:flex;flex-direction:column;min-width:0}
.drawer-navigation-copy>span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.drawer-navigation-copy>strong{margin:4px 0;font-size:18px}
.drawer-navigation-copy>small{margin-bottom:8px;color:var(--muted);font-size:10px;line-height:1.35}
.drawer-navigation-copy .text-button{font-size:10px;text-align:left}
.service-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 0 21px}
.fact{min-width:0;padding:13px;border:1px solid var(--line);border-radius:15px;background:#fff}
.fact dt{color:#839699;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.fact dd{overflow:hidden;margin:4px 0 0;font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.contact-button{display:flex;align-items:center;gap:10px;min-height:54px;padding:10px 12px;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--ink);font-size:12px;font-weight:800;cursor:pointer}
.contact-button:hover{border-color:#b4d6d8;background:#faffff}
.contact-button.primary-contact{grid-column:1/-1;justify-content:center;border-color:transparent;background:linear-gradient(135deg,var(--teal-700),var(--teal-500));color:#fff;box-shadow:0 12px 26px rgba(18,103,118,.2)}
.contact-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--aqua-soft);color:var(--teal-700);font-size:17px}
.primary-contact .contact-icon{background:rgba(255,255,255,.18);color:#fff}
.no-payment-note{display:flex;gap:10px;margin-top:18px;padding:13px;border-radius:15px;background:#f3f7f7;color:#526e74}
.no-payment-note>span{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:#fff;color:var(--teal-700);font-size:12px;font-weight:900}
.no-payment-note p{margin:0;font-size:10px;line-height:1.45}
.toast{position:fixed;z-index:999;left:50%;bottom:30px;max-width:min(440px,calc(100% - 30px));padding:12px 18px;border-radius:999px;background:var(--teal-950);color:#fff;box-shadow:var(--shadow-strong);font-size:12px;font-weight:800;transform:translate(-50%,20px);opacity:0;transition:.25s}
.toast.is-visible{transform:translate(-50%,0);opacity:1}

@media (max-width:1080px){
    .hero-grid{grid-template-columns:minmax(0,1fr) minmax(390px,.9fr);gap:42px}
    .hero h1{font-size:64px}
    .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .steps-grid{grid-template-columns:repeat(2,1fr)}
    .footer-grid{grid-template-columns:1.4fr repeat(3,1fr);gap:30px}
}

@media (max-width:880px){
    :root{--header-height:68px}
    .shell{width:min(100% - 32px,var(--shell))}
    .desktop-nav,.location-shortcut{display:none}
    .header-inner{gap:14px}
    .adaptive-panama-logo{width:147px;height:48px}
    .header-actions{margin-left:auto}
    .hero{padding:46px 0 54px}
    .hero-grid{grid-template-columns:1fr;gap:42px}
    .hero-copy{text-align:center}
    .eyebrow{justify-content:center}
    .hero h1{max-width:720px;margin-inline:auto;font-size:clamp(48px,11vw,74px)}
    .hero-lead,.hero-search{margin-left:auto;margin-right:auto}
    .hero-status,.privacy-note{justify-content:center}
    .hero-visual{width:min(640px,100%);min-height:515px;margin-inline:auto}
    .directory-layout{grid-template-columns:1fr}
    .filter-panel{position:relative;top:auto;display:none}
    .results-toolbar{align-items:flex-start}
    .provider-card{padding:42px;flex-direction:column;align-items:flex-start}
    .provider-card h2{font-size:36px}
    .footer-grid{grid-template-columns:1.4fr 1fr 1fr}
    .footer-grid>div:last-child{grid-column:1/-1}
}

@media (max-width:640px){
    :root{--radius:18px}
    html{scroll-padding-top:80px}
    body{padding-bottom:78px}
    .shell{width:calc(100% - 26px)}
    .site-header{background:rgba(255,255,255,.92)}
    .adaptive-panama-logo{width:132px;height:44px}
    .header-actions .primary-button{min-height:38px;padding-inline:13px;font-size:11px}
    .hero{min-height:auto;padding:30px 0 36px;background:linear-gradient(180deg,#f1fbfb,#fbfaf6)}
    .hero-copy{text-align:left}
    .eyebrow{justify-content:flex-start;font-size:9px}
    .hero h1{margin:15px 0 17px;font-size:46px;line-height:.98}
    .hero-lead{font-size:15px;line-height:1.48}
    .hero-search{grid-template-columns:1fr;padding:7px;border-radius:18px}
    .search-field{height:48px}
    .search-submit{min-height:46px;border-radius:14px}
    .hero-status{justify-content:flex-start;gap:13px;margin-top:17px}
    .status-divider{height:30px}
    .status-location small,.status-count small{font-size:9px}
    .privacy-note{justify-content:flex-start;align-items:flex-start;font-size:9px;line-height:1.4}
    .hero-visual{min-height:475px;margin-top:-2px}
    .hero-photo-wrap{inset:0 0 92px 0;border-radius:29px}
    .hero-welcome{left:20px;bottom:24px}
    .hero-welcome strong{font-size:28px}
    .nearest-card{right:10px;bottom:20px;grid-template-columns:minmax(0,1fr) 112px;width:calc(100% - 20px);min-height:132px;padding:15px 14px 15px 18px;border-radius:21px}
    .compass-large{width:104px;height:104px}
    .nearest-copy strong{font-size:17px}
    .floating-tip{left:12px;top:19px;transform:none}
    .favorite-hero{right:15px;top:15px;width:42px;height:42px}
    .category-strip{padding:14px 0}
    .category-scroll{width:100%;padding-left:13px;padding-right:13px}
    .category-chip{min-width:132px;padding:10px 12px;border-radius:16px}
    .category-icon{width:31px;height:31px;flex-basis:31px}
    .category-chip strong{font-size:12px}
    .directory-section{padding:38px 0 58px}
    .directory-layout{gap:0}
    .results-toolbar{display:block;margin-bottom:16px}
    .results-toolbar h2{font-size:31px}
    .results-toolbar p{font-size:11px}
    .toolbar-actions{justify-content:flex-start;margin-top:14px}
    .toolbar-actions .secondary-button{min-height:38px}
    .compass-permission{display:none}
    .location-banner{grid-template-columns:38px minmax(0,1fr);padding:12px;border-radius:16px}
    .location-banner .primary-button{grid-column:1/-1;width:100%}
    .banner-icon{width:38px;height:38px}
    .banner-copy strong{font-size:11px}
    .banner-copy span{font-size:9px}
    .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .service-card{border-radius:17px}
    .card-media{aspect-ratio:1/1.02}
    .card-category{top:8px;left:8px;max-width:calc(100% - 16px);min-height:22px;padding:0 7px;font-size:6.5px}
    .card-precision{display:none}
    .card-favorite{right:8px;top:37px;width:30px;height:30px;font-size:18px}
    .card-compass{right:7px;bottom:7px;transform:scale(.72);transform-origin:right bottom}
    .card-body{padding:11px 11px 10px}
    .card-meta{font-size:7px}
    .card-title{min-height:38px;margin:5px 0 3px;font-size:14px;line-height:1.3}
    .card-address{font-size:9px}
    .card-tags{display:none}
    .card-footer{margin-top:9px;padding-top:8px;font-size:9px}
    .card-arrow{font-size:14px}
    .section-heading h2{font-size:34px}
    .how-section{padding:58px 0}
    .steps-grid{grid-template-columns:1fr;gap:11px}
    .step-card{min-height:auto;padding:20px 20px 20px 82px}
    .step-icon{position:absolute;left:19px;top:20px;width:46px;height:46px;margin:0}
    .step-card h3{font-size:18px}
    .provider-section{padding:52px 0}
    .provider-card{padding:30px 24px;border-radius:25px}
    .provider-card h2{font-size:30px}
    .provider-card p{font-size:13px}
    .provider-card .white-button{width:100%}
    .site-footer{padding:45px 0 22px}
    .footer-grid{grid-template-columns:1fr 1fr;gap:28px 20px}
    .footer-brand{grid-column:1/-1}
    .footer-grid>div:last-child{grid-column:1/-1}
    .footer-bottom{flex-direction:column;gap:4px}
    .mobile-nav{position:fixed;z-index:180;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);height:72px;padding:7px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--line);background:rgba(255,255,255,.96);box-shadow:0 -8px 28px rgba(11,63,73,.1);backdrop-filter:blur(16px)}
    .mobile-nav a,.mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:0;background:transparent;color:#5f7479;cursor:pointer}
    .mobile-nav span{font-size:22px;line-height:1}
    .mobile-nav small{font-size:8px;font-weight:800}
    .mobile-nav .active{color:var(--teal-600)}
    .mobile-location{position:relative;top:-17px}
    .mobile-location span{display:grid;place-items:center;width:52px;height:52px;border:6px solid #fff;border-radius:50%;background:linear-gradient(135deg,var(--teal-600),var(--blue));color:#fff;box-shadow:0 8px 20px rgba(18,103,118,.25)}
    .mobile-location small{margin-top:1px}
    .dialog-shell{padding:27px 22px 24px}
    .dialog-art{height:110px;margin:-27px -22px 23px}
    .location-dialog h2{font-size:28px}
    .manual-location-row{grid-template-columns:1fr}
    .service-drawer{padding-bottom:78px}
    .drawer-image-wrap{height:250px}
    .drawer-content{padding:23px 18px 36px}
    .drawer-heading h2{font-size:27px}
    .drawer-navigation{grid-template-columns:112px minmax(0,1fr);gap:14px;padding:14px}
    .compass-detail{width:112px;height:112px}
    .service-facts{grid-template-columns:1fr 1fr}
    .contact-grid{grid-template-columns:1fr 1fr}
    .toast{bottom:88px}
}

@media (max-width:390px){
    .hero h1{font-size:41px}
    .service-grid{grid-template-columns:1fr 1fr}
    .card-title{font-size:13px}
    .drawer-navigation{grid-template-columns:100px minmax(0,1fr)}
    .compass-detail{width:100px;height:100px}
    .compass-detail .compass-value strong{font-size:24px}
}

@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
