/*
 Theme Name:   Divi Child – Ty Pesket
 Theme URI:    https://location-typesket-loguivydelamer.fr
 Description:  Thème enfant Divi pour Ty Pesket, location de vacances à Loguivy-de-la-Mer.
 Author:       OPOPUP
 Author URI:   https://opopup.fr
 Template:     Divi
 Version:      1.0.0
 Text Domain:  divi-child-ty-pesket
*/

/* ===== Palette ===== */
:root{
  --tp-white:#FFFFFF;
  --tp-soft:#F5F4F0;
  --tp-ink:#1C201E;
  --tp-grey:#5C605C;
  --tp-grey-2:#6F736E;
  --tp-line:#E7E5E0;
  --tp-green:#1F4A3A;
  --tp-green-hover:#163629;
}

/* ===== Typo ===== */
body{color:var(--tp-ink);font-family:'Kumbh Sans',system-ui,sans-serif;font-weight:300;line-height:1.75}
h1,h2,h3,h4,.et_pb_module_header{font-family:'Fraunces',Georgia,serif!important;font-weight:300!important;letter-spacing:-.02em;color:var(--tp-ink)}
h1 em,h2 em,h3 em{font-style:italic;color:inherit}
.tp-logo{font-family:'Playfair Display',serif;font-weight:900}
.tp-eyebrow{font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--tp-grey-2)}
a{color:var(--tp-green)}
a:hover{color:var(--tp-green-hover)}

/* ===== Boutons ===== */
.et_pb_button,.et_pb_button:hover{
  border:0!important;border-radius:999px!important;
  background:var(--tp-green)!important;color:#fff!important;
  font-family:'Kumbh Sans',sans-serif!important;font-weight:500!important;
  padding:.9em 1.8em!important;letter-spacing:0!important
}
.et_pb_button:hover{background:var(--tp-green-hover)!important}
.et_pb_button:after,.et_pb_button:before{display:none!important}
.tp-btn-ghost.et_pb_button{background:transparent!important;color:var(--tp-ink)!important;border:1px solid var(--tp-ink)!important}

