/* ============================================================
   PLENNUS SAÚDE — Custom CSS para Divi
   Colar em: Divi → Theme Options → Custom CSS
   OU via Personalizar → CSS adicional
   Versão: Julho 2026
   ============================================================ */

/* --- TOKENS DE DESIGN ---------------------------------------- */
:root {
  --olive:      #8A9585;
  --olive-dark: #5F685A;
  --terra:      #C08A5B;
  --terra-dark: #8F5F37;
  --cream:      #FAF8F4;
  --paper:      #FFFDF9;
  --ink:        #2C2C2A;
  --muted:      #706F6A;
  --line:       #E8E1D7;
  --radius:     14px;
  --radius-sm:  8px;
  --shadow-sm:  0 4px 14px rgba(52,42,31,.07);
  --shadow-md:  0 10px 28px rgba(52,42,31,.11);
}

/* --- RESET GERAL -------------------------------------------- */
body { background: var(--cream); color: var(--ink); }
a    { color: var(--terra-dark); }
a:hover { color: var(--terra); }

/* --- TIPOGRAFIA --------------------------------------------- */
.et_pb_text h1,
.et_pb_text h2,
.et_pb_text h3 { font-family: Georgia, 'Times New Roman', serif; color: var(--ink); }
.plennus-accent { color: var(--terra); }

/* ============================================================
   HEADER / NAVEGAÇÃO
   ============================================================ */
#main-header,
.et-fixed-header { background: rgba(255,253,249,.96) !important; border-bottom: 1px solid var(--line) !important; }
#main-header .et_pb_menu a { color: var(--ink) !important; font-size: 13px; font-weight: 600; letter-spacing: .02em; }
#main-header .et_pb_menu a:hover { color: var(--terra) !important; }
.plennus-cta-header {
  background: var(--terra) !important; color: white !important;
  border-radius: 8px !important; padding: 8px 18px !important;
  font-weight: 700 !important; font-size: 13px !important;
  border: none !important; transition: background .2s;
}
.plennus-cta-header:hover { background: var(--terra-dark) !important; }

/* ============================================================
   HOME — HERO
   ============================================================ */
.plennus-hero { padding: 36px 48px 24px; }
.plennus-hero h1 {
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 700; line-height: 1.02;
  letter-spacing: -.03em; color: #252421;
}
.plennus-hero .subtitle {
  font-size: 14px; color: var(--muted);
  line-height: 1.5; margin: 12px 0 22px;
  max-width: 560px;
}

/* Barra de busca */
.plennus-searchbar {
  display: flex; align-items: center;
  background: white; border: 1px solid var(--line);
  border-radius: 11px; height: 50px;
  box-shadow: 0 8px 20px rgba(60,49,39,.09);
  overflow: hidden; max-width: 660px;
}
.plennus-searchbar input {
  flex: 1; height: 100%; border: 0; outline: 0;
  padding: 0 18px; font-size: 13px; color: var(--muted);
  background: white;
}
.plennus-searchbar button {
  width: 56px; height: 100%;
  background: var(--terra); color: white;
  border: 0; cursor: pointer; display: grid; place-items: center;
  transition: background .2s;
}
.plennus-searchbar button:hover { background: var(--terra-dark); }

/* Chips de especialidade */
.plennus-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.plennus-chip {
  border: 1px solid #DFD8CE; background: #F8F6F0;
  border-radius: 999px; padding: 7px 13px;
  font-size: 11px; font-weight: 700; color: #44423D;
  display: flex; align-items: center; gap: 6px;
  cursor: pointer; transition: all .15s;
}
.plennus-chip:hover,
.plennus-chip.active {
  background: var(--olive); color: white;
  border-color: var(--olive);
}
.plennus-chip svg { width: 13px; height: 13px; }

