/*
Theme Name: Thomas Vacances
Theme URI: https://thomasvacances.fr/
Description: Thème enfant de Twenty Twenty-Five pour le site Thomas Vacances.
Author: Thomas Vacances
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Requires PHP: 7.4
Text Domain: thomas-vacances-theme
*/

:root{--tv-green:#205640;--tv-green-dark:#164532;--tv-green-soft:#e8f4ed;--tv-orange:#c05608;--tv-ink:#172d25;--tv-muted:#65756e;--tv-border:#e3e9e5;--tv-surface:#f8fbf9;--tv-width:1160px}
html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--tv-ink);font-family:Manrope,Arial,Helvetica,sans-serif}*,*::before,*::after{box-sizing:border-box}a{color:var(--tv-green)}.tv-container{width:min(var(--tv-width),calc(100% - 40px));margin-inline:auto}.tv-section{padding:88px 0}.tv-section__intro{text-align:center;margin:0 auto 42px;max-width:620px}.tv-kicker{display:inline-block;color:#27835c;font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.tv-section__intro h2{margin:12px 0 10px;font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.12;letter-spacing:-.045em}.tv-section__intro p{margin:0;color:var(--tv-muted);line-height:1.6}.tv-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 21px;border:1px solid transparent;border-radius:999px;background:var(--tv-orange);color:#fff;font-weight:800;font-size:.9rem;text-decoration:none;transition:transform .2s,background .2s}.tv-button:hover{transform:translateY(-2px);background:var(--tv-orange);color:#fff}.tv-button--outline{background:transparent;border-color:currentColor;color:inherit}.tv-button--outline:hover{background:rgba(255,255,255,.12);color:inherit}
.tv-header{position:relative;z-index:30;background:#fff;border-bottom:1px solid #eef1ed}.tv-header__inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:25px}.tv-brand{display:inline-flex;align-items:center;gap:12px;color:var(--tv-ink);font-size:.82rem;font-weight:900;letter-spacing:.045em;text-decoration:none;text-transform:uppercase;white-space:nowrap}.tv-brand img{display:block;width:89px;max-height:58px;object-fit:contain}.tv-nav{display:flex;align-items:center;gap:31px}.tv-nav a{color:var(--tv-ink);font-size:.9rem;font-weight:650;text-decoration:none}.tv-nav a:hover{color:var(--tv-green)}.tv-nav .tv-nav__cta{padding:10px 18px;border-radius:999px;background:var(--tv-green);color:#fff}.tv-nav .tv-nav__cta:hover{background:var(--tv-green-dark);color:#fff}.tv-menu-button{display:none;padding:9px 12px;border:1px solid var(--tv-border);border-radius:8px;background:#fff;color:var(--tv-ink);font:inherit;font-weight:700}
.tv-hero{position:relative;overflow:hidden;background:linear-gradient(112deg,var(--tv-green-dark),var(--tv-green) 55%,#24885f);color:#fff}.tv-hero::before{position:absolute;inset:0;content:"";opacity:.18;background-image:radial-gradient(circle,#fff 1px,transparent 1.2px);background-size:22px 22px;mask-image:linear-gradient(90deg,#000,transparent 85%)}.tv-hero__inner{position:relative;min-height:460px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:76px 0 90px;text-align:center}.tv-hero__eyebrow{padding:7px 14px;border:1px solid rgba(255,255,255,.35);border-radius:30px;color:#c9f4d9;font-size:.69rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.tv-hero h1{max-width:760px;margin:22px 0 18px;font-size:clamp(2.7rem,6vw,5.25rem);line-height:1.05;letter-spacing:-.055em}.tv-hero p{max-width:620px;margin:0 auto;color:#e8f4ed;font-size:1.08rem;line-height:1.65}.tv-hero__actions{display:flex;justify-content:center;gap:12px;margin-top:30px}.tv-hero__edge{position:absolute;right:0;bottom:-1px;left:0;height:28px;background:#fff;clip-path:polygon(0 55%,100% 0,100% 100%,0 100%)}
.tv-homes .tvec-properties{max-width:960px;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:24px;margin:0 auto}.tv-homes .tvec-property-card{border-color:var(--tv-border);border-radius:13px;box-shadow:0 8px 24px rgba(15,45,30,.08);transition:transform .2s,box-shadow .2s}.tv-homes .tvec-property-card:hover{transform:translateY(-4px);box-shadow:0 15px 32px rgba(15,45,30,.13)}.tv-homes .tvec-property-card__image{height:220px}.tv-homes .tvec-property-card__body{padding:23px}.tv-homes .tvec-property-card h2{font-size:1.26rem;line-height:1.25}.tv-homes .tvec-price{color:var(--tv-green)}.tv-homes .tvec-link{color:var(--tv-green)}.tv-homes .tvec-eyebrow{color:#398966}.tv-homes__more{text-align:center;margin:38px 0 0}.tv-homes__more .tv-button{background:#fff;border-color:var(--tv-green);color:var(--tv-green)}.tv-homes__more .tv-button:hover{background:var(--tv-green-soft)}
.tv-values{border-top:1px solid var(--tv-border);background:var(--tv-surface)}.tv-values__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px}.tv-value{text-align:center}.tv-value__icon{display:grid;place-items:center;width:55px;height:55px;margin:0 auto 17px;border-radius:16px;background:var(--tv-green-soft);font-size:1.45rem}.tv-value h3{margin:0 0 9px;font-size:1rem}.tv-value p{max-width:225px;margin:0 auto;color:var(--tv-muted);font-size:.86rem;line-height:1.6}.tv-cta{padding:70px 0;background:var(--tv-green-dark);color:#fff;text-align:center}.tv-cta h2{max-width:580px;margin:0 auto 10px;font-size:clamp(2rem,4vw,3.2rem);line-height:1.15}.tv-cta p{margin:0 auto 24px;color:#d5e9df}
.tv-footer{padding:42px 0 24px;background:#112f23;color:#d5e3db}.tv-footer__top{display:flex;justify-content:space-between;gap:30px;align-items:start}.tv-footer .tv-brand{color:#fff}.tv-footer .tv-brand img{filter:brightness(0) invert(1)}.tv-footer p{max-width:365px;color:#bed1c5;line-height:1.6}.tv-footer__links{display:flex;gap:25px;flex-wrap:wrap}.tv-footer a{color:#e8f4ed;text-decoration:none}.tv-footer__bottom{display:flex;justify-content:space-between;gap:20px;padding-top:26px;margin-top:28px;border-top:1px solid rgba(255,255,255,.15);color:#adc8b7;font-size:.8rem}
.tv-page-main{min-height:55vh}.tv-page-heading{padding:70px 0 25px;text-align:center}.tv-page-heading h1{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.05em}.tv-page-content{width:min(960px,calc(100% - 40px));margin:0 auto 85px}.tv-page-content .tvec-properties{grid-template-columns:repeat(auto-fit,minmax(275px,1fr))}.tv-page-content h2{color:var(--tv-green-dark)}.tv-page-content p{line-height:1.7}.tv-page-content .tvec-property-card p{line-height:1.45}
/* The plugin's standalone gîte and reservation pages also receive this child theme's chrome. */
.tvec-property-page,.tvec-reservation-page,.tvec-confirmation-page{--tvec-ink:var(--tv-ink);--tvec-accent:var(--tv-green);--tvec-sand:var(--tv-surface);--tvec-line:var(--tv-border)}.tvec-property-page .tvec-site-main,.tvec-reservation-page .tvec-site-main,.tvec-confirmation-page .tvec-site-main{max-width:1200px;padding-top:45px}.tvec-property-page .tvec-button,.tvec-reservation-page .tvec-button,.tvec-confirmation-page .tvec-button{background:var(--tv-orange);color:#fff}.tvec-booking-card{box-shadow:0 12px 32px rgba(15,45,30,.08)}
@media(max-width:760px){.tv-header__inner{min-height:72px}.tv-menu-button{display:block}.tv-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:12px 20px 20px;background:#fff;box-shadow:0 15px 25px rgba(0,0,0,.12)}.tv-nav.is-open{display:flex}.tv-nav a{padding:13px 5px}.tv-nav .tv-nav__cta{text-align:center;margin-top:7px}.tv-hero__inner{min-height:430px;padding:70px 0}.tv-hero__actions{flex-wrap:wrap}.tv-section{padding:64px 0}.tv-values__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 18px}.tv-footer__top,.tv-footer__bottom{display:block}.tv-footer__links{margin-top:28px}.tv-footer__bottom span{display:block;margin-bottom:9px}}@media(max-width:480px){.tv-container{width:min(var(--tv-width),calc(100% - 32px))}.tv-brand img{width:70px}.tv-brand{font-size:.72rem}.tv-values__grid{grid-template-columns:1fr}.tv-hero h1{font-size:2.55rem}.tv-hero__actions .tv-button{width:100%}}
.tv-contact{max-width:760px;margin:0 auto}.tv-contact__form{margin-top:35px;padding:30px;border:1px solid var(--tv-border);border-radius:16px;box-shadow:0 10px 25px rgba(15,45,30,.05)}.tv-contact__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tv-contact__form label{display:block;margin-bottom:6px;font-weight:700}.tv-contact__form input,.tv-contact__form textarea{display:block;width:100%;min-height:45px;padding:10px;border:1px solid #b7c5bb;border-radius:8px;background:#fff;font:inherit}.tv-contact__form textarea{resize:vertical}.tv-contact__form p{margin:0 0 18px}.tv-contact__form .tv-contact__privacy{font-size:.85rem;color:var(--tv-muted)}.tv-contact__trap{position:absolute!important;left:-9999px!important}.tv-contact__notice{padding:13px 16px;border-radius:8px;background:var(--tv-green-soft);color:var(--tv-green-dark)}.tv-contact__notice--error{background:#fff0ec;color:#9f3e2f}@media(max-width:600px){.tv-contact__row{grid-template-columns:1fr}.tv-contact__form{padding:20px}}
