/* -------------------------------------------------------------
   DESIGN TOKENS & CORE STYLES
   ------------------------------------------------------------- */
:root{
  --ink:#121212;
  --soft-ink:#2b2b2b;
  --muted:#73706b;
  --paper:#f4f0e8;
  --paper-2:#ebe4d8;
  --white:#fff;
  --charcoal:#171a1d;
  --line:rgba(18,18,18,.14);
  --gold:#b99355;
  --gold-2:#d7be86;
  --green:#1f332d;
  --shadow:0 34px 80px rgba(18,18,18,.16);
  --max:1240px;
  --serif:"Times New Roman","Yu Mincho","Hiragino Mincho ProN",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.9;
  letter-spacing:.035em;
}

body::selection{
  background:var(--gold);
  color:#fff;
}

img{
  max-width:100%;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

p{
  margin:0;
}


/* -------------------------------------------------------------
   背景に重ねる紙のノイズ質感
   ------------------------------------------------------------- */

.noise{
  pointer-events:none;
  position:fixed;
  inset:0;
  z-index:999;
  opacity:.055;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
}


/* -------------------------------------------------------------
   HEADER
   ------------------------------------------------------------- */

.site-header{
  position:fixed;
  z-index:50;
  inset:0 0 auto;
  color:#fff;
  mix-blend-mode:difference;
}

.header-inner{
  width:min(var(--max), calc(100% - 48px));
  margin:auto;
  height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.brand{
  display:flex;
  align-items:baseline;
  gap:14px;
  font-weight:900;
  letter-spacing:.18em;
  font-size:14px;
  text-transform:uppercase;
  white-space:nowrap;
}

.brand span{
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:.08em;
  opacity:.72;
  text-transform:none;
  font-size:13px;
}

.nav{
  display:flex;
  align-items:center;
  gap:26px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.nav a{
  position:relative;
  padding:6px 0;
  opacity:.82;
}

.nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .28s ease;
}

.nav a:hover{
  opacity:1;
}

.nav a:hover::after{
  transform:scaleX(1);
  transform-origin:left;
}

.header-cta{
  border:1px solid rgba(255,255,255,.9);
  border-radius:999px;
  padding:10px 17px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  white-space:nowrap;
}

.container{
  width:min(var(--max), calc(100% - 48px));
  margin:auto;
}


/* -------------------------------------------------------------
   HERO
   ------------------------------------------------------------- */

.hero{
  min-height:100svh;
  position:relative;
  overflow:hidden;
  background:var(--charcoal);
  color:#fff;
  isolation:isolate;
  display:grid;
  align-items:end;
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  background:url("https://images.unsplash.com/photo-1589829545856-d10d557cf95f?auto=format&fit=crop&q=80&w=1920") center/cover no-repeat;
  filter:saturate(.7) contrast(1.05) brightness(.6);
  transform:scale(1.025);
}

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(circle at 77% 20%, rgba(215,190,134,.22), transparent 28%),
    linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.63) 42%, rgba(0,0,0,.24) 72%, rgba(0,0,0,.62) 100%),
    linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.15) 44%, rgba(0,0,0,.82) 100%);
}

.hero-grid{
  width:min(var(--max), calc(100% - 48px));
  margin:auto;
  padding:150px 0 110px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:42px;
  align-items:end;
  position:relative;
}

.hero-kicker{
  display:grid;
  grid-template-columns:78px auto;
  gap:18px;
  align-items:center;
  margin-bottom:24px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.74);
}

.hero-kicker::before{
  content:"";
  height:1px;
  background:var(--gold-2);
}

.hero-title{
  margin:0;
  max-width:930px;
  font-family:var(--serif);
  font-size:clamp(44px,6.5vw,84px);
  line-height:1.2;
  letter-spacing:-.02em;
  font-weight:500;
}

.hero-title em{
  display:block;
  font-style:normal;
  color:var(--gold-2);
  font-size:clamp(32px,4.5vw,54px);
  margin-top:14px;
  letter-spacing:.05em;
}

.hero-copy{
  max-width:720px;
  margin-top:34px;
  font-size:clamp(15px,1.4vw,17px);
  color:rgba(255,255,255,.82);
  font-weight:600;
  line-height:1.8;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin:34px 0;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 32px;
  border-radius:999px;
  font-weight:900;
  letter-spacing:.08em;
  font-size:13px;
  transition:transform .22s ease,
             box-shadow .22s ease,
             background .22s ease;
}

.btn-primary{
  background:#fff;
  color:var(--ink);
  box-shadow:0 18px 40px rgba(0,0,0,.26);
}