/* Card de ambiente (imagem lateral) */
.plennus-ambient {
  border-radius: var(--radius); border: 1px solid #E5DED4;
  background: white; overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.plennus-ambient-photo {
  height: 150px; overflow: hidden;
  background: linear-gradient(135deg, #e7dfd0, #b7b79d);
}
.plennus-ambient-photo img { width: 100%; height: 100%; object-fit: cover; }
.plennus-ambient-label {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; background: white;
}
.plennus-ambient-label .leaf {
  width: 32px; height: 32px; border-radius: 9px;
  background: #F4F1E9; display: grid;
  place-items: center; color: var(--olive-dark); font-size: 18px;
  flex-shrink: 0;
}
.plennus-ambient-label p {
  margin: 0; font-size: 12.5px; font-weight: 700;
  line-height: 1.3; color: #4A4A45;
}

/* ============================================================
   HOME — GRID DE CARDS DE PROFISSIONAIS
   ============================================================ */
.plennus-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
}
.plennus-pro-card {
  display: grid; grid-template-columns: 100px 1fr;
  min-height: 150px; border: 1px solid var(--line);
  border-radius: var(--radius); overflow: hidden;
  background: white; box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease;
}
.plennus-pro-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.plennus-pro-photo { overflow: hidden; min-height: 150px; }
.plennus-pro-photo img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .25s ease;
}
.plennus-pro-card:hover .plennus-pro-photo img { transform: scale(1.04); }
.plennus-pro-info { padding: 13px 11px 10px; display: flex; flex-direction: column; }
.plennus-pro-info strong { font-size: 12.5px; line-height: 1.2; margin-bottom: 5px; }
.plennus-pro-spec { font-size: 11px; color: var(--muted); line-height: 1.35; margin-bottom: 4px; }
.plennus-pro-crm  { font-size: 10.5px; color: #5C5B56; margin-bottom: 5px; }

/* Avaliações GMB no card */
.plennus-gmb-card {
  display: flex; align-items: center; gap: 4px;
  margin-bottom: 6px; font-size: 10.5px; color: var(--muted);
}
.plennus-stars { color: #F4A017; letter-spacing: 1px; }
.plennus-gmb-card .rating-num { font-weight: 700; color: var(--ink); }

/* Tag badge sobre a foto */
.plennus-tag-badge {
  position: absolute; top: 8px; left: 8px;
  background: var(--terra); color: white;
  font-size: 9.5px; font-weight: 700;
  padding: 3px 8px; border-radius: 999px;
  white-space: nowrap; z-index: 1;
}
.plennus-pro-photo-wrap { position: relative; overflow: hidden; min-height: 150px; }

/* Tags de especialidade / atuação */
.plennus-tagrow { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: auto; }
.plennus-tag {
  font-size: 9.5px; padding: 4px 7px;
  border: 1px solid #DDD5CA; border-radius: 999px;
  background: #FBFAF6; color: #54524D;
}

/* Botões do card */
.plennus-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 10px; }
.plennus-btn {
  border: 1px solid #D6CABD; background: white;
  border-radius: 7px; height: 30px; font-size: 10.5px;
  font-weight: 700; color: #34332F; cursor: pointer;
  text-decoration: none; display: grid; place-items: center;
  transition: all .15s;
}
.plennus-btn:hover { border-color: var(--olive); color: var(--olive-dark); }
.plennus-btn.primary { background: var(--terra); border-color: var(--terra); color: white; }
.plennus-btn.primary:hover { background: var(--terra-dark); border-color: var(--terra-dark); }
.plennus-btn.green  { background: var(--olive); border-color: var(--olive); color: white; }
.plennus-btn.green:hover  { background: var(--olive-dark); border-color: var(--olive-dark); }
.plennus-btn.full   { width: 100%; height: 38px; }

/* Título de seção com link */
.plennus-section-title {
  display: flex; align-items: center;
  justify-content: space-between; margin-bottom: 14px;
}
.plennus-section-title h2 {
  font-family: Georgia, serif; font-size: 22px;
  margin: 0; letter-spacing: -.02em;
}
.plennus-link-mini {
  font-size: 12px; color: var(--terra-dark);
  font-weight: 700; text-decoration: none;
}
.plennus-link-mini:hover { color: var(--terra); }

/* ============================================================
   HOME — COMO FUNCIONA
   ============================================================ */
.plennus-steps {
  background: #FBF8F1; border-radius: var(--radius);
  padding: 22px 32px;
  display: grid; grid-template-columns: repeat(4, 1fr) 240px;
  gap: 20px; align-items: center; margin: 0 0 18px;
}
.plennus-step .icon {
  width: 32px; height: 32px; border: 1.4px solid var(--olive-dark);
  border-radius: 8px; display: grid; place-items: center;
  color: var(--olive-dark); margin-bottom: 6px;
}
.plennus-step b  { font-size: 12px; display: block; margin-bottom: 4px; }
.plennus-step p  { font-size: 10.5px; color: var(--muted); line-height: 1.4; margin: 0; }

/* Mapbox mini */
.plennus-mapbox {
  display: grid; grid-template-columns: 96px 1fr;
  gap: 10px; background: white; border: 1px solid var(--line);
  border-radius: 11px; padding: 8px;
}
.plennus-map {
  background: linear-gradient(135deg, #F2EEE5, #DDD9CD);
  border-radius: 8px; min-height: 80px; position: relative;
}
.plennus-map-pin {
  position: absolute; left: 50%; top: 50%;
  width: 26px; height: 26px;
  transform: translate(-50%, -50%) rotate(-45deg);
  background: var(--terra); border-radius: 50% 50% 50% 0;
}
.plennus-map-pin::after {
  content: ""; position: absolute;
  inset: 7px; background: white; border-radius: 50%;
}
.plennus-maptext b   { font-size: 11.5px; }
.plennus-maptext p   { font-size: 10.5px; margin: 4px 0; color: var(--muted); line-height: 1.35; }

/* ============================================================
   PERFIL — TOPO
   ============================================================ */
.plennus-profile-hero { padding: 22px 48px 16px; }
.plennus-breadcrumb { font-size: 10.5px; color: #766F66; margin-bottom: 12px; }
.plennus-breadcrumb a { color: #766F66; text-decoration: none; }
.plennus-breadcrumb a:hover { color: var(--terra); }

.plennus-profile-top {
  display: grid; grid-template-columns: 220px 1fr;
  gap: 32px; align-items: start;
}
.plennus-portrait {
  width: 220px; height: 275px; /* proporção 4:5 */
  border-radius: var(--radius); overflow: hidden;
  background: #ddd;
}
.plennus-portrait img { width: 100%; height: 100%; object-fit: cover; }

.plennus-profile-copy h1 { font-size: 30px; margin: 4px 0 4px; line-height: 1.1; }
.plennus-profile-role { color: var(--terra-dark); font-weight: 800; font-size: 13.5px; margin-bottom: 6px; }
.plennus-profile-crm  { font-size: 11px; color: var(--muted); margin-bottom: 8px; }

/* Avaliações GMB no perfil */
.plennus-gmb-profile {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 10px; flex-wrap: wrap;
}
.plennus-gmb-profile .rating-big { font-size: 24px; font-weight: 700; color: var(--ink); }
.plennus-gmb-profile .stars-lg   { font-size: 18px; color: #F4A017; letter-spacing: 2px; }
.plennus-gmb-profile .count      { font-size: 12px; color: var(--muted); }
.plennus-gmb-profile .gmb-link   { font-size: 11.5px; color: var(--terra-dark); font-weight: 700; text-decoration: none; }
.plennus-gmb-profile .gmb-link:hover { color: var(--terra); }

/* Tags de especialidade no perfil */
.plennus-profile-tags { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 12px; }
.plennus-profile-tag {
  background: rgba(138,149,133,.14); color: var(--olive-dark);
  font-size: 11.5px; padding: 4px 11px; border-radius: 999px;
  font-weight: 600;
}
.plennus-profile-action-tag {
  background: var(--terra); color: white;
  font-size: 11px; padding: 4px 10px; border-radius: 999px;
  font-weight: 700;
}

/* Botões de ação no perfil */
.plennus-profile-actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 12px 0; }
.plennus-profile-actions .plennus-btn { height: 36px; padding: 0 18px; font-size: 12.5px; }

/* Frase de posicionamento (intro) */
.plennus-intro {
  font-size: 13px; color: #4B4A45;
  line-height: 1.6; font-style: italic;
  max-width: 660px; margin-top: 4px;
}

/* ============================================================
   PERFIL — GRID DE INFORMAÇÕES
   ============================================================ */
/* NOTA: .plennus-info-grid / .plennus-info-col não definem mais display:grid nem
   largura/padding aqui — o layout dessas colunas no perfil é feito pelas classes
   do Bootstrap (row/col-lg-3/5/4/border-end/p-4) direto no single-profissionais.php.
   Definir display:grid aqui conflitava com a largura em % do Bootstrap e espremia
   as colunas. Título das colunas usa a classe .plennus-info-h3 (definida mais abaixo). */
.plennus-info-col:last-child { border-right: 0; }

/* Altura visual igual nas 3 colunas, com "Saiba mais" quando o conteúdo excede */
.plennus-info-expandable {
  max-height: 210px; overflow: hidden; position: relative;
  transition: max-height .35s ease;
}
.plennus-info-expandable::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 44px;
  background: linear-gradient(rgba(255,255,255,0), #fff);
  opacity: 1; transition: opacity .2s ease; pointer-events: none;
}
.plennus-info-expandable.plennus-no-overflow::after { opacity: 0; }
.plennus-info-expandable.plennus-open {
  max-height: 2000px;
}
.plennus-info-expandable.plennus-open::after { opacity: 0; }

.plennus-info-expand-btn {
  display: none; align-items: center; gap: 5px;
  margin-top: 12px; padding: 0; background: none; border: 0;
  font-size: 11px; font-weight: 800; color: var(--terra-dark); cursor: pointer;
}
.plennus-info-expand-btn:hover { color: var(--terra); }
.plennus-info-expand-btn.plennus-show { display: inline-flex; }
.plennus-info-expand-btn i { transition: transform .25s ease; font-size: 10px; }
.plennus-info-expand-btn.plennus-is-open i { transform: rotate(180deg); }
.plennus-area-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.plennus-area-list li {
  font-size: 11.5px; color: #4D4C46;
  display: flex; gap: 8px; align-items: flex-start;
}
.plennus-area-list li::before {
  content: "";
  width: 8px; height: 8px;
  margin-top: 4px;
  border-radius: 50%;
  background: var(--terra);
  flex-shrink: 0;
}
.plennus-info-col p  { font-size: 12px; color: #4E4D48; line-height: 1.6; margin: 0 0 9px; }
.plennus-info-col ul { margin: 0; padding-left: 16px; font-size: 11.5px; color: #4E4D48; line-height: 1.55; }
.plennus-redlink { font-size: 11px; color: var(--terra-dark); font-weight: 700; cursor: pointer; }
.plennus-redlink:hover { color: var(--terra); }

/* ============================================================
   PERFIL — TIMELINE (Formação + Experiência)
   ============================================================ */
.plennus-timeline { position: relative; padding-left: 20px; border-left: 2px solid rgba(138,149,133,.28); }
.plennus-tl-item { position: relative; padding-bottom: 15px; }
.plennus-tl-item:last-child { padding-bottom: 0; }
.plennus-tl-dot {
  position: absolute; left: -25px; top: 4px;
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--terra);
}
.plennus-tl-text {
  /* Mesma tipografia da lista "Áreas de atuação", pra ficarem visualmente equivalentes. */
  font-size: 11.5px; color: #4D4C46; line-height: 1.5;
}

/* Cortina (accordion) para timelines longas */
.plennus-tl-hidden { display: none; }
.plennus-tl-hidden.open { display: block; }
.plennus-tl-toggle {
  margin-top: 10px; background: none; border: none;
  color: var(--terra-dark); font-size: 11.5px; font-weight: 700;
  cursor: pointer; padding: 0; display: flex; align-items: center; gap: 5px;
}
.plennus-tl-toggle:hover { color: var(--terra); }
.plennus-tl-item.reveal-in {
  animation: revealItem .35s ease both;
}
@keyframes revealItem {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   PERFIL — BLOCO DE AGENDAMENTO (final da página)
   ============================================================ */
.plennus-booking-section {
  background: rgba(138,149,133,.09);
  border-radius: var(--radius); padding: 28px 32px;
  margin: 0 48px 16px; text-align: center;
}
.plennus-booking-section h2 {
  font-size: 19px; font-weight: 500; margin: 0 0 6px;
}
.plennus-booking-section p { font-size: 13px; color: var(--muted); margin: 0 0 18px; }
.plennus-booking-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* Bookly container (carregado sob demanda) */
.plennus-bookly-wrap {
  display: none; margin-top: 20px;
  background: white; border-radius: var(--radius-sm);
  border: 1px dashed var(--terra); padding: 14px;
  text-align: left;
}
.plennus-bookly-wrap.open { display: block; }

/* Disclaimer */
.plennus-disclaimer {
  background: #F3EEE6; border-radius: 9px; padding: 12px 18px;
  text-align: center; color: #6D675F; font-size: 10.5px;
  line-height: 1.45; margin: 0 48px 16px;
}

/* ============================================================
   MOBILE — CTA STICKY
   ============================================================ */
.plennus-sticky-cta {
  display: none;
  position: fixed; bottom: 0; left: 0; right: 0;
  background: white; border-top: 1px solid var(--line);
  padding: 12px 20px; z-index: 999;
}
.plennus-sticky-cta .plennus-btn { width: 100%; height: 46px; font-size: 14px; }

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width: 980px) {
  .plennus-hero { padding: 24px 20px 16px; }
  .plennus-profile-hero { padding: 16px 20px 10px; }
  .plennus-profile-top { grid-template-columns: 1fr; }
  .plennus-portrait { width: 100%; height: 220px; border-radius: 0 0 var(--radius) var(--radius); }
  .plennus-info-grid { grid-template-columns: 1fr; margin: 0 20px 14px; }
  .plennus-info-col { border-right: 0; border-bottom: 1px solid var(--line); }
  .plennus-info-col:last-child { border-bottom: 0; }
  .plennus-booking-section { margin: 0 20px 14px; padding: 20px 18px; }
  .plennus-disclaimer { margin: 0 20px 14px; }
  .plennus-steps { grid-template-columns: 1fr 1fr; }
  .plennus-cards-grid { grid-template-columns: 1fr; }
  .plennus-sticky-cta { display: block; }
}

@media (max-width: 600px) {
  .plennus-hero h1 { font-size: 26px; }
  .plennus-steps { grid-template-columns: 1fr; }
  .plennus-profile-actions { flex-direction: column; }
  .plennus-profile-actions .plennus-btn { width: 100%; justify-content: center; }
}

/* ============================================================
   JAVASCRIPT HELPERS — colocar antes do </body>
   Scrip inline a adicionar no Divi via Code Module:

   <script>
   // Accordion timeline
   document.querySelectorAll('.plennus-tl-toggle').forEach(btn => {
     btn.addEventListener('click', () => {
       const hidden = btn.previousElementSibling;
       const isOpen = hidden.classList.contains('open');
       hidden.classList.toggle('open');
       btn.textContent = isOpen ? 'Ver histórico completo ↓' : 'Recolher ↑';
       if (!isOpen) {
         hidden.querySelectorAll('.plennus-tl-item').forEach((el, i) => {
           el.style.animationDelay = (i * 120) + 'ms';
           el.classList.add('reveal-in');
         });
       }
     });
   });

   // Bookly sob demanda
   function plennusShowBookly() {
     document.querySelector('.plennus-bookly-wrap').classList.add('open');
     document.querySelector('.plennus-bookly-wrap').scrollIntoView({behavior:'smooth',block:'center'});
   }

   // Scroll reveal (IntersectionObserver)
   const obs = new IntersectionObserver((entries) => {
     entries.forEach(e => { if(e.isIntersecting) { e.target.classList.add('reveal-in'); obs.unobserve(e.target); } });
   }, {threshold:.1});
   document.querySelectorAll('.plennus-tl-item').forEach(el => obs.observe(el));
   </script>
   ============================================================ */

/* ============================================================
   BOOTSTRAP 5 OVERRIDES + EXTENSÕES
   ============================================================ */
.plennus-header{background:rgba(255,253,249,.97)!important;border-bottom:1px solid var(--line);backdrop-filter:blur(8px);position:sticky;top:0;z-index:1030}
.plennus-header .nav-link{color:var(--ink)!important;font-size:13px;font-weight:600}
.plennus-header .nav-link:hover{color:var(--terra)!important}
.plennus-logo{text-decoration:none}
.plennus-wordmark{font-size:18px;letter-spacing:.26em;font-weight:700;color:#3c3b37;line-height:.9}
.plennus-submark{font-size:7px;letter-spacing:.28em;color:#565b50}
.plennus-mark{width:34px;height:34px;border:2px solid var(--olive-dark);border-radius:50%;flex-shrink:0;position:relative}
.plennus-mark::before,.plennus-mark::after{content:"";position:absolute;inset:7px;border:1.5px solid var(--olive-dark);border-radius:50%;transform:rotate(45deg)}
.plennus-mark::after{inset:11px;border-radius:2px;transform:rotate(0)}
.plennus-header .plennus-logo{display:inline-flex;align-items:center}
.plennus-header .plennus-logo-img,
.plennus-header .plennus-logo .custom-logo{height:38px;width:auto;display:block}
.btn-plennus-terra{background:var(--terra)!important;border-color:var(--terra)!important;color:white!important;font-weight:700;border-radius:8px}
.btn-plennus-terra:hover{background:var(--terra-dark)!important;border-color:var(--terra-dark)!important}
.btn-plennus-olive{background:var(--olive)!important;border-color:var(--olive)!important;color:white!important;font-weight:700;border-radius:8px}
.btn-plennus-olive:hover{background:var(--olive-dark)!important;border-color:var(--olive-dark)!important}
.plennus-btn-outline{border:1px solid #d6cabd!important;background:white!important;color:#34332f!important;font-weight:700;border-radius:8px}
.plennus-btn-outline:hover{border-color:var(--olive)!important;color:var(--olive-dark)!important}
.plennus-h1{font-family:var(--font-serif);font-weight:700;line-height:1.02;letter-spacing:-.035em;color:#252421;font-size:clamp(30px,4vw,44px)}
.plennus-section-title{font-family:var(--font-serif);font-size:22px;letter-spacing:-.02em}
.text-plennus-terra{color:var(--terra)!important}
.plennus-pro-card{border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:.2s ease;background:white}
.plennus-pro-card:hover{transform:translateY(-2px);box-shadow:0 14px 25px rgba(52,42,31,.12)}
.plennus-photo-wrap{height:160px;overflow:hidden;position:relative;background:#e8e4dc}
.plennus-photo-wrap img{width:100%;height:100%;object-fit:cover;transition:.25s ease}
.plennus-pro-card:hover .plennus-photo-wrap img{transform:scale(1.04)}
.plennus-nome{font-size:12.5px;line-height:1.2;margin-bottom:4px;display:block}
.plennus-spec{font-size:11px;color:#55534e;margin-bottom:4px}
.plennus-crm{font-size:10px;color:#5c5b56;margin-bottom:5px}
.plennus-gmb-card{font-size:10px;color:var(--muted)}
.plennus-stars,.plennus-stars-lg{color:#F4A017}
.plennus-stars-lg{font-size:20px;letter-spacing:1px}
.plennus-rating-big{font-size:28px;font-weight:800;color:var(--ink);line-height:1}
.plennus-gmb-link{font-size:11.5px;color:var(--terra-dark);font-weight:800;text-decoration:none}
.plennus-portrait{width:100%;aspect-ratio:4/5;background:var(--olive);border-radius:11px;overflow:hidden}
.plennus-portrait img{width:100%;height:100%;object-fit:cover}
.plennus-profile-name{font-family:var(--font-serif);font-size:30px;letter-spacing:-.02em}
.plennus-role{color:var(--terra-dark);font-weight:800;font-size:14px}
.plennus-intro{font-style:italic;font-size:12.5px;color:#4b4a45;line-height:1.55}
.plennus-profile-tag{background:rgba(138,149,133,.15);color:var(--olive-dark);font-size:11.5px;padding:4px 11px;border-radius:999px;font-weight:600}
.plennus-profile-action-tag{background:var(--terra);color:white;font-size:11px;padding:4px 10px;border-radius:999px;font-weight:700}
.plennus-info-h3{font-family:var(--font-serif);font-size:18px;margin-bottom:12px}
.plennus-method-label{font-size:10px;font-weight:800;color:var(--olive-dark);letter-spacing:.05em;text-transform:uppercase;border-top:1px solid var(--line);padding-top:10px;margin:10px 0 4px}
.plennus-booking-section{background:rgba(138,149,133,.1);border-radius:13px;padding:28px}
.plennus-bookly-wrap{display:none;border:1px dashed var(--terra);border-radius:10px;padding:16px;margin-top:16px}
.plennus-bookly-wrap.open{display:block}
.plennus-kit-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:18px;flex-shrink:0}
.plennus-kit-qr{background:#2C2C2A;color:white}
.plennus-kit-badge{background:var(--olive);color:white}
.plennus-proc-pill{background:rgba(192,138,91,.12);color:var(--terra-dark);font-size:12px;padding:6px 12px;border-radius:14px;text-decoration:none;transition:background .15s}
.plennus-proc-pill:hover{background:rgba(192,138,91,.25);color:var(--terra-dark)}
.plennus-sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:999;border-top:1px solid var(--line);background:white}
.plennus-footer{background:var(--olive-dark)}
.plennus-steps-block{background:#fbf8f1}
.plennus-step-icon{width:32px;height:32px;border:1.4px solid var(--olive-dark);border-radius:8px;display:grid;place-items:center;color:var(--olive-dark)}
.plennus-ambient-photo{height:154px;background:linear-gradient(135deg,#e7dfd0,#b7b79d);overflow:hidden}
.plennus-ambient-photo img{width:100%;height:100%;object-fit:cover;opacity:.88}
.plennus-leaf-icon{width:34px;height:34px;border-radius:10px;background:#f4f1e9;display:grid;place-items:center;color:var(--olive-dark);font-size:20px;flex-shrink:0}
.plennus-location-card{background:white}
.plennus-disclaimer{background:#f3eee6;color:#6d675f;font-size:10.5px;line-height:1.45}
