/* ============================================================================
   Farmacia La Rotonda — hand-authored layout fixes (round 3)
   The per-page Elementor stylesheets for /nosotros/ (post-131) and
   /servicios/ (post-157) were never captured by the archive. These rules
   rebuild what those files used to provide: sane icon sizing, readable
   info-box stacking and clean testimonial cards. Brand accent: #BF0811.
   ============================================================================ */

/* ---- 1. Elementskit icon boxes: match the homepage icon treatment -------- */
/* The homepage (post-120) renders these ElementsKit info-box icons as bare
   40px brand-red glyphs with NO background circle. The lost per-page CSS for
   /nosotros/ (post-131) and /servicios/ (post-157) had left them tiny; an
   earlier patch wrapped them in a pale 8%-tint circle at 32px which read as
   near-invisible. Drop the circle and match the home 40px / brand-red glyph so
   every icon-box on the site looks identical. */
.elementskit-info-box-icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:auto;
	height:auto;
	border-radius:0;
	background:transparent;
	padding:0;
	margin:0;
}
.elementskit-info-box-icon i,
.elementskit-info-box-icon .elementkit-infobox-icon{
	font-size:40px;
	line-height:1;
	color:#BF0811;
	display:inline-flex;
}
.elementskit-box-header{
	margin-bottom:14px;
}
/* centred variant (Visión / Misión, service tiles) */
.elementskit-infobox.text-center .elementskit-box-header{
	text-align:center;
}
.elementskit-infobox.text-center .elementskit-info-box-icon{
	margin-left:auto;
	margin-right:auto;
}
.elementskit-info-box-title{
	font-size:20px;
	font-weight:700;
	color:#1D2F3C;
	margin:0 0 8px;
	line-height:1.3;
}
.elementskit-infobox .box-body p{
	color:#4b5563;
	line-height:1.6;
	margin:0;
}

/* ---- 2. /nosotros/ : rebuild the "50+ años" stat badge ------------------ */
/* Its per-page absolute positioning was lost, so pin it back into normal
   flow and render it as a clean inline stat card instead of a floating box. */
.elementor-131 .elementor-element-47a3f425.elementor-absolute{
	position:static !important;
	max-width:none;
	width:auto;
}
.elementor-131 .elementor-element-47a3f425 .elementskit-infobox{
	display:flex;
	align-items:center;
	gap:16px;
	background:#ffffff;
	border:1px solid #e6e8eb;
	border-radius:14px;
	padding:18px 20px;
	box-shadow:0 8px 26px rgba(29,47,60,.07);
	margin:22px 0 0;
}
.elementor-131 .elementor-element-47a3f425 .elementskit-box-header{
	margin:0;
	flex:0 0 auto;
}
.elementor-131 .elementor-element-47a3f425 .box-body{
	text-align:left;
}
.elementor-131 .elementor-element-47a3f425 .elementskit-info-box-title{
	margin-bottom:4px;
}
/* give the two columns comfortable breathing room */
.elementor-131 .elementor-element-bfe8111 .elementor-column-gap-default > .elementor-column{
	padding:0 18px;
}

/* ---- 3. /servicios/ : testimonial cards -------------------------------- */
/* Force a deterministic responsive grid regardless of the swiper runtime,
   so cards never overlap, clip or stack with huge gaps. */
