@font-face {
  font-family:"CarteElegante";
  src:url("../../../fonts/C059-Roman.otf") format("opentype");
  font-display:swap
}

@font-face {
  font-family:"CarteManuscrite";
  src:url("../../../fonts/Z003-MediumItalic.otf") format("opentype");
  font-display:swap
}

.postcards-page {
  margin:0;
  color:#fff;
  background:#020d29
}

.postcards-page main {
  padding-top:0;
  background:#020d29
}

.pc-hero {
  position:relative;
  min-height:520px;
  overflow:hidden;
  border-bottom:1px solid #9f347f;
  background:#061331
}

.pc-hero img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center
}

.pc-hero:after {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(2,10,31,.12),rgba(2,10,31,.62) 52%,#020a1ff5 82%);
  content:""
}

.pc-hero-copy {
  position:relative;
  z-index:1;
  width:50%;
  margin-left:auto;
  padding:88px 6% 70px;
  box-sizing:border-box;
  text-align:center
}

.pc-kicker {
  margin:0;
  color:#ff61aa;
  font-weight:900;
  letter-spacing:.2em
}

.pc-hero h1 {
  margin:15px 0;
  color:#fffaf2;
  font:700 clamp(48px,5vw,82px)/1 Georgia,serif
}

.pc-hero h1 em {
  color:#ff61aa;
  font-weight:500
}

.pc-hero-copy>span {
  display:block;
  color:#e2e8f5;
  font-size:19px;
  line-height:1.65
}

.pc-hero-stats {
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:24px
}

.pc-hero-stats b {
  padding:10px 17px;
  border:1px solid #dcb35b99;
  border-radius:30px;
  color:#fff;
  background:#132554cc
}

.pc-shell {
  width:min(1720px,calc(100% - 48px));
  margin:auto
}

.pc-heading {
  padding:54px 0 26px
}

.pc-heading h2 {
  margin:0;
  color:#fffaf2;
  font:700 clamp(38px,4vw,58px)/1.05 Georgia,serif
}

.pc-heading h2 em {
  color:#ff61aa;
  font-weight:500
}

.pc-heading p {
  max-width:850px;
  margin:11px 0 0;
  color:#ccd6e9;
  font-size:17px;
  line-height:1.6
}

