/* =========================================================
   Alice Daguet — Ostéopathe D.O. — Dinard
   Feuille de style unique, sans dépendance externe.
   Palette : bord de mer breton (marine / pierre / sable)
   ========================================================= */

:root{
  --ink:#16262B;
  --ink-soft:#3B4B4F;
  --bg:#EFEEE5;
  --bg-alt:#E3E4D7;
  --surface:#FFFFFF;
  --marine:#26424D;
  --marine-dark:#132229;
  --sand:#C7A467;
  --sand-dark:#A9843F;
  --line:#CBCDBD;
  --focus:#0E6BA8;

  --serif: "Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

  --max: 72rem;
  --radius: 3px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.6;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--marine);text-decoration-thickness:1px;text-underline-offset:2px;}
a:hover{color:var(--sand-dark);}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;}

h1,h2,h3{
  font-family:var(--serif);
  color:var(--marine-dark);
  line-height:1.2;
  font-weight:400;
  margin:0 0 .6em;
}
h1{font-size:clamp(2rem,4.5vw,3.1rem);}
h2{font-size:clamp(1.4rem,2.6vw,2rem);}
h3{font-size:1.2rem;font-family:var(--sans);font-weight:700;color:var(--marine);}
p{margin:0 0 1.1em;max-width:38rem;}
ul{padding-left:1.2em;}
li{margin-bottom:.4em;}

.container{max-width:var(--max);margin-inline:auto;padding-inline:1.25rem;}

/* Skip link */
.skip-link{
  position:absolute;left:-999px;top:auto;
  background:var(--marine-dark);color:#fff;padding:.75em 1.2em;z-index:100;
  border-radius:0 0 var(--radius) 0;
}
.skip-link:focus{left:0;top:0;}

/* Header */
.site-header{
  background:var(--surface);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:50;
}
.header-row{
  display:flex;align-items:center;justify-content:space-between;
  padding-block:.9rem;
  gap:1rem;
}
.brand{
  display:flex;align-items:center;gap:.7rem;
  text-decoration:none;color:var(--marine-dark);
}
.brand-logo{width:auto;height:2.5rem;flex-shrink:0;}
.brand-text{display:flex;flex-direction:column;gap:.1rem;}
.brand strong{font-family:var(--serif);font-size:1.25rem;}
.brand span span{font-size:.78rem;color:var(--ink-soft);letter-spacing:.02em;}

.nav-toggle{
  display:none;
  background:none;border:1px solid var(--line);border-radius:var(--radius);
  padding:.5rem .7rem;font-size:1rem;color:var(--marine-dark);cursor:pointer;
}

nav.main-nav{}
nav.main-nav ul{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:1.4rem;
}
nav.main-nav a{
  color:var(--ink);text-decoration:none;font-size:.96rem;padding:.3rem 0;
  border-bottom:2px solid transparent;
}
nav.main-nav a:hover,nav.main-nav a[aria-current="page"]{
  color:var(--marine-dark);border-bottom-color:var(--sand);
}

.cta{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--marine);color:#fff;
  padding:.7rem 1.3rem;border-radius:var(--radius);
  text-decoration:none;font-weight:600;font-size:.95rem;
  border:1px solid var(--marine);
}
.cta:hover{background:var(--marine-dark);color:#fff;border-color:var(--marine-dark);}
.cta.alt{
  background:transparent;color:var(--marine-dark);border-color:var(--marine-dark);
}
.cta.alt:hover{background:var(--marine-dark);color:#fff;}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.4rem 0;}

/* Hero */
.hero{
  padding-block:3.2rem 3rem;
  background:linear-gradient(180deg,var(--bg) 0%,var(--bg-alt) 100%);
  border-bottom:1px solid var(--line);
}
.hero .container{
  display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center;
}
.hero-eyebrow{
  font-family:var(--serif);font-style:italic;color:var(--ink-soft);
  font-size:1.05rem;margin-bottom:.3rem;
}
.hero-art{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem;}
.hero-art svg{width:100%;height:auto;display:block;}

/* Wave divider */
.wave{display:block;width:100%;height:auto;line-height:0;}
.wave path{fill:var(--surface);}

/* Sections */
section{padding-block:3rem;}
.section-alt{background:var(--surface);}
.lead{font-size:1.12rem;color:var(--ink-soft);max-width:42rem;}

.topic-block{
  display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:center;
  padding-block:2rem;border-top:1px solid var(--line);
}
.topic-block:first-of-type{border-top:0;}
.topic-block.reverse picture{order:-1;}
.topic-block picture,.topic-block img{border-radius:var(--radius);}
@media (max-width: 780px){
  .topic-block,.topic-block.reverse{grid-template-columns:1fr;}
  .topic-block.reverse picture{order:0;}
}

.cabinet-block{
  display:grid;grid-template-columns:1fr 1fr;gap:2.2rem;align-items:center;
}
.cabinet-block picture,.cabinet-block img{border-radius:var(--radius);}
@media (max-width: 860px){
  .cabinet-block{grid-template-columns:1fr;}
}

/* Card grid */
.grid{display:grid;gap:1.4rem;}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
.grid.cols-2{grid-template-columns:repeat(2,1fr);}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.5rem;
}
.card h3{margin-bottom:.5em;}
.card p{margin-bottom:0;}

/* Steps (déroulement de consultation — véritable séquence) */
.steps{list-style:none;margin:0;padding:0;counter-reset:step;}
.steps li{
  counter-increment:step;
  display:grid;grid-template-columns:3rem 1fr;gap:1rem;
  padding-block:1.1rem;border-top:1px solid var(--line);
}
.steps li:last-child{border-bottom:1px solid var(--line);}
.steps li::before{
  content:counter(step);
  font-family:var(--serif);font-size:1.5rem;color:var(--sand-dark);
}

/* Info table (tarifs / horaires) */
.info-table{width:100%;border-collapse:collapse;margin:1.2rem 0 1.6rem;}
.info-table th,.info-table td{
  text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--line);
}
.info-table th{color:var(--ink-soft);font-weight:600;width:45%;}