.elementskit-testimonial-slider .ekit-main-swiper{
	overflow:visible;
}
.elementskit-testimonial-slider .swiper-wrapper{
	display:grid !important;
	grid-template-columns:repeat(2,1fr);
	gap:24px;
	transform:none !important;
}
.elementskit-testimonial-slider .swiper-slide{
	width:auto !important;
	height:auto !important;
	margin:0 !important;
	flex:none !important;
}
.elementskit-testimonial-slider .swiper-slide-inner{
	height:100%;
}
.elementskit-single-testimonial-slider.elementskit-testimonial-slider-block-style{
	position:relative;
	height:100%;
	background:#ffffff;
	border:1px solid #e6e8eb;
	border-radius:16px;
	padding:28px 26px;
	box-shadow:0 8px 28px rgba(29,47,60,.06);
	text-align:left;
}
.elementskit-single-testimonial-slider .elementskit-commentor-bio{
	display:flex;
	align-items:center;
	gap:14px;
	margin-bottom:18px;
}
.elementskit-commentor-image.ekit-testimonial--avatar{
	flex:0 0 auto;
	width:60px;
	height:60px;
	border-radius:50%;
	overflow:hidden;
	margin:0;
}
.elementskit-commentor-image.ekit-testimonial--avatar img{
	width:60px;
	height:60px;
	object-fit:cover;
	border-radius:50%;
	display:block;
}
.elementskit-profile-info{
	display:flex;
	flex-direction:column;
	line-height:1.25;
}
.elementskit-author-name{
	font-size:17px;
	font-weight:700;
	color:#1D2F3C;
}
.elementskit-author-des{
	font-size:13px;
	color:#6b7280;
}
.elementskit-commentor-content{
	position:relative;
}
.elementskit-commentor-content .elementskit-watermark-icon{
	position:absolute;
	top:-6px;
	right:0;
	line-height:0;
	color:rgba(191,8,17,.12);
}
.elementskit-commentor-content .elementskit-watermark-icon svg{
	width:36px;
	height:36px;
	fill:currentColor;
}
.elementskit-commentor-content > p{
	margin:0 0 16px;
	padding-right:46px;
	color:#374151;
	font-size:15px;
	line-height:1.65;
}
.elementskit-stars{
	list-style:none;
	display:flex;
	gap:5px;
	margin:0;
	padding:0;
}
.elementskit-stars li{
	margin:0;
	padding:0;
}
.elementskit-stars li a{
	pointer-events:none;
	display:inline-flex;
}
.elementskit-stars svg{
	width:17px;
	height:17px;
	fill:#f5a623;
}

@media (max-width:767px){
	.elementskit-testimonial-slider .swiper-wrapper{
		grid-template-columns:1fr;
	}
	.elementor-131 .elementor-element-47a3f425 .elementskit-infobox{
		gap:14px;
		padding:16px;
	}
}

/* ---- 4. Elementor contact forms: dress them in the site's design language --
   Shared so the /contacto/ form and the homepage "¿Tienes alguna duda?" form
   look identical. Site tokens: brand red #BF0811, dark ink #1D2F3C, soft radii.
   The default Elementor look was a flat grey box with a border the same colour
   as its fill (invisible) and, on /contacto/, zero spacing between fields. */
.elementor-form .elementor-field-group{
	margin-bottom:18px;
}
.elementor-form .elementor-field-label{
	display:block;
	margin-bottom:6px;
	font-weight:600;
	color:#1D2F3C;
	line-height:1.3;
}
/* Keep the site's own light input fill (the global elementor-kit token, also
   used by the homepage form) but give it the definition it was missing: a
   visible border, softer radius and a brand-red focus ring. !important is
   needed to beat the kit's input:not([type=button]) rule (specificity 0,3,1). */
.elementor-form .elementor-field-textual{
	width:100%;
	border:1px solid #c5cbd1 !important;
	border-radius:8px !important;
	padding:12px 16px;
	font-size:16px;
	line-height:1.5;
	box-shadow:none;
	transition:border-color .15s ease, box-shadow .15s ease;
}
.elementor-form .elementor-field-textual::placeholder{
	color:#8a929b;
	opacity:1;
}
.elementor-form .elementor-field-textual:focus,
.elementor-form .elementor-field-textual:focus-visible{
	border-color:#BF0811 !important;
	box-shadow:0 0 0 3px rgba(191,8,17,.16) !important;
	outline:none;
}
.elementor-form textarea.elementor-field-textual{
	min-height:120px;
	resize:vertical;
}
.elementor-form .elementor-field-type-acceptance .elementor-field-subgroup{
	display:flex;
	align-items:flex-start;
	gap:8px;
}
.elementor-form .elementor-field-type-acceptance label{
	margin:0;
	font-weight:400;
	color:#4b5563;
	line-height:1.4;
}
.elementor-form .elementor-field-type-acceptance input[type="checkbox"]{
	margin-top:2px;
	accent-color:#BF0811;
	width:16px;
	height:16px;
	flex:0 0 auto;
}
.elementor-form .elementor-button{
	background-color:#BF0811 !important;
	color:#fff !important;
	border:0 !important;
	border-radius:8px !important;
	padding:14px 30px;
	font-weight:600;
	font-size:16px;
	cursor:pointer;
	transition:background-color .15s ease;
}
.elementor-form .elementor-button:hover,
.elementor-form .elementor-button:focus{
	background-color:#8f060c !important;
}

