/*
Theme Name: Escadas de Minerva
Theme URI: https://www.escadasdeminerva.pt/
Description: Tema do site da Residência Universitária Escadas de Minerva, baseado no Twenty Twenty-Five. Cores e tipo de letra segundo o Manual de Normas da marca.
Author: Residência Universitária Escadas de Minerva
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: escadas-de-minerva
*/

/* Ligações e foco */
a:focus-visible, button:focus-visible, .wp-element-button:focus-visible { outline: 3px solid #414141; outline-offset: 2px; }

/* Cabeçalho */
.em-header { position: sticky; top: 0; z-index: 50; }
.em-header .wp-block-site-logo img { height: 44px; width: auto; }
.em-header .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: 4px; }
.em-lang a { border: 1px solid #d6d6d6; border-radius: 6px; padding: 4px 8px; text-decoration: none; }

/* Selos e etiquetas */
.em-eyebrow { text-transform: uppercase; letter-spacing: .07em; font-weight: 600; font-size: 13px; color: #5a5a5a; }
.em-badge { display: inline-block; background: #ffffff; border-radius: 10px; padding: 10px 16px; font-size: 14px; box-shadow: 0 1px 0 rgba(0,0,0,.04); }
.em-badge--cream { background: #FFF6D9; }
ul.em-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
ul.em-chips li { border: 1px solid #dcdcdc; border-radius: 999px; padding: 6px 16px; font-size: 14px; font-weight: 500; margin: 0; }

/* Vantagens com ícones */
.em-feature { position: relative; padding-left: 40px; }
.em-feature::before { content: ""; position: absolute; left: 0; top: 3px; width: 26px; height: 26px; background-color: #414141; -webkit-mask: var(--em-ico) no-repeat center / contain; mask: var(--em-ico) no-repeat center / contain; }
.em-feature p { margin: 0; }
.em-feature p + p { font-size: 14px; color: #5a5a5a; margin-top: 2px; }
.em-ico-despesas { --em-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7l1-8z'/%3E%3C/svg%3E"); }
.em-ico-mobilado { --em-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6M3 14h18M6 10V7a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v3M3 18v2M21 18v2'/%3E%3C/svg%3E"); }
.em-ico-contrato { --em-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.em-ico-local { --em-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.5-7-11a7 7 0 0 1 14 0c0 4.5-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.em-ico-whatsapp { --em-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z'/%3E%3C/svg%3E"); }

/* Cartões de alojamento */
.em-card { border: 1px solid #e6e6e6; border-radius: 16px; overflow: hidden; background: #ffffff; height: 100%; display: flex; flex-direction: column; }
.em-card > .wp-block-image { margin: 0; }
.em-card > .wp-block-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; display: block; }
.em-card__body { padding: 22px 24px 26px; flex: 1 1 auto; }
.em-more a { font-weight: 600; text-decoration: none; }
.em-more a::after { content: " →"; }

/* Passos de reserva */
ol.em-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; counter-reset: em-step; }
ol.em-steps > li { background: #ffffff; border-radius: 14px; padding: 24px; counter-increment: em-step; margin: 0; }
ol.em-steps > li::before { content: counter(em-step); display: flex; width: 40px; height: 40px; border-radius: 50%; background: #414141; color: #ffffff; align-items: center; justify-content: center; font-weight: 700; margin-bottom: 14px; }
ol.em-steps strong { display: block; font-size: 18px; margin-bottom: 6px; color: #2f2f2f; }

/* Perguntas frequentes */
.wp-block-details { border-bottom: 1px solid #e3e3e3; padding: 18px 0; }
.wp-block-details summary { font-weight: 600; font-size: 18px; cursor: pointer; }
.wp-block-details > :not(summary) { margin-top: 10px; color: #4a4a4a; }

/* Galeria da ficha */
.em-gallery.wp-block-gallery img { border-radius: 10px; }

/* Tabela de quartos */
.em-rooms table { font-size: 15px; }
.em-rooms th { background: #f6f6f4; text-align: left; }
.em-rooms td, .em-rooms th { padding: 12px 16px; border-color: #e3e3e3; }

/* Caixa de pedido na ficha */
.em-aside { border: 1px solid #e3e3e3; border-radius: 16px; padding: 24px; box-shadow: 0 8px 28px rgba(0,0,0,.06); position: sticky; top: 96px; }

/* Formulário (Contact Form 7) */
.wpcf7 label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 14px; }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 input[type=date], .wpcf7 select, .wpcf7 textarea { width: 100%; box-sizing: border-box; font: inherit; font-weight: 400; padding: 12px 14px; border: 1px solid #c9c9c9; border-radius: 8px; background: #ffffff; color: #414141; margin-top: 6px; }
.wpcf7 .wpcf7-acceptance label { font-weight: 400; display: flex; gap: 10px; align-items: flex-start; }
.wpcf7 input[type=submit] { background: #FFD54E; color: #2b2b2b; border: 0; border-radius: 8px; padding: 15px 28px; font: inherit; font-weight: 600; cursor: pointer; }
.wpcf7 input[type=submit]:hover { background: #f2c624; }
.em-form-box { background: #ffffff; color: #414141; border-radius: 16px; padding: clamp(20px, 3vw, 32px); }

/* Rodapé */
.em-footer a { color: inherit; }
.em-legal { font-size: 13px; color: #d0d0d0; }

/* Botão flutuante de WhatsApp */
.em-wa { position: fixed; right: 16px; bottom: 16px; z-index: 990; display: flex; align-items: center; gap: 8px; background: #3E7A36; color: #fff !important; padding: 12px 18px; border-radius: 999px; font-weight: 600; font-size: 15px; line-height: 1; box-shadow: 0 3px 12px rgba(0,0,0,.25); text-decoration: none !important; }
.em-wa:hover, .em-wa:focus { background: #2f5f29; }
.em-wa svg { width: 20px; height: 20px; fill: currentColor; flex: none; }
@media (max-width: 640px) {
  .em-wa { padding: 14px; }
  .em-wa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .em-aside { position: static; }
}