.btn-primary::after{
  content:"→";
  margin-left:12px;
  font-size:16px;
  line-height:1;
}

.btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:0 28px 60px rgba(0,0,0,.32);
}

.btn-ghost{
  border:1px solid rgba(255,255,255,.42);
  color:#fff;
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(12px);
}

.btn-ghost:hover{
  background:rgba(255,255,255,.14);
  transform:translateY(-3px);
}

.hero-side{
  border-left:1px solid rgba(255,255,255,.28);
  padding-left:26px;
  display:grid;
  gap:18px;
}

.side-label{
  writing-mode:vertical-rl;
  justify-self:end;
  font-size:11px;
  font-weight:900;
  letter-spacing:.34em;
  color:rgba(255,255,255,.48);
  min-height:120px;
}

.hero-note{
  padding:22px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(16px);
}

.hero-note b{
  display:block;
  font-family:var(--serif);
  font-weight:500;
  font-size:24px;
  line-height:1.2;
  color:var(--gold-2);
  letter-spacing:-.02em;
}

.hero-note span{
  display:block;
  margin-top:9px;
  font-size:11px;
  font-weight:700;
  color:rgba(255,255,255,.72);
}


/* -------------------------------------------------------------
   FLOATING FACTS
   ------------------------------------------------------------- */

.floating-facts{
  position:relative;
  z-index:5;
  margin-top:-50px;
}

.facts-inner{
  width:min(var(--max), calc(100% - 48px));
  margin:auto;
  display:grid;
  grid-template-columns:1.2fr repeat(3,.8fr);
  background:var(--white);
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.72);
}

.fact-statement{
  padding:30px 34px;
  background:var(--green);
  color:#fff;
}

.fact-statement small{
  display:block;
  color:var(--gold-2);
  font-size:11px;
  font-weight:900;
  letter-spacing:.2em;
  text-transform:uppercase;
  margin-bottom:10px;
}

.fact-statement h2{
  margin:0;
  font-size:20px;
  line-height:1.55;
  letter-spacing:.02em;
}

.fact{
  padding:30px 28px;
  border-left:1px solid var(--line);
  background:linear-gradient(180deg,#fff,var(--paper));
}

.fact b{
  display:block;
  font-family:var(--serif);
  font-size:32px;
  line-height:1;
  letter-spacing:-.03em;
  font-weight:500;
  color:var(--ink);
}

.fact b span{
  display:inline;
  font-size:16px;
  margin-left:2px;
  color:var(--muted);
  font-family:var(--sans);
}

.fact span.label{
  display:block;
  margin-top:10px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}


/* -------------------------------------------------------------
   NEWS
   ------------------------------------------------------------- */

.news-bar{
  position:relative;
  z-index:4;
  background:var(--paper);
  padding-top:48px;
}

.news-inner{
  width:min(var(--max), calc(100% - 48px));
  margin:0 auto;
  padding:24px 0;
  display:grid;
  grid-template-columns:120px 1fr;
  gap:30px;
  align-items:start;
  border-bottom:1px solid var(--line);
}

.news-label{
  font-family:var(--serif);
  font-size:15px;
  font-weight:600;
  line-height:1;
  letter-spacing:.18em;
  color:var(--gold);
  padding-top:13px;
}

.news-list{
  display:grid;
}

.news-item{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:24px;
  align-items:center;
  padding:11px 0;
}

.news-item + .news-item{
  border-top:1px solid var(--line);
}

.news-date{
  font-size:12px;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.08em;
  color:var(--muted);
  white-space:nowrap;
}

.news-text{
  min-width:0;
  font-size:14px;
  font-weight:600;
  line-height:1.7;
  color:var(--soft-ink);
}


/* -------------------------------------------------------------
   MEDIA
   ------------------------------------------------------------- */

.media-bar{
  position:relative;
  z-index:4;
  background:#fff;
}

.media-inner{
  width:min(var(--max), calc(100% - 48px));
  margin:0 auto;
  padding:24px 0;
  display:grid;
  grid-template-columns:120px 1fr;
  gap:30px;
  align-items:start;
  border-bottom:1px solid var(--line);
}

.media-label{
  font-family:var(--serif);
  font-size:15px;
  font-weight:600;
  line-height:1;
  letter-spacing:.18em;
  color:var(--gold);
  padding-top:13px;
}

.media-list{
  display:grid;
}

.media-item{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:24px;
  align-items:center;
  padding:11px 0;
}

.media-item + .media-item{
  border-top:1px solid var(--line);
}

.media-date{
  font-size:12px;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.08em;
  color:var(--muted);
  white-space:nowrap;
}

.media-text{
  min-width:0;
  font-size:14px;
  font-weight:600;
  line-height:1.7;
  color:var(--soft-ink);
}


/* -------------------------------------------------------------
   NEWS / MEDIA LINK STYLES
   ------------------------------------------------------------- */

.news-text a,
.media-text a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid var(--gold);
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}

