/* ==========================================================================
   PLANO DENTAL — Atelier (v2) · páginas interiores (editorial)
   servicios · artículos · contacto · legal — junto a atelier.css
   ========================================================================== */

/* breadcrumb */
.breadcrumb{display:flex;flex-wrap:wrap;gap:9px;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--chalk-mute);margin-bottom:24px}
.breadcrumb a{color:var(--chalk-mute);transition:color .3s}
.breadcrumb a:hover{color:var(--gold-light)}
.breadcrumb .sep{opacity:.5}
.breadcrumb .cur{color:var(--gold)}

/* page hero (imagen a sangre, tinte editorial) */
.page-hero{position:relative;overflow:hidden;padding:clamp(128px,20vh,200px) 0 clamp(50px,9vh,92px);background:var(--ink-2)}
.page-hero-bg{position:absolute;inset:0;z-index:0}
.page-hero-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) contrast(1.05) brightness(.4);transform:scale(1.04)}
.page-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,12,14,.55),rgba(12,12,14,.5) 50%,var(--ink))}
.page-hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.page-hero .cat{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-light);border:1px solid var(--ink-line-2);padding:8px 15px;border-radius:var(--r);margin-bottom:22px}
.page-hero h1{font-family:var(--display);font-size:clamp(40px,7vw,92px);font-weight:500;letter-spacing:-.035em;line-height:.92;max-width:18ch;color:var(--chalk)}
.page-hero .lead{max-width:52ch;margin-top:24px}
.page-hero .hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}

/* prose / cuerpo de artículo */
.prose-wrap{max-width:initial}
.prose{max-width:720px;margin:0 auto;font-family:var(--body);font-size:19px;line-height:1.76;color:var(--chalk-soft)}
.prose.wide{max-width:860px}
.prose>p{margin:0 0 1.3em}
.prose .lead-p{font-size:clamp(21px,2.3vw,27px);line-height:1.5;color:var(--chalk);font-weight:400;margin-bottom:1.1em;padding-bottom:1.1em;border-bottom:1px solid var(--ink-line)}
.prose .lead-p::first-letter{font-family:var(--display);float:left;font-size:4.6em;line-height:.66;padding:10px 14px 0 0;color:var(--gold);font-weight:500}
.prose h2{font-family:var(--display);font-size:clamp(28px,3.7vw,44px);font-weight:500;letter-spacing:-.02em;margin:1.7em 0 .5em;color:var(--chalk);line-height:1.04;padding-top:.5em;border-top:1px solid var(--ink-line)}
.prose h3{font-family:var(--display);font-size:clamp(21px,2.4vw,28px);margin:1.5em 0 .4em;color:var(--gold-light);font-weight:500;font-style:italic}
.prose strong{color:var(--chalk);font-weight:600}
.prose a{color:var(--gold-light);text-decoration:underline;text-decoration-color:rgba(195,163,95,.4);text-underline-offset:3px;transition:text-decoration-color .3s}
.prose a:hover{text-decoration-color:var(--gold)}
.prose ul,.prose ol{margin:1.1em 0 1.5em;padding-left:1.3em}
.prose li{margin-bottom:.55em}
.prose ul li::marker{color:var(--gold)}
.prose ol li::marker{color:var(--gold-deep);font-family:var(--mono);font-size:.85em}
.prose figure{margin:2.4em 0}
.prose figure img{width:100%;height:auto;border:1px solid var(--ink-line-2);padding:8px;background:transparent}
.prose figcaption{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-mute);margin-top:12px;text-align:center}
.prose blockquote{margin:2em 0;padding:6px 0 6px 28px;border-left:2px solid var(--gold);font-family:var(--display);font-style:italic;font-size:clamp(22px,2.6vw,30px);line-height:1.25;color:var(--chalk);font-weight:500}
.prose blockquote p:last-child{margin:0}
.prose table{width:100%;border-collapse:collapse;margin:2em 0;font-size:15px;border:1px solid var(--ink-line);background:var(--ink-2)}
.prose thead{background:var(--ink-3)}
.prose th{font-family:var(--mono);color:var(--gold-light);text-align:left;padding:14px 18px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
.prose td{padding:13px 18px;border-top:1px solid var(--ink-line);color:var(--chalk-soft)}

/* steps */
.steps{counter-reset:step;margin-top:48px;display:grid;gap:0;border-top:1px solid var(--ink-line)}
.step{display:grid;grid-template-columns:auto 1fr;gap:28px;padding:30px 6px;border-bottom:1px solid var(--ink-line);align-items:baseline;transition:padding .5s var(--ease)}
.step:hover{padding-left:18px}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--display);font-size:clamp(28px,4vw,46px);color:var(--gold-deep);line-height:1;font-weight:500}
.step h3{font-family:var(--display);font-size:clamp(20px,2.3vw,27px);color:var(--chalk);margin-bottom:8px;font-weight:500}
.step p{color:var(--chalk-soft);margin:0;font-size:16px}