/* ---- 5. General sweep: robustness fixes shared across all pages ---------- */
/* Long unbroken URLs in the legal text (e.g. the Google Analytics link on the
   cookies page) blew past the mobile viewport; break them. */
.elementor-widget-text-editor a,
.elementor-widget-theme-post-content a{
	word-break:break-word;
	overflow-wrap:anywhere;
}
/* Cookie/legal data tables: never force a horizontal page scroll on mobile. */
.elementor-widget-text-editor table{
	max-width:100%;
}
@media (max-width:767px){
	.elementor-widget-text-editor table{
		display:block;
		width:100%;
		overflow-x:auto;
		-webkit-overflow-scrolling:touch;
	}
}
/* /nosotros/ team photo: keep the faces safe if the frame is ever cropped. */
.elementor-131 img.wp-image-65{
	object-position:50% 22%;
}

/* ============================================================================
   6. Legal pages — Aviso Legal / Política de Cookies / Política de Privacidad
   ---------------------------------------------------------------------------
   These three run on the Hello Elementor theme's plain .page-header +
   .page-content template, so the restored prose landed unstyled: edge-to-edge
   text, no hierarchy, bare lists, an undressed cookie table. Everything below
   is scoped to `.legal-page` (a marker class present only on <main> of those
   three pages) and dresses the documents in the site's own design language —
   Poppins headings, Heebo body, brand red #BF0811, dark ink #1D2F3C and the
   site's card tokens (border #e6e8eb, soft radius, 0 .. rgba(29,47,60,..)
   shadow). The Spanish copy itself is untouched.
   ============================================================================ */

/* neutral canvas so the white document "sheet" reads as an intentional surface */
.legal-page{
	background:#f5f6f8;
}