.news-text a::after,
.media-text a::after{
  content:" ↗";
  color:var(--gold);
  margin-left:5px;
  font-size:.9em;
}

.news-text a:hover,
.media-text a:hover{
  color:var(--gold);
}


/* -------------------------------------------------------------
   SECTIONS SYSTEM
   ------------------------------------------------------------- */

main{
  position:relative;
  z-index:2;
}

.section{
  padding:116px 0;
  position:relative;
}

.section.white{
  background:#fff;
}

.section.dark{
  background:var(--charcoal);
  color:#fff;
}

.section.tint{
  background:var(--paper-2);
}

.section-head{
  display:grid;
  grid-template-columns:220px minmax(0,1fr) minmax(270px,.42fr);
  gap:34px;
  align-items:end;
  margin-bottom:54px;
}

.section-no{
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.2em;
  text-transform:uppercase;
}

.section-no::after{
  content:"";
  height:1px;
  flex:1;
  background:currentColor;
  opacity:.5;
}

.section-title{
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(36px,4.5vw,62px);
  line-height:1.1;
  letter-spacing:-.03em;
}

.section-desc{
  color:var(--muted);
  font-size:15px;
  font-weight:650;
}

.dark .section-desc{
  color:rgba(255,255,255,.68);
}


/* -------------------------------------------------------------
   SECTION 1: ABOUT
   ------------------------------------------------------------- */

.philosophy{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(380px,.8fr);
  gap:60px;
  align-items:center;
}

.quote-mark{
  font-family:var(--serif);
  font-size:120px;
  line-height:.3;
  color:var(--gold-2);
  opacity:.55;
  margin-bottom:10px;
}

.philosophy blockquote{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(24px,3vw,42px);
  line-height:1.5;
  letter-spacing:-.02em;
  font-weight:500;
}

.philosophy-copy{
  border-left:1px solid var(--line);
  padding-left:34px;
}

.dark .philosophy-copy{
  border-left-color:rgba(255,255,255,.16);
}

.philosophy-copy p{
  color:var(--soft-ink);
  font-size:15px;
  line-height:1.85;
}

.dark .philosophy-copy p{
  color:rgba(255,255,255,.8);
}


/* 士業リストのグリッド */

.editorial-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  background:rgba(255,255,255,.25);
  margin-top:54px;
}

.point{
  min-height:200px;
  padding:32px 28px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.36);
}

.point::before{
  content:attr(data-no);
  position:absolute;
  right:-5px;
  bottom:-20px;
  font-family:var(--serif);
  font-size:94px;
  line-height:1;
  color:rgba(18,18,18,.04);
  letter-spacing:-.07em;
}

.point h3{
  margin:0 0 12px;
  font-size:18px;
  line-height:1.48;
  letter-spacing:.01em;
  color:var(--ink);
}

.point p{
  color:var(--muted);
  font-weight:620;
  font-size:13.5px;
  position:relative;
  line-height:1.6;
}


/* -------------------------------------------------------------
   SECTION 2: Target-specific
   ------------------------------------------------------------- */

.split-art{
  display:grid;
  grid-template-columns:minmax(360px,.9fr) minmax(0,1fr);
  gap:64px;
  align-items:center;
}

.split-art.reverse{
  grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);
}

.photo-stack{
  position:relative;
  min-height:500px;
}

.photo-main{
  position:absolute;
  inset:0 42px 64px 0;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:#ddd;
}

.photo-main img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.photo-card{
  position:absolute;
  right:0;
  bottom:0;
  width:min(86%,400px);
  padding:26px;
  background:var(--charcoal);
  color:#fff;
  box-shadow:0 28px 62px rgba(0,0,0,.24);
  border-top:5px solid var(--gold);
}

.photo-card b{
  display:block;
  font-size:16px;
  margin-bottom:6px;
  font-family:var(--serif);
  color:var(--gold-2);
}

.photo-card span{
  display:block;
  color:rgba(255,255,255,.8);
  font-weight:650;
  font-size:13px;
  line-height:1.6;
}

.body-title{
  margin:0 0 24px;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(30px,4vw,48px);
  line-height:1.2;
}

.lead{
  font-size:15.5px;
  color:var(--muted);
  font-weight:650;
  line-height:1.8;
}

.check-list{
  display:grid;
  grid-template-columns:repeat(1,minmax(0,1fr));
  gap:0;
  margin:36px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}

