:root{
  --bg:#f7f7f7;
  --fg:#111111;
  --header-h:56px;
}

/* ===== Base ===== */
html,body{margin:0;padding:0;height:100%;}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:'Roboto',system-ui,-apple-system,Arial,sans-serif;
  font-weight:500;
  overflow-x:hidden;
}
body.no-scroll{overflow:hidden;}

/* ? lock page derrière quand About est ouvert */
body.about-open{ overflow:hidden; }

a{color:inherit;}
a:focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
  border-radius:6px;
}

/* ===== Header ===== */
.site-header{
  position:fixed; top:0; left:0; right:0;
  height:var(--header-h);
  z-index:9999;

  background:color-mix(in oklab, var(--bg) 100%, transparent);
  backdrop-filter:blur(8px);

  opacity:0;
  visibility:hidden;
  transition:opacity 250ms ease;
}
body.scrolled .site-header{opacity:1;visibility:visible;}

.header-inner{
  height:100%;
  margin:0 auto;
  padding-left:20px;
  padding-right:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.site-header a{text-decoration:none;}

.brand{
  display:flex;
  align-items:center;
}
.header-logo{
  height:15px;
  width:auto;
  display:block;
  fill:currentColor;
}

/* ===== Header nav + swatches ===== */
.site-header .nav{
  display:flex;
  align-items:center;
  gap:14px;
}

.site-header .swatches{
  display:flex;
  gap:5px;
  align-items:center;
}

.site-header .swatch{
  width:15px;
  height:15px;
  padding:0;
  cursor:pointer;
  border-radius:0;
  background:transparent;
  border:1px solid white;
}

.site-header .swatch.is-gray{
  background:#f7f7f7;
  border:1px solid #111;
}
.site-header .swatch.is-pink{background:#ee3c96;}
.site-header .swatch.is-blue{background:#1a1751;}
.site-header .swatch.is-yellow{background:#ffcd34;}

.site-header .swatch:focus-visible{
  outline:2px solid currentColor;
  outline-offset:2px;
}

/* ===== Hero ===== */
.hero{
  width:100%;
  min-height:100dvh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top:var(--header-h);
  box-sizing:border-box;
  position:relative;
}

/* ===== Container ===== */
.container{
  position:relative;
  width:90%;
  max-width:500px;
  text-align:center;
  container-type:inline-size;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  margin:0 auto;
  margin-bottom:100px;
}

/* Logo hero */
.logo{
  width:100%;
  max-width:500px;
  display:block;
  margin:0 auto;
  user-select:none;
  -webkit-user-drag:none;
  color:inherit;
  fill:currentColor;
}

/* retire l’outline bleu sur le logo du hero */
#logo:focus,
#logo:focus-visible{outline:none !important;}

/* ===== Typo responsive ===== */
.row,.word,.left-line{
  font-size:clamp(12px,3cqw,24px);
  line-height:1.6;
  font-weight:500;
}
@supports not (width:1cqw){
  .row,.word,.left-line{font-size:clamp(12px,3vw,24px);}
}

/* ===== Mots décoratifs ===== */
.word{
  position:absolute;
  white-space:nowrap;
  opacity:0;
  visibility:hidden;
  user-select:text;
  cursor:default;
  pointer-events:none;
}

/* ===== Habillage positions ===== */
.hello{top:-260%;left:0;text-align:left;}
.standard{top:-180%;left:0;text-align:left;}
.est{top:-180%;left:28%;text-align:left;}
.atelier{top:-100%;left:28%;text-align:left;}
.de{top:-100%;left:54%;text-align:left;}
.creation{top:-100%;right:0%;text-align:right;}
.dediee{bottom:-100%;left:0%;text-align:left;}
.ala{bottom:-100%;left:28%;text-align:left;}
.com{bottom:-100%;left:54%;text-align:right;}
.repr{bottom:-180%;left:28%;text-align:left;}
.archi{bottom:-180%;right:0%;text-align:right;}
.sta{bottom:-250%;right:0%;text-align:left;}
.social{top:550%;right:28%;text-align:left;}

/* ===== Rows ===== */
.row{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0.8rem;
  text-align:left;
}

/* ===== Bloc création ===== */
.bloc-creation{
  position:absolute;
  top:350%;
  left:0;
  width:100%;

  display:grid;
  grid-template-columns:28% 1fr;
  column-gap:0.8rem;
  text-align:left;
}

.bloc-creation .col-left{grid-column:1;}
.bloc-creation .col-right{
  grid-column:2;
  position:relative;
  text-align:left;
  z-index:1;
}

/* lignes générées par JS */
.left-line{
  opacity:0;
  visibility:hidden;
}

/* ===== Bloc social ===== */
.bloc-social{
  position:absolute;
  top:600%;
  left:0;
  width:100%;

  display:grid;
  grid-template-columns:28% 1fr;
  column-gap:0.8rem;
  text-align:left;
}

.bloc-social .col-left{grid-column:1;}
.bloc-social .col-right{
  grid-column:2;
  position:static;
  display:flex;
  gap:10px;
  align-items:center;
}

/* social masqué au départ (JS révèle) */
.bloc-social .col-left,
.bloc-social .col-right{
  opacity:0;
  visibility:hidden;
}

/* Icônes sociaux */
.socialico{
  width:22px;
  height:22px;
  fill:currentColor;
  display:inline-block;
  vertical-align:middle;
  line-height:1;
}

/* ===== Toggle alt (hero) + MASK FIX ===== */
.line-wrapper{
  position:relative;
  display:block;
  width:100%;
  z-index:1;
}

.line-wrapper.active{z-index:999;}

.line,.alt{display:block;width:100%;}

.line{
  cursor:pointer;
  text-decoration:underline;
  user-select:none;
}

.line-wrapper .alt{
  position:absolute;
  top:0;
  left:0;
  width:100%;

  background:var(--bg) !important;
  color:var(--fg) !important;

  z-index:1000;

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  white-space:normal;
  line-height:1.6;
  padding:2px 0;
}

.line-wrapper.active .line{opacity:0;visibility:hidden;}
.line-wrapper.active .alt{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  text-decoration:none;
}

/* ===== Page scrollable ===== */
.page{padding-top:var(--header-h);}

/* ===== Galerie ===== */
.gallery{
  padding-left:20px;
  padding-right:20px;
  padding-bottom: 80px;
}

/* ===== GRID (4 / 3 / 2 / 1 colonnes) ===== */
.grid{
  display:grid;
  gap:20px;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  align-items:start;
}

/* laptop / desktop étroit */
@media (max-width:1200px){
  .grid{grid-template-columns:repeat(3, minmax(0, 1fr));}
}

/* tablette */
@media (max-width:900px){
  .grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
}

/* mobile */
@media (max-width:620px){
  .grid{grid-template-columns:1fr;}
  .gallery{padding-left:20px;padding-right:20px;}
}

/* ===== Tile description (toggle) ===== */
.tile{
  display:flex;
  align-items:center;
  justify-content:center;

  width:100%;
  margin:0;
  position:relative;
  cursor:pointer;

  background:white;
  padding:20px;
  box-sizing:border-box;
}
.tile img{
  width:100%;
  height:auto;
  display:block;
  z-index:1;
  transition:opacity 160ms ease;
}

.tile-desc{
  position:absolute;
  inset:0;
  z-index:2;

  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;

  padding:20px;

  background:var(--bg);
  color:var(--fg);

  font-size:14px;
  line-height:1.4;

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  transition:opacity 160ms ease;
}

.desc-box{
  border:none !important;
  padding:0 !important;
  max-width:85%;
}

/* état actif */
.tile.active img{opacity:0;}
.tile.active .tile-desc{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

/* contour uniquement sur la tuile (pas sur le texte) */
.tile.active::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid var(--fg);
  pointer-events:none;
  z-index:3;
}

/* ===== Wide: 2 colonnes ===== */
.tile.tile-wide{
  grid-column:span 2;
}

/* sur tablette/mobile on revient normal */
@media (max-width:1100px){
  .tile.tile-wide{grid-column:span 1;}
}

/* ===== About overlay ===== */
.about-overlay{
  position:fixed;
  top:var(--header-h);
  left:0; right:0; bottom:0;
  z-index:9998;
  background:var(--bg);
  color:var(--fg);

  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 200ms ease;

  /* ? scroll interne + scrollbar cachée */
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none; /* Firefox */
}
.about-overlay::-webkit-scrollbar{ width:0; height:0; } /* Chrome/Safari */

body.about-open .about-overlay{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

/* ===== ABOUT – 2 colonnes ===== */
.about-inner{
  padding:40px;
  max-width:700px;
}

.about-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
}

.about-col h2{
  font-size:12px;
  font-weight:700;
  margin:0 0 12px;
  text-transform:uppercase;
  letter-spacing:0.04em;
}

.about-col p{
  margin:0;
  font-weight:400;
  font-size:12px;
  line-height:1.5;
  max-width:300px;
}
.about-col .eng{
  margin:0;
  font-weight:400;
  font-size:12px;
  font-style: italic;
  line-height:1.5;
  max-width:300px;
}

.contact{
  display:grid;
  grid-template-columns:80px 1fr; /* largeur de la "tabulation" */
  row-gap:4px;                    /* contrôle l’écart vertical */
  column-gap:12px;                /* espace entre label / valeur */
}

.cgauche{
  font-weight:500;
	font-size:12px;
}

.cdroite{
  font-weight:400;
	font-size:12px;
}

/* Responsive */
@media (max-width:600px){
  .about-grid{
    grid-template-columns:1fr;
    gap:10px;
  }
  .about-col p {
    max-width:none;
  }
	
  .about-col .eng {
    max-width:none;
  }	
}

/* ===== Scroll hint (bottom) ===== */
.scroll-hint{
  position: fixed;
  left: 50%;
  bottom: 36px;
  transform: translateX(-50%);
  z-index: 9997; /* sous le header (9999) */

  display: flex;
  gap: 8px;
  align-items: center;

  font-size: 25px;
  letter-spacing: 0.04em;
  text-transform: uppercase;

  opacity: 1;
  visibility: visible;
  pointer-events: none;

  transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease;
}

/* petite anim discrète */
.scroll-hint .scroll-arrow{
  display:inline-block;
  animation: scrollHintBounce 1.2s infinite ease-in-out;
}

@keyframes scrollHintBounce{
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(4px); }
}

/* caché quand on a commencé à scroller */
.scroll-hint.is-hidden{
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(6px);
}