Café de l’Atlantic — Bar à tapas & vins face au port de Concarneau

:root{
–ink: #24382C; /* deep pine — logo green, darkened */
–ink-soft: #2f4a3b;
–paper: #F5EFE3; /* warm sail-cloth cream */
–paper-2: #ece2ce;
–rust: #AE514C; /* Ville Close ramparts */
–wine: #7C2B34; /* deep wine accent */
–sage: #5C8368; /* logo green — primary accent */
–sage-dark: #446249;
–line: rgba(36,56,44,.16);
–text: #202b23;
–text-soft: rgba(32,43,35,.68);
–radius: 3px;
–serif: « Fraunces », Georgia, serif;
–sans: « Work Sans », « Helvetica Neue », Arial, sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
margin:0; background:var(–paper); color:var(–text); font-family:var(–sans);
font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.container{max-width:1180px; margin:0 auto; padding:0 28px;}
h1,h2,h3{font-family:var(–serif); font-weight:500; margin:0 0 .4em; letter-spacing:-0.01em; color:var(–ink);}
h1{font-size:clamp(2.4rem, 5vw, 4.1rem); line-height:1.04;}
h2{font-size:clamp(1.7rem, 3.4vw, 2.5rem); line-height:1.12;}
p{margin:0 0 1em;}
.eyebrow{
font-family:var(–sans); font-size:.82rem; font-weight:600; color:var(–rust);
display:inline-block; margin-bottom:.6em;
}
.btn{
display:inline-flex; align-items:center; gap:8px; padding:13px 24px;
border-radius:var(–radius); font-family:var(–sans); font-weight:600; font-size:.94rem;
text-decoration:none; border:1px solid transparent; transition:transform .15s ease, background .15s ease;
cursor:pointer;
}
.btn:hover{transform:translateY(-1px);}
.btn–wine{ background:var(–wine); color:var(–paper); }
.btn–wine:hover{ background:#68232b; }
.btn–rust{ background:transparent; color:var(–rust); border:1px solid var(–rust); }
.btn–rust:hover{ background:var(–rust); color:var(–paper); }
.btn–sage{ background:var(–sage); color:var(–ink); }
.btn–sage:hover{ background:var(–sage-dark); }
.btn–outline{ background:transparent; color:var(–paper); border-color:rgba(245,239,227,.55); }
.btn–outline:hover{ background:rgba(245,239,227,.12); }
.btn–outline-dark{ background:transparent; color:var(–ink); border-color:var(–ink); }
.btn–outline-dark:hover{ background:var(–ink); color:var(–paper); }
.btn–sm{ padding:9px 16px; font-size:.82rem; }

/* ===== HEADER ===== */
header.site{
background:var(–paper); border-bottom:1px solid var(–line);
position:sticky; top:0; z-index:40;
}
.site__inner{
display:flex; justify-content:center; align-items:center;
gap:24px; padding:6px 0;
}
.site__nav-left, .site__nav-right{ display:flex; align-items:center; gap:30px; }
.site__nav-left{ justify-content:flex-end; }
.site__nav-right{ justify-content:flex-start; }
.logo-center{
display:flex; align-items:center; justify-content:center; text-decoration:none;
padding:6px 4px;
}
.logo-center img{ height:78px; width:auto; object-fit:contain; }
nav.mainnav a{ text-decoration:none; font-size:.94rem; font-weight:500; color:var(–text); position:relative; padding:4px 0; white-space:nowrap; }
.site__nav-left a::after, .site__nav-right a::after{
content: » »; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(–rust);
transform:scaleX(0); transform-origin:left; transition:transform .18s ease;
}
.site__nav-left a:hover::after, .site__nav-right a:hover::after, nav a.active::after{ transform:scaleX(1); }
.hamburger{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
.hamburger span{ display:block; width:24px; height:2px; background:var(–ink); margin:5px 0; }
.mobile-nav-panel{
display:none; flex-direction:column; gap:4px; padding:8px 28px 20px; border-top:1px solid var(–line);
background:var(–paper);
}
.mobile-nav-panel a{
padding:12px 0; text-decoration:none; color:var(–text); font-weight:500; font-size:1rem;
border-bottom:1px solid var(–line);
}
.mobile-nav-panel a[href= »#reserver »]{
background:transparent; color:var(–rust); border:1px solid var(–rust); border-radius:var(–radius);
text-align:center; margin-top:4px;
}
.mobile-nav-panel.is-open{ display:flex; }
.lang-switch{
display:flex; align-items:center; gap:6px; font-size:.86rem; font-weight:600;
color:var(–text-soft); flex:0 0 auto;
}
.lang-switch__item{ text-decoration:none; color:var(–text-soft); }
.lang-switch__item.is-active{ color:var(–ink); }
.lang-switch__item:hover{ color:var(–sage); }
.lang-switch__sep{ color:var(–line); }
.mobile-nav-panel__lang{
display:flex; align-items:center; gap:8px; padding:14px 0 4px; font-size:.94rem; font-weight:600;
}
.mobile-nav-panel__lang a{ text-decoration:none; color:var(–text-soft); border-bottom:none; padding:0; }
.mobile-nav-panel__lang a.is-active{ color:var(–ink); }
.mobile-nav-panel__lang span{ color:var(–text-soft); }

/* ===== HERO ===== */
.hero{
position:relative; background:var(–ink); color:var(–paper); overflow:hidden;
height:560px; display:flex; align-items:flex-end;
}
.hero__bg-wrap{ position:absolute; inset:0; z-index:0; }
.hero::before{
content: » »; position:absolute; inset:0; z-index:1;
background:
radial-gradient(ellipse 900px 600px at 82% 18%, rgba(92,131,104,.4), transparent 60%),
linear-gradient(180deg, rgba(18,36,48,.25) 0%, rgba(18,36,48,.6) 55%, rgba(18,36,48,.94) 100%);
}
.hero__content{ position:relative; z-index:2; padding:36px 0 20px; max-width:820px; }
.hero .eyebrow{ color:var(–paper); font-size:1rem; margin-bottom:.3em; }
.hero h1{ color:var(–paper); font-size:clamp(2.1rem, 4.5vw, 3.4rem); margin-bottom:.25em; }
.hero h1 em{ font-style:italic; color:var(–paper); }
.hero__lede{ font-size:1.14rem; color:rgba(245,239,227,.86); max-width:56ch; margin-bottom:.8em; }
.hero__ctas{ display:flex; gap:14px; flex-wrap:wrap; }
.hero__ctas .btn{ padding:11px 22px; font-size:.94rem; }
.hero__phone{
display:inline-flex; align-items:center; gap:9px;
font-weight:700; font-size:1.08rem; color:var(–paper); margin:.4em 0 0;
background:var(–rust); padding:11px 20px; border-radius:13px;
box-shadow:0 5px 16px rgba(0,0,0,.23); text-decoration:none;
transition:transform .15s ease, background .15s ease;
}
.hero__phone:hover{ background:#a5461f; transform:translateY(-1px); }
.hero__phone::before{
content: » »; width:17px; height:17px; flex:0 0 auto;
background:var(–paper);
-webkit-mask:url(« data:image/svg+xml;utf8, ») no-repeat center / contain;
mask:url(« data:image/svg+xml;utf8, ») no-repeat center / contain;
}
@media (max-width:600px){
.hero__phone{ font-size:1.05rem; padding:12px 18px; }
}