.provider-portfolio-card { --portfolio-accent: #075be8; overflow: hidden; }
.provider-portfolio-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.provider-portfolio-heading h2 { color:#0f172a; }
.provider-portfolio-actions { display:flex; align-items:center; justify-content:flex-end; gap:.55rem; flex-wrap:wrap; }
.provider-portfolio-card button { -webkit-tap-highlight-color: transparent; }
.provider-portfolio-card img { display:block; width:100%; height:100%; object-fit:cover; }
.provider-airbnb-main,.provider-portfolio-tile,.provider-carousel-item,.provider-details-main,.provider-process-comparison button,.provider-process-steps button { position:relative; padding:0; border:0; overflow:hidden; background:#e8eef7; cursor:pointer; }
.provider-airbnb-main img,.provider-portfolio-tile img,.provider-carousel-item img,.provider-details-main img,.provider-process-comparison img,.provider-process-steps img { transition:transform .35s ease,opacity .2s ease; }
.provider-airbnb-main:hover img,.provider-portfolio-tile:hover img,.provider-carousel-item:hover img,.provider-details-main:hover img { transform:scale(1.025); }
.provider-airbnb-main-label,.provider-portfolio-tile>span,.provider-carousel-item>span,.provider-process-comparison button>span { position:absolute; z-index:3; left:12px; bottom:12px; max-width:calc(100% - 24px); padding:6px 10px; border-radius:8px; color:#fff; background:rgba(15,23,42,.82); font-size:.74rem; font-weight:800; line-height:1.2; backdrop-filter:blur(7px); }

/* Modelo 1 */
.provider-portfolio-spotlight { display:grid; grid-template-columns:minmax(0,1fr) 170px; gap:10px; min-height:410px; }
.provider-airbnb-main { width:100%; min-width:0; min-height:410px; border-radius:16px; }
.provider-airbnb-main::before { content:""; position:absolute; inset:-25px; background-image:var(--portfolio-bg); background-position:center; background-size:cover; filter:blur(30px); opacity:.22; transform:scale(1.12); }
.provider-airbnb-main-image { position:relative; z-index:2; object-fit:contain!important; }
.provider-airbnb-main-image.is-changing { opacity:.2; }
.provider-airbnb-thumbnails { display:grid; grid-template-columns:1fr; grid-auto-rows:1fr; gap:8px; min-width:0; max-height:410px; overflow-y:auto; scrollbar-width:thin; }
.provider-airbnb-thumb { min-height:74px; padding:0; overflow:hidden; border:2px solid transparent; border-radius:11px; background:#e8eef7; opacity:.76; }
.provider-airbnb-thumb.active { border-color:var(--portfolio-accent); opacity:1; }
.provider-gallery-main-nav,.provider-carousel-nav { position:absolute; z-index:5; top:50%; display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(15,23,42,.12); border-radius:50%; color:#075be8; background:rgba(255,255,255,.94); box-shadow:0 8px 22px rgba(15,23,42,.18); transform:translateY(-50%); }
.provider-gallery-main-prev { left:14px; }.provider-gallery-main-next { right:14px; }

/* Modelo 2 */
.provider-portfolio-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.provider-portfolio-grid .provider-portfolio-tile { aspect-ratio:4/3; border-radius:13px; }

/* Modelo 3 */
.provider-portfolio-mosaic { display:grid; grid-template-columns:1.2fr repeat(3,minmax(0,1fr)); grid-template-rows:repeat(2,180px); gap:10px; }
.provider-portfolio-mosaic .provider-portfolio-tile { border-radius:13px; }
.provider-portfolio-mosaic .provider-portfolio-tile:first-child { grid-row:1/3; }
.provider-portfolio-mosaic .provider-portfolio-tile:nth-child(2) { grid-column:2/4; }

/* Modelo 4 */
.provider-portfolio-process { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr); gap:14px; }
.provider-process-comparison { display:grid; grid-template-columns:1fr 1fr; gap:3px; min-height:330px; overflow:hidden; border-radius:15px; }
.provider-process-comparison button { min-width:0; }
.provider-process-comparison button>span.is-after { left:auto; right:12px; background:var(--portfolio-accent); }
.provider-process-steps { padding:14px; border-radius:15px; background:#f4f7fb; }
.provider-process-steps h3 { margin:0 0 12px; color:#172033; font-size:.92rem; font-weight:800; }
.provider-process-steps>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.provider-process-steps button { min-width:0; border-radius:10px; overflow:visible; background:transparent; text-align:center; }
.provider-process-steps button img { aspect-ratio:4/3; border-radius:9px; }
.provider-process-steps button strong { display:grid; place-items:center; width:22px; height:22px; margin:-11px auto 3px; position:relative; border-radius:50%; color:#fff; background:var(--portfolio-accent); font-size:.68rem; }
.provider-process-steps button span { display:block; color:#475569; font-size:.67rem; font-weight:700; }

/* Modelo 5 */
.provider-portfolio-carousel-wrap { position:relative; }
.provider-portfolio-carousel { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(190px,24%); gap:10px; padding:2px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.provider-portfolio-carousel::-webkit-scrollbar { display:none; }
.provider-carousel-item { aspect-ratio:4/3; border-radius:13px; scroll-snap-align:start; }
.provider-carousel-nav { top:50%; }.provider-carousel-nav.is-prev { left:-13px; }.provider-carousel-nav.is-next { right:-13px; }

/* Modelo 6 */
.provider-portfolio-details { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:20px; align-items:stretch; }
.provider-details-main { min-height:370px; border-radius:15px; }
.provider-details-copy { display:flex; flex-direction:column; min-width:0; padding:10px 4px; }
.provider-details-eyebrow { color:var(--portfolio-accent); font-size:.7rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.provider-details-copy h3 { margin:5px 0 8px; color:#0f172a; font-size:1.35rem; font-weight:850; overflow-wrap:anywhere; }
.provider-details-copy p { color:#64748b; font-size:.86rem; line-height:1.5; }
.provider-details-copy ul { display:grid; gap:6px; margin:2px 0 15px; padding:0; list-style:none; color:#475569; font-size:.8rem; }
.provider-details-copy li i { margin-right:7px; color:#0ea5e9; }
.provider-details-thumbs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; margin-top:auto; }
.provider-details-thumbs button { aspect-ratio:1; padding:0; border:2px solid transparent; border-radius:8px; overflow:hidden; opacity:.72; }
.provider-details-thumbs button.active { border-color:var(--portfolio-accent); opacity:1; }

/* Modal de fotos */
.provider-gallery-modal .modal-body { min-height:0; }
.provider-gallery-modal-image { display:block; max-width:calc(100vw - 150px); max-height:calc(100vh - 190px); object-fit:contain; }
.provider-gallery-nav { position:absolute; top:50%; z-index:4; width:48px; height:48px; border:0; border-radius:50%; color:#111827; background:rgba(255,255,255,.92); transform:translateY(-50%); }
.provider-gallery-prev { left:22px; }.provider-gallery-next { right:22px; }
.provider-gallery-modal-thumb { width:86px; height:62px; padding:0; border:2px solid transparent; border-radius:9px; overflow:hidden; opacity:.6; background:transparent; }
.provider-gallery-modal-thumb.active { border-color:#fff; opacity:1; }
.provider-gallery-modal-thumb img { width:100%; height:100%; object-fit:cover; }

/* Escolha de modelo */
.provider-layout-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.provider-layout-option { position:relative; display:grid; grid-template-columns:38px 92px minmax(0,1fr); grid-template-rows:auto 1fr; gap:3px 10px; min-width:0; padding:12px; border:2px solid #dbe4f0; border-radius:14px; background:#fff; cursor:pointer; transition:border-color .2s,box-shadow .2s,transform .2s; }
.provider-layout-option:hover { transform:translateY(-1px); border-color:#94bdf8; }
.provider-layout-option.is-selected { border-color:#075be8; box-shadow:0 0 0 3px rgba(7,91,232,.1); }
.provider-layout-option input { position:absolute; opacity:0; pointer-events:none; }
.provider-layout-number { grid-row:1/3; display:grid; place-items:center; align-self:center; width:32px; height:32px; border-radius:50%; color:#fff; background:#075be8; font-weight:900; }
.provider-layout-option strong { align-self:end; min-width:0; color:#172033; font-size:.86rem; overflow-wrap:anywhere; }
.provider-layout-option small { min-width:0; color:#64748b; font-size:.7rem; line-height:1.35; }
.provider-layout-schematic { grid-row:1/3; display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr); gap:3px; width:92px; height:64px; padding:5px; border-radius:9px; background:#eaf1fb; }
.provider-layout-schematic i { display:block; border-radius:3px; background:#75aaf7; }
.provider-layout-schematic.is-spotlight i:first-child,.provider-layout-schematic.is-details i:first-child { grid-column:1/3; grid-row:1/3; }
.provider-layout-schematic.is-mosaic i:first-child { grid-row:1/3; }
.provider-layout-schematic.is-process { grid-template-columns:1fr 1fr; }.provider-layout-schematic.is-process i:nth-child(n+3) { display:none; }
.provider-layout-schematic.is-carousel { grid-template-columns:repeat(5,1fr); grid-template-rows:1fr; }.provider-layout-schematic.is-carousel i { grid-row:1; }

html[data-theme="dark"] .provider-portfolio-card,html[data-theme="dark"] .provider-layout-modal .modal-content { background:#111827!important; border-color:#334155!important; }
html[data-theme="dark"] .provider-portfolio-heading h2,html[data-theme="dark"] .provider-details-copy h3,html[data-theme="dark"] .provider-layout-option strong { color:#f8fafc; }
html[data-theme="dark"] .provider-process-steps,html[data-theme="dark"] .provider-layout-option { background:#1e293b; border-color:#334155; }

@media (max-width:767.98px) {
    .provider-portfolio-card { padding:14px!important; border-radius:16px!important; }
    .provider-portfolio-heading { flex-direction:column; gap:.75rem; margin-bottom:1rem; }
    .provider-portfolio-heading>div:first-child { width:100%; }
    .provider-portfolio-actions { width:100%; justify-content:flex-start; }
    .provider-portfolio-actions .btn { padding:.42rem .8rem!important; font-size:.76rem; }
    .provider-portfolio-spotlight { display:block; min-height:0; }
    .provider-airbnb-main { min-height:0; height:270px; border-radius:13px; }
    .provider-airbnb-thumbnails { display:grid; grid-auto-flow:column; grid-auto-columns:88px; grid-template-columns:none; grid-template-rows:68px; gap:7px; margin-top:8px; overflow-x:auto; overflow-y:hidden; }
    .provider-airbnb-thumb { min-height:0; height:68px; }
    .provider-portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .provider-portfolio-grid .provider-portfolio-tile { aspect-ratio:1; }
    .provider-portfolio-mosaic { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:220px repeat(2,130px); gap:7px; }
    .provider-portfolio-mosaic .provider-portfolio-tile:first-child { grid-column:1/3; grid-row:auto; }
    .provider-portfolio-mosaic .provider-portfolio-tile:nth-child(2) { grid-column:auto; }
    .provider-portfolio-process { grid-template-columns:1fr; }
    .provider-process-comparison { min-height:260px; }
    .provider-process-steps { padding:10px; }
    .provider-process-steps>div { display:flex; overflow-x:auto; }
    .provider-process-steps button { flex:0 0 120px; }
    .provider-portfolio-carousel { grid-auto-columns:72%; }
    .provider-carousel-nav { width:34px; height:34px; }.provider-carousel-nav.is-prev { left:-7px; }.provider-carousel-nav.is-next { right:-7px; }
    .provider-portfolio-details { grid-template-columns:1fr; gap:10px; }
    .provider-details-main { min-height:0; height:280px; }
    .provider-details-copy { padding:6px 2px; }
    .provider-details-thumbs { grid-template-columns:repeat(6,58px); overflow-x:auto; }
    .provider-gallery-modal-image { max-width:calc(100vw - 20px); max-height:calc(100vh - 190px); }
    .provider-gallery-nav { width:40px; height:40px; }.provider-gallery-prev { left:7px; }.provider-gallery-next { right:7px; }
    .provider-layout-options { grid-template-columns:1fr; }
    .provider-layout-option { grid-template-columns:34px 78px minmax(0,1fr); padding:10px; }
    .provider-layout-schematic { width:78px; height:56px; }
}

@media (max-width:379.98px) {
    .provider-portfolio-grid { grid-template-columns:1fr; }
    .provider-portfolio-mosaic { display:flex; overflow-x:auto; }
    .provider-portfolio-mosaic .provider-portfolio-tile { flex:0 0 82%; height:230px; }
    .provider-layout-option { grid-template-columns:30px 64px minmax(0,1fr); gap:3px 7px; }
    .provider-layout-schematic { width:64px; height:50px; }
}