.check-list li{
  padding:18px 16px 18px 44px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  position:relative;
  font-weight:700;
  font-size:14.5px;
  line-height:1.65;
  background:rgba(255,255,255,.38);
}

.check-list li::before{
  content:"";
  position:absolute;
  left:17px;
  top:24px;
  width:10px;
  height:10px;
  background:var(--gold);
  transform:rotate(45deg);
}


/* -------------------------------------------------------------
   SECTION 3: ENTRY
   ------------------------------------------------------------- */

.work-list{
  counter-reset:work;
  border-top:1px solid var(--line);
  background:#fff;
}

.work-item{
  counter-increment:work;
  display:grid;
  grid-template-columns:120px 1.2fr 2fr;
  gap:40px;
  padding:34px 24px 34px 16px;
  border-bottom:1px solid var(--line);
  align-items:start;
}

.work-item::before{
  content:"0" counter(work);
  font-family:var(--serif);
  font-size:46px;
  line-height:.9;
  color:var(--gold);
  letter-spacing:-.05em;
}

.work-item h3{
  margin:0;
  font-size:20px;
  line-height:1.45;
  font-weight:600;
}

.work-item p{
  color:var(--muted);
  font-weight:650;
  font-size:14.5px;
  line-height:1.8;
}


/* -------------------------------------------------------------
   CTA SECTION
   ------------------------------------------------------------- */

.cta-section{
  min-height:70svh;
  display:grid;
  place-items:center;
  position:relative;
  overflow:hidden;
  color:#fff;
  background:var(--charcoal);
  text-align:center;
  isolation:isolate;
}

.cta-section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:url("https://images.unsplash.com/photo-1497366216548-37526070297c?auto=format&fit=crop&q=80&w=1920") center/cover no-repeat;
  filter:saturate(.6) contrast(1.1) brightness(.4);
  transform:scale(1.03);
}

.cta-section::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.62)),
    radial-gradient(circle at 50% 20%,rgba(185,147,85,.32),transparent 34%);
}

.cta-inner{
  width:min(920px, calc(100% - 48px));
  margin:auto;
  padding:110px 0;
}

.cta-inner small{
  display:block;
  color:var(--gold-2);
  font-weight:900;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:22px;
}

.cta-inner h2{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(36px,5.5vw,68px);
  line-height:1.2;
  font-weight:500;
}

.cta-inner p{
  margin:26px auto 0;
  max-width:760px;
  color:rgba(255,255,255,.76);
  font-weight:650;
  font-size:15.5px;
}

.cta-inner .hero-actions{
  justify-content:center;
}

.entry-note{
  font-size:13px!important;
  margin-top:18px!important;
  color:rgba(255,255,255,.55)!important;
  letter-spacing:.05em;
}


/* -------------------------------------------------------------
   FOOTER
   ------------------------------------------------------------- */

footer{
  background:#0d0e0f;
  color:rgba(255,255,255,.42);
  padding:42px 0;
  text-align:center;
  font-size:11px;
  letter-spacing:.12em;
  border-top:1px solid rgba(255,255,255,.05);
}

footer b{
  display:block;
  color:#fff;
  margin-bottom:6px;
  font-size:12px;
  letter-spacing:.2em;
}


/* -------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------- */

@media (max-width:1100px){

  .nav{
    display:none;
  }

  .hero-grid{
    grid-template-columns:1fr;
    padding-bottom:60px;
  }

  .hero-side{
    display:none;
  }

  .facts-inner{
    grid-template-columns:1fr 1fr;
  }

  .fact-statement{
    grid-column:1/-1;
  }

  .section-head{
    grid-template-columns:1fr;
    gap:16px;
  }

  .editorial-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .philosophy,
  .split-art,
  .split-art.reverse{
    grid-template-columns:1fr;
  }
}


