/*
Theme Name: La Conciergerie de l'Horizon
Theme URI: https://example.com/
Author: Samuel Niget
Description: Thème WordPress premium pour une conciergerie privée à La Rochelle et sur l'Île de Ré.
Version: 2.3.0
License: GPL-2.0-or-later
Text Domain: conciergerie-horizon
*/
:root{--blue:#174864;--blue2:#103c57;--blue3:#214f69;--aqua:#72c9c4;--ivory:#f5f1e8;--paper:#fbf9f4;--ink:#173f58;--muted:#71818c;--white:#fff;--shadow:0 26px 70px rgba(20,62,84,.18);--serif:Georgia,'Times New Roman',serif;--sans:'Avenir Next','Helvetica Neue',Arial,sans-serif;--script:'Snell Roundhand','Segoe Script',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);line-height:1.65;font-weight:300}img{max-width:100%;display:block}a{color:inherit}.site-header{position:fixed;z-index:80;top:0;left:0;right:0;height:154px;display:flex;align-items:center;justify-content:space-between;padding:22px 6.3vw;background:transparent;border:0;border-radius:0;transition:height .42s ease,background .42s ease,box-shadow .42s ease,backdrop-filter .42s ease;-webkit-transition:height .42s ease,background .42s ease,box-shadow .42s ease,-webkit-backdrop-filter .42s ease}.site-header.scrolled{height:104px;background:rgba(247,244,236,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 12px 38px rgba(16,60,87,.10)}body.admin-bar .site-header{top:32px}.brand{display:flex;align-items:center;position:relative;width:126px;height:126px;flex:0 0 126px}.brand .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transition:opacity .35s ease,transform .42s ease}.brand .logo-light{opacity:1}.brand .logo-dark{opacity:0}.site-header.scrolled .brand{width:96px;height:96px;flex-basis:96px}.site-header.scrolled .logo-light{opacity:0}.site-header.scrolled .logo-dark{opacity:1}.nav{display:flex;gap:42px;align-items:center}.nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.25em;font-size:12px;color:#fff;font-weight:500;position:relative;transition:color .25s ease}.site-header.scrolled .nav a{color:var(--blue)}.nav a:not(.cta):after{content:"";position:absolute;left:0;right:.25em;bottom:-9px;height:1px;background:var(--aqua);transform:scaleX(0);transform-origin:right;transition:transform .3s ease}.nav a:not(.cta):hover:after{transform:scaleX(1);transform-origin:left}.nav a:hover{color:var(--aqua)}.nav .cta{padding:14px 25px;border:1px solid rgba(255,255,255,.9);border-radius:999px;background:rgba(255,255,255,.06);transition:background .3s ease,color .3s ease,transform .3s ease,border-color .3s ease}.site-header.scrolled .nav .cta{border-color:var(--aqua);background:rgba(255,255,255,.08)}.nav .cta:hover{background:var(--aqua);border-color:var(--aqua);color:#fff;transform:translateY(-2px)}
.hero{min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(13,52,76,.74),rgba(16,60,87,.38),rgba(13,52,76,.66)),url('assets/images/demeure-piscine.jpg') center/cover no-repeat;color:#fff}.hero:after{content:"";position:absolute;inset:auto 0 0;height:20%;background:linear-gradient(transparent,var(--ivory))}.hero-inner{position:relative;z-index:2;max-width:1080px;padding:170px 7vw 120px;text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:12px;font-weight:500;color:var(--aqua);margin:0 0 20px}.eyebrow.light{color:var(--aqua)}h1,h2,h3{font-family:var(--serif);font-weight:700}.hero h1{font-size:clamp(48px,6vw,88px);line-height:.98;margin:0 auto;max-width:1000px;letter-spacing:-.04em}.hero-copy{font-size:clamp(17px,1.5vw,21px);max-width:770px;margin:30px auto 38px;color:rgba(255,255,255,.88)}.btns{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.btn{display:inline-block;padding:15px 24px;border-radius:999px;text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:600;border:1px solid currentColor;transition:.3s}.btn.primary{background:var(--aqua);border-color:var(--aqua);color:#fff}.btn.ghost{color:#fff;border-color:rgba(255,255,255,.65)}.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.15)}.section{padding:120px 7vw}.split{display:grid;grid-template-columns:1fr .9fr;gap:80px;align-items:center}.section h2,.experience h2,.contact-band h2,.water-card h2{font-size:clamp(40px,4.7vw,72px);line-height:1.02;letter-spacing:-.04em;margin:0 0 24px}.lead{font-size:21px;color:#4f626e}.image-card{border-radius:60px 60px 60px 12px;overflow:hidden;box-shadow:var(--shadow);background:#fff;padding:12px}.image-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:48px 48px 48px 8px}.experience{height:88vh;min-height:650px;position:relative;display:flex;align-items:center;overflow:hidden;color:#fff}.experience-media{position:absolute;inset:-16% -8%;background-size:cover;background-position:center;will-change:transform;transform:translate3d(0,0,0) scale(1.16)}.experience-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,48,71,.86),rgba(10,48,71,.42),rgba(10,48,71,.2))}.experience-content{position:relative;z-index:2;max-width:900px;padding:0 7vw;will-change:transform,opacity}.experience-content p:not(.eyebrow):not(.signature){font-size:20px;max-width:680px;color:rgba(255,255,255,.82)}.signature{font-family:var(--script);font-size:clamp(48px,7vw,105px);color:var(--aqua);line-height:1;margin:38px 0 0}.services{background:var(--blue);color:#fff;overflow:hidden}.section-head{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:end}.section-head>p{font-size:19px;color:rgba(255,255,255,.68)}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:58px}.service{position:relative;padding:42px 38px;min-height:330px;border:1px solid rgba(114,201,196,.28);border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.02));overflow:hidden;transition:.35s}.service:after{content:"";position:absolute;width:160px;height:160px;border:1px solid rgba(114,201,196,.2);border-radius:50%;right:-65px;bottom:-70px;transition:.4s}.service:hover{transform:translateY(-10px);background:linear-gradient(145deg,rgba(114,201,196,.16),rgba(255,255,255,.04));box-shadow:0 28px 55px rgba(0,0,0,.2)}.service:hover:after{transform:scale(1.3)}.num{font-family:var(--serif);font-style:italic;font-size:48px;color:var(--aqua)}.service h3{font-size:30px;line-height:1.05;margin:18px 0}.service p{color:rgba(255,255,255,.7);margin:0}.portfolio{background:var(--paper)}.portfolio-copy{max-width:900px}.gallery{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;margin-top:56px}.gallery figure{margin:0;overflow:hidden;border-radius:70px 70px 70px 16px;box-shadow:var(--shadow)}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.gallery figure:hover img{transform:scale(1.035)}.g-main{min-height:760px}.gallery-col{display:grid;gap:24px}.gallery-col figure{min-height:368px}.water-section{min-height:78vh;position:relative;display:grid;place-items:end start;overflow:hidden;background:var(--blue)}.water-section video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.water-section:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,50,73,.78),rgba(12,50,73,.12))}.water-card{position:relative;z-index:2;margin:7vw;max-width:700px;padding:42px;border-radius:30px;background:rgba(17,61,87,.72);backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.16)}.water-card p:last-child{font-size:18px;color:rgba(255,255,255,.8)}.process{background:var(--ivory)}.process-title{max-width:1050px}.timeline{position:relative;margin-top:60px}.timeline:before{content:"";position:absolute;left:21px;top:8px;bottom:8px;width:1px;background:var(--aqua)}.timeline-item{display:grid;grid-template-columns:160px 1fr;gap:48px;padding:0 0 52px 62px;position:relative}.timeline-item:before{content:"";position:absolute;left:12px;top:10px;width:18px;height:18px;border-radius:50%;background:var(--aqua);box-shadow:0 0 0 12px rgba(114,201,196,.14)}.word{font-family:var(--script);font-size:46px;color:var(--aqua);line-height:1}.timeline-item h3{font-size:36px;margin:0 0 8px}.timeline-item p{font-size:18px;color:var(--muted);max-width:800px;margin:0}.contact-band{padding:110px 7vw;background:linear-gradient(rgba(14,54,78,.8),rgba(14,54,78,.82)),url('assets/images/chambre.jpg') center/cover no-repeat;color:#fff;text-align:center}.contact-band .wrap{max-width:900px;margin:auto}.contact-band p{font-size:19px;color:rgba(255,255,255,.8)}.site-footer{background:var(--blue);color:#fff;text-align:center;padding:62px 20px}.footer-inner{max-width:900px;margin:auto}.site-footer img{width:100px;margin:0 auto 25px}.site-footer p{color:rgba(255,255,255,.6);margin:7px 0;font-size:14px}.footer-links{display:flex;justify-content:center;gap:28px;margin-top:24px}.footer-links a{text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:11px;color:var(--aqua)}.cursor-aura{position:fixed;z-index:9999;left:0;top:0;width:30px;height:30px;border-radius:50%;pointer-events:none;border:1px solid rgba(114,201,196,.7);box-shadow:0 0 26px rgba(114,201,196,.55);opacity:0;transition:opacity .2s;mix-blend-mode:difference}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}.page-hero{position:relative;overflow:hidden;padding:210px 7vw 120px;background:linear-gradient(90deg,rgba(12,49,72,.82),rgba(12,49,72,.48)),url('assets/images/demeure-piscine.jpg') center 58%/cover no-repeat;color:#fff;text-align:center}.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,43,64,.1),rgba(10,43,64,.42));pointer-events:none}.page-hero>*{position:relative;z-index:1}.page-hero h1{font-size:clamp(42px,5vw,68px);line-height:1;margin:10px 0 14px}.page-hero p{color:rgba(255,255,255,.88)}.contact-page{max-width:1120px;margin:auto}.contact-form{display:grid;gap:14px;margin-top:30px}.contact-form input,.contact-form textarea{width:100%;padding:16px;border:1px solid rgba(23,72,100,.2);background:#fff;font:inherit}.contact-form button{padding:16px;background:var(--blue);color:#fff;border:0}.info-box{background:rgba(255,255,255,.94);padding:44px;border-radius:32px;box-shadow:var(--shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.contact-page .info-box h2{font-size:clamp(42px,4.2vw,62px);line-height:.98;letter-spacing:-.04em;margin:0 0 24px}.contact-page .lead{font-size:19px;line-height:1.7}.contact-form input,.contact-form textarea{transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 4px rgba(114,201,196,.14);transform:translateY(-1px)}.contact-form button{border-radius:999px;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:600;cursor:pointer;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}.contact-form button:hover{background:var(--aqua);transform:translateY(-2px);box-shadow:0 14px 28px rgba(23,72,100,.18)}
@media(max-width:980px){.nav{display:none}.site-header{height:112px;padding:14px 24px}.site-header.scrolled{height:82px}.brand{width:90px;height:90px;flex-basis:90px}.split,.section-head,.gallery{grid-template-columns:1fr}.services-grid{grid-template-columns:1fr 1fr}.g-main{min-height:500px}.gallery-col{grid-template-columns:1fr 1fr}.gallery-col figure{min-height:280px}.timeline-item{grid-template-columns:120px 1fr}.section{padding:88px 24px}.experience-content{padding:0 24px}.water-card{margin:24px}.cursor-aura{display:none}}
@media(max-width:650px){body.admin-bar .site-header{top:46px}.hero-inner{padding:150px 22px 90px}.hero h1{font-size:46px}.services-grid{grid-template-columns:1fr}.service{min-height:auto}.gallery-col{grid-template-columns:1fr}.gallery figure{border-radius:38px 38px 38px 10px}.g-main,.gallery-col figure{min-height:360px}.timeline-item{grid-template-columns:1fr;gap:8px;padding-left:52px}.word{font-size:38px}.experience{min-height:720px}.water-card{padding:28px}.site-header{top:0}}

@media(max-width:650px){.page-hero{padding:165px 24px 90px;background-position:center}.contact-page .info-box h2{font-size:42px}.info-box{padding:30px 24px}}
/* v2.4 — logo complet et contenu administrable */
.brand{width:150px;height:128px;flex:0 0 150px;overflow:visible}.brand .logo{object-fit:contain;object-position:left center;padding:0;transform:none}.site-header.scrolled .brand{width:118px;height:92px;flex-basis:118px}.site-header.scrolled .brand .logo{transform:none}.gallery.gallery-carousel{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:18px;scrollbar-width:thin}.gallery.gallery-carousel figure{flex:0 0 min(72vw,720px);height:520px;scroll-snap-align:start}.gallery.gallery-carousel img{width:100%;height:100%;object-fit:cover}.form-notice{padding:14px 18px;border-radius:12px;margin:0 0 20px}.form-notice.success{background:#e8f7f2;color:#145b4d}.form-notice.error{background:#fff0ef;color:#8c2f28}@media(max-width:980px){.brand{width:118px;height:92px;flex-basis:118px}.site-header.scrolled .brand{width:92px;height:70px;flex-basis:92px}.gallery.gallery-carousel figure{flex-basis:84vw;height:430px}}