/* feat grid */
.feat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:44px;border:1px solid var(--ink-line)}
.feat{padding:30px 30px;border-right:1px solid var(--ink-line);border-bottom:1px solid var(--ink-line);transition:background .4s}
.feat:nth-child(2n){border-right:0}
.feat:hover{background:var(--ink-2)}
.feat .ic{width:46px;height:46px;border:1px solid var(--ink-line-2);display:grid;place-items:center;color:var(--gold-light);margin-bottom:16px}
.feat h3{font-family:var(--display);font-size:21px;color:var(--chalk);margin-bottom:8px;font-weight:500}
.feat p{color:var(--chalk-soft);font-size:15.5px;margin:0}

/* FAQ */
.faq{max-width:820px;margin:48px auto 0;border-top:1px solid var(--ink-line)}
.faq details{border-bottom:1px solid var(--ink-line);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:24px 4px;display:flex;align-items:flex-start;justify-content:space-between;gap:22px;font-family:var(--display);font-size:clamp(19px,2.1vw,24px);color:var(--chalk);font-weight:500;transition:color .35s,padding .4s var(--ease)}
.faq details[open] summary{color:var(--gold-light)}
.faq summary:hover{color:var(--gold-light);padding-left:12px}
.faq summary::-webkit-details-marker{display:none}
.faq .ic{flex-shrink:0;width:24px;height:24px;position:relative;margin-top:5px}
.faq .ic::before,.faq .ic::after{content:"";position:absolute;top:50%;left:50%;width:13px;height:1.5px;background:var(--gold);transform:translate(-50%,-50%);transition:transform .4s var(--ease)}
.faq .ic::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] .ic::after{transform:translate(-50%,-50%) rotate(0)}
.faq .ans{padding:0 4px 26px;color:var(--chalk-soft);font-size:16.5px;line-height:1.7;max-width:64ch}
.faq .ans p{margin:0 0 1em}.faq .ans p:last-child{margin:0}

/* related */
.related{background:var(--ink-2)}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:46px;border-top:1px solid var(--ink-line);border-left:1px solid var(--ink-line)}
.rel-card{border-right:1px solid var(--ink-line);border-bottom:1px solid var(--ink-line);display:flex;flex-direction:column;transition:background .4s}
.rel-card:hover{background:var(--ink-3)}
.rel-card .media{aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--ink-line)}
.rel-card .media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15) contrast(1.03);transition:transform 1s var(--ease)}
.rel-card:hover .media img{transform:scale(1.06)}
.rel-card .body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.rel-card .rcat{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep)}
.rel-card h3{font-family:var(--display);font-size:21px;color:var(--chalk);font-weight:500;line-height:1.18}
.rel-card .more{margin-top:auto;font-family:var(--mono);color:var(--gold-light);font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;gap:8px;align-items:center}

/* contacto */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);margin-top:10px}
.contact-cards{display:grid;gap:0;border-top:1px solid var(--ink-line)}
.contact-card{display:flex;gap:18px;align-items:flex-start;padding:24px 6px;border-bottom:1px solid var(--ink-line);transition:padding .4s var(--ease);min-width:0}
.contact-card:hover{padding-left:14px}
.contact-card>div{min-width:0}
.contact-card .ic{flex-shrink:0;width:46px;height:46px;border:1px solid var(--ink-line-2);display:grid;place-items:center;color:var(--gold-light)}
.contact-card h3{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:7px;font-weight:500}
.contact-card p,.contact-card a{color:var(--chalk-soft);font-size:16px;margin:0;overflow-wrap:anywhere;line-height:1.5}
.contact-card a:hover{color:var(--gold-light)}
.form-card{padding:clamp(28px,3vw,42px);border:1px solid var(--ink-line);background:var(--ink-2)}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--chalk-soft);margin-bottom:9px}
.field input,.field textarea,.field select{width:100%;background:var(--ink);border:1px solid var(--ink-line-2);border-radius:var(--r);padding:14px 16px;color:var(--chalk);font-family:var(--body);font-size:16px;transition:border-color .3s}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold)}
.field textarea{resize:vertical;min-height:120px}
.map-embed{border:1px solid var(--ink-line);overflow:hidden;margin-top:40px;height:360px}
.map-embed iframe{width:100%;height:100%;border:0;filter:grayscale(.4) contrast(1.05) invert(.9) hue-rotate(180deg)}

/* legal */
.legal-body{max-width:780px;margin:0 auto;font-family:var(--body)}
.legal-body h2{font-family:var(--display);font-size:clamp(24px,3vw,34px);margin:1.5em 0 .4em;color:var(--chalk);font-weight:500}
.legal-body h3{font-family:var(--display);font-size:20px;margin:1.2em 0 .3em;color:var(--gold-light);font-weight:500;font-style:italic}
.legal-body p,.legal-body li{color:var(--chalk-soft);font-size:16.5px;line-height:1.8;overflow-wrap:break-word}
.legal-body a{color:var(--gold-light);text-decoration:underline;overflow-wrap:anywhere}
.legal-body ul{padding-left:1.3em;margin:1em 0}

@media (max-width:860px){
  .feat-grid{grid-template-columns:1fr}
  .feat{border-right:0}
  .related-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .step{grid-template-columns:auto 1fr;gap:18px;padding:24px 4px}
  .prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
}
