  :root{
    --bg:#ffffff;
    --bg-panel:#eef2f6;
    --bg-panel-2:#e4eaf0;
    --accent:#3f5f7f;
    --accent-soft:#7f97ac;
    --line:#c7d2dc;
    --text-dark:#1c1c1c;
    --text-mid:#4a4a4a;
    --text-soft:#7a7a7a;
    --gold:#a98a52;
  }

  *{box-sizing:border-box; margin:0; padding:0;}

  body{
    background:#dfe4e9;
    font-family:"Noto Sans JP", sans-serif;
    color:var(--text-dark);
    -webkit-font-smoothing:antialiased;
    padding:40px 16px;
  }

  .page{
    max-width:980px;
    margin:0 auto;
    background:var(--bg);
    box-shadow:0 20px 60px rgba(0,0,0,0.15);
    position:relative;
    overflow:hidden;
    border-top:6px solid var(--accent);
  }

  /* ===== Header ===== */
  .header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    padding:44px 56px 0;
  }

  .logo-mark{
    display:flex;
    align-items:center;
    gap:14px;
  }

  .logo-img{
    height:52px;
    width:auto;
    display:block;
  }

  .company-profile-label{
    font-family:"Cormorant Garamond", serif;
    font-weight:600;
    letter-spacing:0.18em;
    font-size:15px;
    color:var(--accent);
    padding-top:14px;
  }

  /* ===== Hero ===== */
  .hero{
    position:relative;
    min-height:400px;
    padding:36px 56px 40px;
  }

  .hero-photo{
    position:absolute;
    inset:0;
    background-image:url("images/hero-photo.png");
    background-size:cover;
    background-position:right bottom;
    background-repeat:no-repeat;
  }

  .hero-text{
    position:relative;
    max-width:560px;
    z-index:2;
  }

  .hero-text h1{
    font-family:"Noto Serif JP", serif;
    font-weight:700;
    font-size:38px;
    line-height:1.55;
    color:var(--text-dark);
  }

  .hero-text h1 .accent{
    color:var(--accent);
  }

  .hero-copy{
    margin-top:28px;
    font-size:14.5px;
    line-height:2.1;
    color:var(--text-mid);
    max-width:480px;
  }

  /* ===== Domain section ===== */
  .domain{
    padding:10px 56px 0;
  }

  .domain-title{
    display:flex;
    align-items:center;
    gap:18px;
    font-family:"Noto Serif JP", serif;
    font-weight:600;
    font-size:19px;
    color:var(--text-dark);
    margin-bottom:34px;
  }

  .domain-title::after{
    content:"";
    flex:1;
    height:1px;
    background:var(--line);
  }

  .domain-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:32px;
  }

  .domain-card{ text-align:center; }

  .domain-number{
    font-family:"Cormorant Garamond", serif;
    font-weight:600;
    font-size:26px;
    color:var(--accent);
    text-align:left;
    margin-bottom:6px;
  }

  .domain-icon{
    width:78px;
    height:78px;
    margin:0 auto 18px;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .domain-icon img{ width:78px; height:78px; }

  .domain-card h3{
    font-family:"Noto Serif JP", serif;
    font-weight:600;
    font-size:15.5px;
    letter-spacing:0.02em;
    margin-bottom:14px;
    line-height:1.6;
  }

  .domain-card p{
    font-size:12.5px;
    line-height:1.9;
    color:var(--text-soft);
    text-align:left;
  }

  /* ===== Core brand ===== */
  .core-brand{
    margin-top:56px;
    background:var(--bg-panel);
    padding:40px 56px;
    display:grid;
    grid-template-columns:1fr 1.15fr;
    gap:32px;
    align-items:center;
  }

  .core-eyebrow{
    font-size:11.5px;
    letter-spacing:0.14em;
    color:var(--accent);
    margin-bottom:10px;
  }

  .core-name{
    font-family:"Cormorant Garamond", serif;
    font-weight:600;
    font-size:26px;
    letter-spacing:0.05em;
    color:var(--text-dark);
  }

  .core-tagline{
    font-family:"Cormorant Garamond", serif;
    font-style:italic;
    font-weight:500;
    font-size:20px;
    color:var(--accent);
    margin:4px 0 18px;
  }

  .core-brand p{
    font-size:13px;
    line-height:2;
    color:var(--text-mid);
    margin-bottom:10px;
  }

  .core-photos{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:14px;
  }

  .core-photo{
    aspect-ratio:3/4;
    border-radius:4px;
    background-color:#e4eaf0;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }

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

  /* ===== Footer ===== */
  .footer{
    padding:48px 56px 56px;
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:24px;
  }

  .footer-title{
    font-family:"Noto Serif JP", serif;
    font-weight:600;
    font-size:16px;
    display:flex;
    align-items:center;
    gap:16px;
    color:var(--accent);
    margin-bottom:20px;
  }

  .footer-title::after{
    content:"";
    flex:1;
    height:1px;
    background:var(--line);
  }

  .info-table{
    width:100%;
    border-collapse:collapse;
    font-size:12.5px;
  }

  .info-table tr{ border-bottom:1px solid #eee; }

  .info-table td{
    padding:9px 0;
    vertical-align:top;
  }

  .info-table td:first-child{
    width:96px;
    color:var(--accent);
    font-weight:600;
    letter-spacing:0.05em;
  }

  .info-table td:last-child{ color:var(--text-mid); }

  .footer-right{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    border-left:1px solid var(--line);
    padding-left:24px;
  }

  .footer-right .footer-logo-img{ height:40px; margin-bottom:16px; }

  .footer-right a{
    font-size:11.5px;
    color:var(--text-soft);
    text-decoration:none;
    letter-spacing:0.03em;
  }

  /* ===== Responsive ===== */
  @media (max-width:720px){
    .header{ padding:32px 24px 0; flex-direction:column; gap:10px; }
    .hero{ padding:200px 24px 32px; min-height:0; }
    .hero-photo{ inset:0 0 auto 0; height:180px; border-radius:0 0 4px 4px; background-position:right bottom; }
    .hero-text{ max-width:100%; }
    .hero-text h1{ font-size:28px; }
    .domain{ padding:32px 24px 0; }
    .domain-grid{ grid-template-columns:1fr; gap:36px; }
    .core-brand{ grid-template-columns:1fr; padding:32px 24px; margin-top:40px; }
    .footer{ grid-template-columns:1fr; padding:32px 24px 40px; }
    .footer-right{ border-left:none; border-top:1px solid var(--line); padding-left:0; padding-top:24px; }
  }