@media (max-width:760px){

  body{
    font-size:15px;
    line-height:1.8;
    letter-spacing:.02em;
  }

  .header-inner{
    width:min(100% - 28px,var(--max));
    height:68px;
  }

  .brand{
    font-size:12px;
    letter-spacing:.14em;
  }

  .brand span,
  .header-cta{
    display:none;
  }

  .container,
  .hero-grid,
  .facts-inner,
  .cta-inner{
    width:min(100% - 28px,var(--max));
  }

  .hero{
    min-height:90svh;
  }

  .hero-grid{
    padding:120px 0 46px;
  }

  .hero-kicker{
    grid-template-columns:44px auto;
    font-size:10px;
    letter-spacing:.16em;
    margin-bottom:18px;
  }

  .hero-title{
    font-size:clamp(32px,8.5vw,44px);
    line-height:1.3;
  }

  .hero-title em{
    font-size:clamp(20px,5.5vw,28px);
    margin-top:8px;
  }

  .hero-copy{
    margin-top:20px;
    font-size:14px;
  }

  .hero-actions{
    gap:12px;
    margin-top:24px;
  }

  .btn{
    min-height:52px;
    width:100%;
    padding:0 18px;
    font-size:13px;
  }

  .floating-facts{
    margin-top:0;
  }

  .facts-inner{
    grid-template-columns:1fr;
    box-shadow:none;
    border-left:none;
    border-right:none;
  }

  .fact,
  .fact-statement{
    padding:24px 22px;
  }

  .fact-statement h2{
    font-size:18px;
    line-height:1.5;
  }

  .fact b{
    font-size:28px;
  }


  /* NEWS */

  .news-inner{
    width:min(100% - 28px,var(--max));
    padding:20px 0;
    grid-template-columns:1fr;
    gap:8px;
  }

  .news-label{
    font-size:13px;
    letter-spacing:.16em;
    padding-top:0;
    margin-bottom:4px;
  }

  .news-item{
    grid-template-columns:1fr;
    gap:2px;
    padding:11px 0;
  }

  .news-date{
    font-size:11px;
  }

  .news-text{
    width:100%;
    font-size:13px;
    line-height:1.7;
  }

.news-bar{
  padding-top:30px;
}

  /* MEDIA */

  .media-inner{
    width:min(100% - 28px,var(--max));
    padding:20px 0;
    grid-template-columns:1fr;
    gap:8px;
  }

  .media-label{
    font-size:13px;
    letter-spacing:.16em;
    padding-top:0;
    margin-bottom:4px;
  }

  .media-item{
    grid-template-columns:1fr;
    gap:2px;
    padding:11px 0;
  }

  .media-date{
    font-size:11px;
  }

  .media-text{
    width:100%;
    font-size:13px;
    line-height:1.7;
  }

  .section{
    padding:74px 0;
  }

  .section-head{
    margin-bottom:36px;
  }

  .section-no{
    font-size:10.5px;
    letter-spacing:.16em;
  }

  .section-title{
    font-size:clamp(28px,8vw,38px);
    line-height:1.2;
  }

  .section-desc{
    font-size:14px;
    font-weight:600;
  }

  .editorial-grid,
  .check-list{
    grid-template-columns:1fr;
  }

  .point{
    min-height:auto;
    padding:24px 20px;
  }

  .point h3{
    font-size:17px;
    margin-bottom:8px;
  }

  .quote-mark{
    font-size:80px;
    margin-bottom:0;
  }

  .philosophy blockquote{
    font-size:20px;
    line-height:1.5;
  }

  .philosophy-copy{
    border-left:0;
    padding-left:0;
    margin-top:20px;
  }

  .photo-stack{
    min-height:auto;
    display:grid;
    gap:0;
  }

  .photo-main{
    position:relative;
    inset:auto;
    height:280px;
  }

  .photo-card{
    position:relative;
    width:100%;
    right:auto;
    bottom:auto;
    padding:20px;
  }

  .body-title{
    font-size:clamp(24px,7vw,32px);
  }

  .work-item{
    grid-template-columns:1fr;
    gap:10px;
    padding:24px 0;
  }

  .work-item::before{
    font-size:36px;
  }

  .work-item h3{
    font-size:18px;
  }

  .cta-inner{
    padding:86px 0;
  }

  .cta-inner h2{
    font-size:clamp(28px,7.5vw,38px);
  }

  .cta-inner p{
    font-size:14px;
  }
}


/* =============================================================
   COMPANY PROFILE STYLES
   ============================================================= */

.company-profile-wrap{
  max-width:840px;
  margin:0 auto;
  border-top:1px solid var(--line);
}

.profile-table{
  width:100%;
  border-collapse:collapse;
}

.profile-table tr{
  border-bottom:1px solid var(--line);
}

.profile-table th,
.profile-table td{
  padding:24px 16px;
  text-align:left;
  vertical-align:top;
}

.profile-table th{
  width:240px;
  font-family:var(--serif);
  font-size:16px;
  font-weight:600;
  color:var(--ink);
}

.profile-table td{
  font-size:15px;
  color:var(--soft-ink);
  line-height:1.8;
}

@media (max-width:760px){

  .profile-table tr{
    display:block;
    padding:16px 0;
  }

  .profile-table th,
  .profile-table td{
    display:block;
    width:100%;
    padding:4px 0;
  }

  .profile-table th{
    font-size:15px;
    font-weight:700;
  }
}