/* ---- hero / title banner (echoes the sibling pages' big Poppins heading) -- */
.legal-page .page-header{
	margin:0;
	padding:60px 24px 84px;
	text-align:center;
	background:linear-gradient(180deg,#fbeeee 0%,#f5f6f8 100%);
}
.legal-page .page-header .entry-title{
	position:relative;
	display:inline-block;
	margin:0;
	padding:0;
	font-family:"Poppins",sans-serif;
	font-weight:700;
	font-size:clamp(30px,5vw,46px);
	line-height:1.15;
	color:#1D2F3C;
}
/* small brand eyebrow above the page title */
.legal-page .page-header .entry-title::before{
	content:"Información legal";
	display:block;
	margin-bottom:14px;
	font-family:"Poppins",sans-serif;
	font-weight:600;
	font-size:13px;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:#BF0811;
}
/* short accent bar beneath the title */
.legal-page .page-header .entry-title::after{
	content:"";
	display:block;
	width:64px;
	height:4px;
	margin:20px auto 0;
	border-radius:999px;
	background:#BF0811;
}

/* ---- content: a centred white sheet lifted up over the hero band --------- */
.legal-page .page-content{
	padding:0 20px 80px;
}
/* release the Elementor boxed container so our own measure governs the width */
.legal-page .page-content .e-con,
.legal-page .page-content .e-con > .e-con-inner{
	padding-top:0;
	padding-bottom:0;
	max-width:none;
}
.legal-page .elementor-widget-text-editor > .elementor-widget-container{
	position:relative;
	z-index:1;
	max-width:860px;
	margin:-52px auto 0;
	padding:clamp(26px,4.5vw,56px);
	background:#ffffff;
	border:1px solid #e6e8eb;
	border-radius:18px;
	box-shadow:0 12px 40px rgba(29,47,60,.09);
	font-family:"Heebo",sans-serif;
	font-size:16.5px;
	line-height:1.75;
	color:#3f4a56;
}

/* drop the empty spacer heading the CMS left at the top of the prose */
.legal-page .elementor-widget-text-editor h2.wp-block-heading{
	display:none;
}
/* neutralise the malformed <header> wrappers baked into the editor markup */
.legal-page .elementor-widget-text-editor header{
	display:block;
	margin:0;
	padding:0;
	background:none;
}

/* ---- headings ------------------------------------------------------------ */
.legal-page .elementor-widget-text-editor h2{
	font-family:"Poppins",sans-serif;
	font-weight:700;
	font-size:clamp(22px,3vw,27px);
	line-height:1.3;
	color:#1D2F3C;
	margin:0 0 24px;
	padding-bottom:18px;
	border-bottom:2px solid #f0dede;
}
.legal-page .elementor-widget-text-editor h3{
	font-family:"Poppins",sans-serif;
	font-weight:700;
	font-size:clamp(17px,2.2vw,20px);
	line-height:1.4;
	color:#1D2F3C;
	margin:38px 0 12px;
	padding-left:16px;
	border-left:4px solid #BF0811;
}

/* ---- body copy ----------------------------------------------------------- */
.legal-page .elementor-widget-text-editor p{
	font-size:16.5px;
	line-height:1.75;
	margin:0 0 18px;
	color:#3f4a56;
}
.legal-page .elementor-widget-text-editor strong{
	color:#1D2F3C;
	font-weight:700;
}
.legal-page .elementor-widget-text-editor a{
	color:#BF0811;
	text-decoration:underline;
	text-underline-offset:2px;
	font-weight:500;
}
.legal-page .elementor-widget-text-editor a:hover,
.legal-page .elementor-widget-text-editor a:focus{
	color:#8f060c;
}

/* ---- lists: brand-red dot markers, comfortable rhythm -------------------- */
.legal-page .elementor-widget-text-editor ul{
	list-style:none;
	margin:0 0 22px;
	padding:0;
}
.legal-page .elementor-widget-text-editor ul li{
	position:relative;
	margin:0 0 11px;
	padding-left:26px;
	font-size:16.5px;
	line-height:1.7;
	color:#3f4a56;
}
.legal-page .elementor-widget-text-editor ul li::before{
	content:"";
	position:absolute;
	left:4px;
	top:.62em;
	width:7px;
	height:7px;
	border-radius:50%;
	background:#BF0811;
}

/* ---- cookie table: styled + mobile-scrollable in its own wrapper --------- */
.legal-page .legal-table-wrap{
	margin:24px 0;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
	border:1px solid #e6e8eb;
	border-radius:14px;
}
.legal-page .legal-table-wrap table{
	width:100%;
	min-width:560px;
	margin:0;
	border-collapse:collapse;
	background:#fff;
	font-size:15px;
}
.legal-page .legal-table-wrap td{
	padding:12px 16px;
	border-bottom:1px solid #eef0f2;
	vertical-align:top;
	line-height:1.55;
	color:#3f4a56;
}
.legal-page .legal-table-wrap tr:first-child td{
	background:#1D2F3C;
	color:#ffffff;
	font-family:"Poppins",sans-serif;
	font-weight:600;
	font-size:12.5px;
	letter-spacing:.03em;
	text-transform:uppercase;
	border-bottom:none;
}
.legal-page .legal-table-wrap tr:nth-child(even):not(:first-child) td{
	background:#f8f9fb;
}
.legal-page .legal-table-wrap tr:last-child td{
	border-bottom:none;
}

/* ---- muted last-updated / closing note ----------------------------------- */
.legal-page .elementor-widget-text-editor p.legal-updated{
	margin-top:30px;
	padding-top:18px;
	border-top:1px solid #e6e8eb;
	font-size:14.5px;
	line-height:1.7;
	color:#8a929b;
}
.legal-page .elementor-widget-text-editor p.legal-updated strong{
	color:#6b7280;
}
.legal-page .elementor-widget-text-editor p.legal-updated a{
	color:#8f060c;
}

@media (max-width:767px){
	.legal-page .page-header{
		padding:40px 18px 66px;
	}
	.legal-page .elementor-widget-text-editor > .elementor-widget-container{
		margin-top:-44px;
		border-radius:14px;
	}
	/* keep the wrapped table a real table so the styled header row survives,
	   overriding the global mobile display:block fallback (rule 5 above) */
	.legal-page .legal-table-wrap table{
		display:table;
	}
}