/* ===== Formes ===== */
.et_pb_image img,.tp-radius img{border-radius:24px}
.tp-card{background:var(--tp-soft);border-radius:28px}
.tp-arche,.tp-arche img{border-radius:300px 300px 28px 28px;overflow:hidden}
.tp-pastille{width:132px;height:132px;border-radius:50%;background:var(--tp-green);color:#fff;
  transform:rotate(-8deg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.tp-filet{border-top:1px solid var(--tp-line)}

/* ===== FAQ (module Bascule / Accordéon Divi) ===== */
.et_pb_toggle{border:0!important;border-top:1px solid var(--tp-line)!important;background:transparent!important;padding:22px 0!important}
.et_pb_toggle_title{font-family:'Kumbh Sans',sans-serif!important;font-weight:500!important}

/* ===== Mobile ===== */
@media (max-width:980px){
  h1{font-size:42px!important;line-height:1.08!important}
  h2{font-size:34px!important;line-height:1.15!important}
  .tp-arche,.tp-arche img{border-radius:171px 171px 24px 24px}
}

/* ===== Pleine largeur : pas de colonne latérale ===== */
#sidebar{display:none!important}
#main-content .container:before{display:none!important}
#left-area{width:100%!important;padding-left:0!important;padding-right:0!important;float:none!important}

/* ===== Titre H1 des pages ===== */
.page:not(.et_pb_pagebuilder_layout) #main-content .container{padding-top:88px}
h1.main_title{font-family:'Fraunces',Georgia,serif!important;font-weight:300!important;font-size:clamp(38px,4.6vw,62px)!important;line-height:1.05!important;letter-spacing:-.02em;color:#1C201E;max-width:22ch;margin:0 0 28px;padding-bottom:0}
h1.main_title:before{content:"";display:block;width:48px;height:2px;background:#1F4A3A;margin-bottom:26px}
.tp-lead{font-size:18px;line-height:1.7;color:#5C605C;max-width:760px;padding-bottom:0;margin-bottom:48px}

/* ===== Pied de page Ty Pesket ===== */
#main-footer{display:none!important}
.tp-footer{background:#F5F4F0;border-top:1px solid #E7E5E0;color:#5C605C;font-family:'Kumbh Sans',sans-serif;font-size:15px;line-height:1.7;margin-top:96px}
.tp-footer__inner{width:80%;max-width:1080px;margin:0 auto;padding:80px 0 36px}
.tp-footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}
.tp-footer__brand{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.tp-footer__brand p{margin:0;padding:0;max-width:340px}
.tp-footer a.tp-footer__logo{font-family:'Playfair Display',serif;font-weight:900;font-size:30px;line-height:1;color:#1C201E}
.tp-footer a.tp-footer__btn{display:inline-block;margin-top:8px;padding:12px 24px;border-radius:999px;background:#1F4A3A;color:#fff;font-size:14px;font-weight:500;letter-spacing:.02em}
.tp-footer a.tp-footer__btn:hover{background:#163629;color:#fff}
.tp-footer__col{display:flex;flex-direction:column;gap:10px}
.tp-footer__title{color:#1C201E;font-weight:600;margin-bottom:4px}
.tp-footer a{color:#5C605C;text-decoration:none;transition:color .2s,background .2s}
.tp-footer a:hover{color:#1F4A3A}
.tp-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:64px;padding-top:24px;border-top:1px solid #E7E5E0;font-size:13px;color:#7A7D78}
.tp-footer__bottom a{color:#7A7D78}
@media (max-width:980px){
  .page:not(.et_pb_pagebuilder_layout) #main-content .container{padding-top:48px}
  h1.main_title{font-size:36px!important}
  .tp-footer__grid{grid-template-columns:1fr 1fr}
  .tp-footer__brand{grid-column:1/-1}
}
@media (max-width:600px){
  .tp-footer__inner{padding:56px 0 28px}
  .tp-footer__grid{grid-template-columns:1fr;gap:32px}
  .tp-footer__bottom{flex-direction:column}
}

/* ===== En-tête Ty Pesket ===== */
#main-header,#top-header{display:none!important}
#page-container{padding-top:0!important;margin-top:0!important}
html{scroll-padding-top:110px}
.tp-header{position:sticky;top:0;z-index:99999;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;font-family:'Kumbh Sans',sans-serif;transition:border-color .25s,box-shadow .25s}
.admin-bar .tp-header{top:32px}
.tp-header.is-scrolled{border-bottom-color:#E7E5E0;box-shadow:0 12px 32px -26px rgba(28,32,30,.45)}
.tp-header__inner{width:88%;max-width:1280px;margin:0 auto;height:100px;display:flex;align-items:center;justify-content:space-between;gap:24px;transition:height .3s ease}
.tp-header.is-scrolled .tp-header__inner{height:78px}
.tp-header a.tp-header__brand{display:flex;align-items:center;gap:12px;color:#1C201E;text-decoration:none}
.tp-header__brand img{display:block;width:34px;height:34px;transition:transform .4s ease}
.tp-header__brand:hover img{transform:rotate(-8deg)}
.tp-header__brand span{font-family:'Playfair Display',serif;font-weight:900;font-size:27px;line-height:1;letter-spacing:-.01em}
.tp-header__nav{display:flex;align-items:center}
.tp-header ul.tp-menu{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:6px;border:1px solid #E7E5E0;border-radius:999px;background:#fff}
.tp-menu li{list-style:none;margin:0;padding:0}
.tp-header .tp-menu a{display:block;padding:11px 20px;border-radius:999px;color:#1C201E;font-size:15px;line-height:1.2;text-decoration:none;transition:background .2s,color .2s}
.tp-header .tp-menu a:hover{background:#F5F4F0;color:#1C201E}
.tp-header .tp-menu .current-menu-item:not(.menu-item-type-custom)>a{background:#F5F4F0;font-weight:500}
.tp-header__actions{display:flex;align-items:center;gap:10px}
.tp-header a.tp-header__cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 26px;border-radius:999px;background:#1F4A3A;color:#fff;font-size:15px;font-weight:500;text-decoration:none;white-space:nowrap;transition:background .2s}
.tp-header a.tp-header__cta:hover{background:#163629;color:#fff}
.tp-header__cta svg{transition:transform .2s}
.tp-header__cta:hover svg{transform:translateX(3px)}
.tp-header a.tp-header__cta--mobile,.tp-header__contact,.tp-header__burger{display:none}
@media (max-width:980px){
  .tp-header__inner,.tp-header.is-scrolled .tp-header__inner{height:72px}
  .tp-header__brand span{font-size:24px}
  .tp-header__brand img{width:30px;height:30px}
  .tp-header a.tp-header__cta{height:44px;padding:0 18px;font-size:14px}
  .tp-header__burger{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:44px;height:44px;padding:0;border:1px solid #E7E5E0;border-radius:50%;background:#fff;cursor:pointer}
  .tp-header__burger span{display:block;width:18px;height:1.5px;background:#1C201E;transition:transform .25s ease}
  .tp-header.is-open .tp-header__burger span:first-child{transform:translateY(3.75px) rotate(45deg)}
  .tp-header.is-open .tp-header__burger span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
  .tp-header__nav{position:absolute;left:0;right:0;top:100%;height:calc(100vh - 72px);flex-direction:column;align-items:stretch;padding:12px 6% 40px;background:#fff;overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s}
  .tp-header.is-open .tp-header__nav{opacity:1;visibility:visible;transform:none}
  .tp-header ul.tp-menu{flex-direction:column;align-items:stretch;gap:0;padding:0;border:0;border-radius:0;background:none}
  .tp-menu li{border-bottom:1px solid #E7E5E0}
  .tp-header .tp-menu a,.tp-header .tp-menu .current-menu-item:not(.menu-item-type-custom)>a{padding:20px 0;border-radius:0;background:none;font-family:'Fraunces',Georgia,serif;font-weight:300;font-size:30px;letter-spacing:-.01em}
  .tp-header .tp-menu .current-menu-item:not(.menu-item-type-custom)>a{color:#1F4A3A}
  .tp-header a.tp-header__cta--mobile{display:inline-flex;height:56px;margin-top:32px;font-size:16px}
  .tp-header__contact{display:flex;flex-direction:column;gap:6px;margin:28px 0 0;padding:0;font-size:15px}
  .tp-header__contact a{color:#5C605C;text-decoration:none}
  html.tp-menu-open{overflow:hidden}
}
@media (max-width:782px){.admin-bar .tp-header{top:46px}}
@media (max-width:600px){.admin-bar .tp-header{top:0}}
@media (max-width:400px){.tp-header__actions>.tp-header__cta svg{display:none}.tp-header a.tp-header__cta{padding:0 16px}}

/* ===== Page Que faire à Loguivy ===== */
.tp-banner{margin:0 0 80px;padding:0}
.tp-banner img{display:block;width:100%;height:clamp(260px,40vw,520px);object-fit:cover;object-position:center 42%;border-radius:32px}
.tp-block{margin:0 0 88px}
.tp-kicker{display:block;margin-bottom:14px;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#6F736E}
.tp-block h2,.tp-cta h2{font-family:'Fraunces',Georgia,serif!important;font-weight:300!important;font-size:clamp(30px,3.4vw,46px)!important;line-height:1.1!important;letter-spacing:-.015em;color:#1C201E;margin:0 0 32px;padding:0}
.tp-places{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tp-place{display:flex;flex-direction:column;gap:12px;min-height:250px;padding:32px;border-radius:28px;background:#F5F4F0;transition:transform .3s ease}
.tp-place:hover{transform:translateY(-3px)}
.tp-place__n{font-size:13px;font-weight:600;letter-spacing:.08em;color:#1F4A3A}
.tp-place h3{font-family:'Fraunces',Georgia,serif;font-weight:300;font-size:28px;line-height:1.15;color:#1C201E;margin:0;padding:0}
.tp-place p{flex-grow:1;margin:0;padding:0;font-size:16px;line-height:1.65;color:#5C605C}
.tp-place__meta{align-self:flex-start;padding:7px 14px;border-radius:999px;background:#fff;font-size:13px;color:#1C201E}
.tp-cta{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0 0 40px;padding:clamp(36px,6vw,72px);border:1px solid #E7E5E0;border-radius:32px}
.tp-cta h2{margin-bottom:10px}
.tp-cta p{max-width:560px;margin:0;padding:0;font-size:18px;line-height:1.65;color:#5C605C}
.tp-cta__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.tp-btn{display:inline-flex;align-items:center;height:54px;padding:0 28px;border-radius:999px;font-size:16px;font-weight:500;text-decoration:none;transition:background .2s}
a.tp-btn--primary{background:#1F4A3A;color:#fff}
a.tp-btn--primary:hover{background:#163629;color:#fff}
a.tp-btn--ghost{border:1px solid #1C201E;color:#1C201E}
a.tp-btn--ghost:hover{background:#F5F4F0;color:#1C201E}
@media (max-width:980px){.tp-places{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.tp-places{grid-template-columns:1fr}.tp-place{min-height:0;padding:26px}.tp-block{margin-bottom:64px}}