/* FAQ */
.faq details{
  border-bottom:1px solid var(--line);padding:1rem 0;
}
.faq summary{
  cursor:pointer;font-weight:700;color:var(--marine-dark);font-size:1.05rem;
  list-style:none;display:flex;justify-content:space-between;gap:1rem;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--serif);font-size:1.4rem;color:var(--sand-dark);}
.faq details[open] summary::after{content:"–";}
.faq p{margin-top:.7rem;}

.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:.9rem;}
.photo-pair img{border-radius:var(--radius);width:100%;height:auto;}

/* Booking widget — module à consentement (Doctolib) */
.consent-embed{
  border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);
  overflow:hidden;
}
.consent-placeholder{
  padding:2.4rem 1.5rem;text-align:center;
}
.consent-placeholder p{margin:0 auto 1rem;max-width:32rem;}
.consent-load-btn{border:0;cursor:pointer;font-family:inherit;}
.consent-fallback{font-size:.9rem;color:var(--ink-soft);margin-top:1rem !important;}

/* Map */
.map-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface);}
.map-wrap iframe{width:100%;height:340px;border:0;display:block;}

/* Footer */
footer.site-footer{
  background:var(--marine-dark);color:#E7E9E2;padding-block:2.6rem 1.6rem;margin-top:2rem;
}
footer.site-footer a{color:#E7E9E2;}
footer.site-footer .grid{grid-template-columns:1.3fr 1fr 1fr;margin-bottom:1.8rem;}
footer.site-footer h3{color:#fff;}
footer.site-footer ul{list-style:none;padding:0;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.15);padding-top:1.2rem;
  font-size:.85rem;color:#B9C0B7;display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;justify-content:space-between;
}
.footer-bottom a{color:#B9C0B7;}

/* Breadcrumb */
.breadcrumb{font-size:.85rem;color:var(--ink-soft);padding-top:1.2rem;}
.breadcrumb a{color:var(--ink-soft);}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3em;padding:0;margin:0;}
.breadcrumb li:not(:last-child)::after{content:"/";margin-left:.3em;color:var(--line);}

/* Utility */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.center{text-align:center;}
.mt-0{margin-top:0;}

/* Responsive */
@media (max-width: 860px){
  .hero .container{grid-template-columns:1fr;}
  .hero-art{order:-1;max-width:22rem;margin-inline:auto;}
  .grid.cols-3{grid-template-columns:1fr 1fr;}
  footer.site-footer .grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 640px){
  .nav-toggle{display:inline-block;}
  nav.main-nav{
    display:none;width:100%;order:3;
  }
  nav.main-nav.open{display:block;}
  nav.main-nav ul{flex-direction:column;gap:0;}
  nav.main-nav a{display:block;padding:.7rem 0;border-bottom:1px solid var(--line);}
  .header-row{flex-wrap:wrap;}
  .grid.cols-3,.grid.cols-2{grid-template-columns:1fr;}
  footer.site-footer .grid{grid-template-columns:1fr;}
  .info-table th{width:55%;}
}

@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important;}
}