.pc-today {
  display:grid;
  margin:0 0 42px;
  grid-template-columns:minmax(320px,.9fr) 1.1fr;
  overflow:hidden;
  border:1px solid #dcb35b99;
  border-radius:28px;
  background:linear-gradient(145deg,#172b5b,#351c50);
  box-shadow:0 24px 55px #0005
}

.pc-today-media {
  display:flex;
  min-height:390px;
  padding:24px;
  align-items:center;
  justify-content:center;
  background:#071432
}

.pc-today-media img {
  display:block;
  max-width:100%;
  max-height:390px;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:12px;
  box-shadow:0 15px 40px #0008
}

.pc-today-copy {
  display:flex;
  padding:52px;
  flex-direction:column;
  justify-content:center
}

.pc-today-copy>span {
  color:#e5b85a;
  font-weight:900;
  letter-spacing:.17em
}

.pc-today-copy h2 {
  margin:12px 0;
  color:#fffaf2;
  font:700 clamp(36px,4vw,58px)/1 Georgia,serif
}

.pc-today-copy p {
  margin:0;
  color:#e1e7f3;
  font-size:19px;
  line-height:1.65
}

.pc-today-copy button,.pc-card button,.pc-load,.pc-modal-actions button {
  border:0;
  border-radius:35px;
  color:#fff;
  background:linear-gradient(90deg,#df2c8d,#a540e5);
  font-weight:900;
  cursor:pointer
}

.pc-today-copy button {
  align-self:flex-start;
  margin-top:25px;
  padding:15px 24px;
  font-size:16px
}

.pc-controls {
  position:sticky;
  z-index:8;
  top:76px;
  margin-bottom:25px;
  padding:18px;
  border:1px solid #4c548099;
  border-radius:22px;
  background:#071633f2;
  box-shadow:0 15px 35px #0005;
  backdrop-filter:blur(14px)
}

.pc-control-row {
  display:grid;
  grid-template-columns:minmax(250px,1fr) 280px;
  gap:12px
}

.pc-controls input,.pc-controls select,.pc-modal input,.pc-modal textarea {
  width:100%;
  padding:14px 16px;
  box-sizing:border-box;
  border:1px solid #747eaa;
  border-radius:13px;
  color:#15203b;
  background:#fff;
  font:500 16px Arial,sans-serif
}

.pc-universes {
  display:flex;
  gap:8px;
  overflow-x:auto;
  margin-top:13px;
  padding-bottom:2px
}

.pc-universes button {
  flex:none;
  padding:9px 14px;
  border:1px solid #73678f;
  border-radius:25px;
  color:#fff;
  background:#162753;
  cursor:pointer
}

.pc-universes button.active {
  border-color:#e5b85a;
  background:linear-gradient(90deg,#d72b87,#9d3cdd)
}

.pc-results {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:18px 2px;
  color:#dbe3f2
}

.pc-results strong {
  color:#ff73b6
}

.pc-gallery {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:17px
}

.pc-card {
  position:relative;
  display:flex;
  min-height:360px;
  overflow:hidden;
  flex-direction:column;
  border:1px solid #dcb35b77;
  border-radius:20px;
  background:linear-gradient(145deg,#142755,#2d1945);
  box-shadow:0 16px 30px #0004
}

.pc-card-media {
  display:flex;
  height:250px;
  padding:12px;
  box-sizing:border-box;
  align-items:center;
  justify-content:center;
  background:#07132f
}

.pc-card img {
  display:block;
  max-width:100%;
  max-height:226px;
  width:auto;
  height:auto;
  object-fit:contain
}

.pc-card-body {
  display:flex;
  min-height:112px;
  padding:15px;
  box-sizing:border-box;
  flex-direction:column
}

.pc-card small {
  color:#e5b85a;
  text-transform:capitalize
}

.pc-card strong {
  margin:5px 0 12px;
  color:#fff;
  font:700 20px/1.15 Georgia,serif
}

.pc-card button {
  margin-top:auto;
  padding:11px
}

.pc-gif {
  position:absolute;
  top:10px;
  left:10px;
  padding:5px 9px;
  border-radius:15px;
  color:#fff;
  background:#d72b87;
  font-size:11px;
  font-weight:900
}

.pc-load-wrap {
  text-align:center;
  padding:34px 0 60px
}

.pc-load {
  padding:15px 30px;
  font-size:17px
}

.pc-empty {
  grid-column:1/-1;
  padding:70px 20px;
  text-align:center;
  color:#dce4f2;
  font-size:20px
}

.pc-customizer[hidden] { display:none }

/* Personnalisation intégrée : pas de fenêtre, pas d'effet iframe. */
.pc-customizer {
  width:min(1720px,calc(100% - 48px));
  margin:8px auto 42px;
  scroll-margin-top:110px;
}

.pc-customizer-inner {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  gap:clamp(28px,4vw,72px);
  align-items:center;
  padding:clamp(24px,3.5vw,56px) 0;
  border-top:1px solid #dcb35b66;
  border-bottom:1px solid #dcb35b44;
}

.pc-modal-close {
  position:absolute;
  z-index:3;
  right:0;
  top:18px;
  width:44px;
  height:44px;
  border:1px solid #ffffff55;
  border-radius:50%;
  color:#fff;
  background:#132554;
  font-size:26px;
  line-height:1;
  cursor:pointer
}

.pc-modal-close:hover,.pc-modal-close:focus-visible { background:#263d78 }

.pc-preview {
  display:flex;
  min-height:0;
  align-items:center;
  justify-content:center;
}

.pc-preview img {
  display:block;
  max-width:100%;
  max-height:620px;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:16px;
  box-shadow:0 20px 55px #0007
}

.pc-editor { padding:20px 54px 20px 0 }
.pc-editor>span { color:#ff61aa;font-weight:900;letter-spacing:.16em }
.pc-editor h2 { margin:10px 0 28px;color:#fffaf2;font:700 clamp(36px,3.2vw,52px)/1 Georgia,serif }
.pc-field { margin-bottom:18px }
.pc-field label { display:block;margin-bottom:8px;font-weight:800 }
.pc-editor input,.pc-editor textarea {
  width:100%;padding:14px 16px;box-sizing:border-box;border:1px solid #747eaa;border-radius:13px;
  color:#15203b;background:#fff;font:500 16px Arial,sans-serif
}
.pc-editor textarea { min-height:128px;resize:vertical }
.pc-suggestions { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 20px }
.pc-suggestions button { min-width:0;padding:9px 6px;border:1px solid #75668f;border-radius:20px;color:#fff;background:#ffffff0e;cursor:pointer }
.pc-suggestions button:hover,.pc-suggestions button:focus-visible { border-color:#e5b85a;background:#ffffff18 }
.pc-modal-actions { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px }
.pc-modal-actions button { padding:14px;border:0;border-radius:35px;color:#fff;background:linear-gradient(90deg,#df2c8d,#a540e5);font-weight:900;cursor:pointer }
.pc-modal-actions button:nth-child(2) { background:linear-gradient(90deg,#1977ed,#395ccf) }
.pc-modal-actions button:nth-child(3) { grid-column:1/-1;background:#29427c }
.pc-status { min-height:22px;color:#fff;text-align:center;font-weight:700 }
.pc-noscript { padding:40px;text-align:center }

@media(max-width:1300px) { .pc-gallery { grid-template-columns:repeat(4,1fr) } }

@media(max-width:1000px) {
  .pc-gallery { grid-template-columns:repeat(3,1fr) }
  .pc-customizer-inner { grid-template-columns:1fr;gap:24px }
  .pc-preview img { max-height:520px }
  .pc-editor { padding:0 0 24px }
  .pc-modal-close { top:12px }
}

@media(max-width:760px) {
  .postcards-page main { padding-top:67px }
  .pc-hero { display:flex;min-height:0;flex-direction:column }
  .pc-hero img { position:relative;width:100%;height:auto;aspect-ratio:1800/945;object-fit:contain }
  .pc-hero:after { display:none }
  .pc-hero-copy { width:100%;margin:0;padding:32px 20px 38px;text-align:left }
  .pc-hero h1 { font-size:43px }
  .pc-hero-copy>span { font-size:16px }
  .pc-hero-stats { justify-content:flex-start }
  .pc-shell,.pc-customizer { width:calc(100% - 24px) }
  .pc-heading { padding-top:38px }
  .pc-today { grid-template-columns:1fr }
  .pc-today-media { min-height:260px;padding:16px }
  .pc-today-media img { max-height:310px }
  .pc-today-copy { padding:28px 22px }
  .pc-controls { top:72px;padding:12px }
  .pc-control-row { grid-template-columns:1fr }
  .pc-gallery { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px }
  .pc-card { min-height:280px;border-radius:15px }
  .pc-card-media { height:180px;padding:8px }
  .pc-card img { max-height:164px }
  .pc-card-body { min-height:100px;padding:11px }
  .pc-card strong { font-size:17px }
  .pc-card button { font-size:13px }
  .pc-customizer { margin-top:0;margin-bottom:30px;scroll-margin-top:82px }
  .pc-customizer-inner { padding:26px 0 30px;gap:20px }
  .pc-preview { padding-top:28px }
  .pc-preview img { width:100%;height:auto;max-height:none;border-radius:12px;box-shadow:0 12px 30px #0006 }
  .pc-editor { padding:0 4px }
  .pc-editor h2 { padding-right:48px;font-size:34px }
  .pc-modal-close { top:12px;right:0 }
  .pc-modal-actions { grid-template-columns:1fr }
  .pc-modal-actions button:nth-child(3) { grid-column:auto }
}

@media(max-width:430px) {
  .pc-suggestions { grid-template-columns:repeat(2,1fr);gap:7px }
  .pc-suggestions button { padding:9px 5px;font-size:13px }
}

@media(max-width:390px) {
  .pc-gallery { grid-template-columns:1fr }
  .pc-card-media { height:230px }
  .pc-card img { max-height:214px }
}

/* liens hero cartes postales */
.pc-hero-stats>a{display:inline-flex;align-items:center;justify-content:center;color:inherit;text-decoration:none;font:inherit;font-weight:700;border:1px solid #b28b42;border-radius:999px;padding:14px 22px;min-height:48px;box-sizing:border-box;transition:transform .18s ease,background .18s ease}
.pc-hero-stats>a:hover,.pc-hero-stats>a:focus-visible{background:rgba(255,255,255,.08);transform:translateY(-1px)}

/* pc-hero-align-pensees-positives-20260922 */
@media (min-width:901px){
  /* Même présence visuelle que le hero Pensées positives :
     image et zone texte sur toute la hauteur, contenu centré verticalement. */
  body.postcards-page main > .pc-hero{
    height:600px !important;
    min-height:600px !important;
    max-height:600px !important;
    position:relative !important;
    display:grid !important;
    grid-template-columns:minmax(0,55%) minmax(0,45%) !important;
    overflow:hidden !important;
  }
  body.postcards-page main > .pc-hero > picture{
    position:relative !important;
    inset:auto !important;
    grid-column:1 / -1 !important;
    grid-row:1 !important;
    width:100% !important;
    height:600px !important;
    display:block !important;
  }
  body.postcards-page main > .pc-hero > picture > img{
    width:100% !important;
    height:600px !important;
    object-fit:cover !important;
    object-position:center !important;
    display:block !important;
  }
  body.postcards-page main > .pc-hero > .pc-hero-copy{
    grid-column:2 !important;
    grid-row:1 !important;
    position:relative !important;
    inset:auto !important;
    z-index:2 !important;
    width:100% !important;
    max-width:none !important;
    min-height:600px !important;
    box-sizing:border-box !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:flex-start !important;
    padding:48px 7vw 48px 42px !important;
    margin:0 !important;
    text-align:left !important;
  }
  body.postcards-page .pc-hero-copy h1{
    margin:8px 0 18px !important;
    line-height:.96 !important;
  }
  body.postcards-page .pc-hero-copy>span{
    max-width:680px !important;
    line-height:1.55 !important;
    margin:0 !important;
  }
}
